haplo 2.1.4-java → 2.1.5-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5b57db6dd8959c97a21ba14cb5b9940a343d7873
4
- data.tar.gz: e72b35f09b0594747c79bf798e2eb8c420afec64
3
+ metadata.gz: bfa6979121ba2e2ed596e02f9faf5bac9d9aa8e7
4
+ data.tar.gz: 95c98823f92be457fa20021644be110f5812cd6f
5
5
  SHA512:
6
- metadata.gz: 617b0ad328c0de02f5ecf9e3bf056735bb27f8d8260074ade0d6d16891a115c4bce3be286fa06517f844822a9f76bb35fc8b62d24538da6d51db3db913f20fb1
7
- data.tar.gz: f8e0d3b004f0aa63adbeaeda6f53f9ca90a618818c9b0666419a79a7ae521e62df69a15b62a3a1456569ac9f0ddef31c8bb09b2fff0c33ab27372ca6d499d761
6
+ metadata.gz: 2109252a9deabcee929449ef4eaf98b19997f8891510a026391258d656967552aa6eb4b240c68200e9d1bb5a3403c6ed552e01b1c173ab1167566506ae80e821
7
+ data.tar.gz: c20f9a22838d355ec5ca08f90366416a0af904d0161ee865989345a271f7786f18096740bc23e00c62c5ee20aa75b113242b05ea9f6b30b770981537bf0aa833
data/haplo.gemspec CHANGED
@@ -3,8 +3,8 @@ Gem::Specification.new do |s|
3
3
  files = Dir.glob("#{root_dir}/**/*.*").map { |x| x[root_dir.length + 1, x.length]}
4
4
 
5
5
  s.name = 'haplo'
6
- s.version = '2.1.4'
7
- s.date = '2016-02-02'
6
+ s.version = '2.1.5'
7
+ s.date = '2016-04-01'
8
8
  s.summary = "Haplo Plugin Tool"
9
9
  s.description = "Development tools for developing Haplo plugins, see http://haplo.org"
10
10
  s.licenses = ["MPL-2.0"]
Binary file
data/lib/manifest.rb CHANGED
@@ -7,8 +7,11 @@
7
7
 
8
8
  module PluginTool
9
9
 
10
- # NOTE: Also update packing.rb if this changes
11
- ALLOWED_PLUGIN_DIRS = ['js', 'static', 'template', 'test', 'data']
10
+ PLUGIN_ACCEPTABLE_FILENAME = /\A(js|static|template|test|data)\/([A-Za-z0-9_-]+\/)*[A-Za-z0-9_-]+\.[A-Za-z0-9]+\z/
11
+ PLUGIN_ACCEPTABLE_FILENAME_EXCEPTIONS = ['plugin.json', 'requirements.schema', 'global.js', 'certificates-temp-http-api.pem', 'developer.json', 'readme.txt']
12
+ def self.plugin_filename_allowed?(filename)
13
+ (filename =~ PLUGIN_ACCEPTABLE_FILENAME) || (PLUGIN_ACCEPTABLE_FILENAME_EXCEPTIONS.include?(filename))
14
+ end
12
15
 
13
16
  def self.generate_manifest(directory)
14
17
  manifest = Hash.new
@@ -19,13 +22,9 @@ module PluginTool
19
22
  next if pathname =~ /\~/
20
23
  # Check file
21
24
  filename = pathname.slice(directory.length + 1, pathname.length)
22
- raise "Bad filename for #{filename}" unless filename =~ /\A([a-zA-Z0-9_\/\-]+\/)?([a-zA-Z0-9_-]+\.[a-z0-9]+)\z/
23
- dir = $1
24
- name = $2
25
- if dir != nil
26
- dir = dir.gsub(/\/\z/,'')
27
- raise "Bad directory #{dir}" unless dir =~ /\A([a-zA-Z0-9_\-]+)[a-zA-Z0-9_\/\-]*\z/
28
- raise "Bad root directory #{$1}" unless ALLOWED_PLUGIN_DIRS.include?($1)
25
+ unless plugin_filename_allowed?(filename)
26
+ puts "WARNING: Ignoring #{filename}"
27
+ next
29
28
  end
30
29
  # Get hash of file
31
30
  digest = File.open(pathname) { |f| Digest::SHA256.hexdigest(f.read) }
data/lib/packing.rb CHANGED
@@ -7,11 +7,10 @@
7
7
 
8
8
  module PluginTool
9
9
 
10
- PACKING_ACCEPTABLE_FILENAME = /\A(js|static|template|test|data)\/([a-z0-9_-]+\/)*[a-z0-9_-]+\.[a-z0-9]+\z/
11
- PACKING_ACCEPTABLE_EXCEPTIONS = ['plugin.json', 'requirements.schema', 'global.js', 'certificates-temp-http-api.pem']
12
- PACKING_EXCLUDE = ['developer.json']
10
+ PACKING_EXCLUDE = ['developer.json', 'readme.txt']
13
11
 
14
- def self.pack_plugin(plugin_name, output_directory)
12
+ def self.pack_plugin(plugin_name, output_directory, errors = [])
13
+ STDOUT.write("#{plugin_name}: ")
15
14
  # Get filenames and sort
16
15
  files = Dir.glob("#{plugin_name}/**/*").map do |filename|
17
16
  if File.file? filename
@@ -19,29 +18,26 @@ module PluginTool
19
18
  else
20
19
  nil
21
20
  end
22
- end .select { |f| !PACKING_EXCLUDE.include?(f) }.compact.sort
23
- # Check each filename is acceptable
24
- files.each do |filename|
25
- unless filename =~ PACKING_ACCEPTABLE_FILENAME || PACKING_ACCEPTABLE_EXCEPTIONS.include?(filename)
26
- puts "File '#{filename}' has an unacceptable filename"
27
- exit 1
21
+ end .compact.select do |filename|
22
+ ok = plugin_filename_allowed?(filename) && !PACKING_EXCLUDE.include?(filename)
23
+ unless ok || PACKING_EXCLUDE.include?(filename)
24
+ STDOUT.write("!")
25
+ errors.push("IGNORED: #{plugin_name}/#{filename}")
28
26
  end
29
- end
27
+ ok
28
+ end .sort
30
29
  # Clean output directory
31
30
  output_plugin_dir = "#{output_directory}/#{plugin_name}"
32
- puts "Output directory: #{output_plugin_dir}"
33
31
  if File.exist? output_plugin_dir
34
- puts "Removing old output directory #{output_plugin_dir}"
35
32
  FileUtils.rm_r(output_plugin_dir)
36
33
  end
37
34
  # Make file structure
38
35
  FileUtils.mkdir(output_plugin_dir)
39
36
  # Process each file, building a manifest
40
- puts "Processing files:"
41
37
  manifest = ''
42
38
  minimiser = PluginTool::Minimiser.new
43
39
  files.each do |filename|
44
- puts " #{filename}"
40
+ STDOUT.write("."); STDOUT.flush
45
41
  data = File.open("#{plugin_name}/#{filename}") { |f| f.read }
46
42
  # Minimise file?
47
43
  unless filename =~ /\Ajs\//
@@ -56,13 +52,12 @@ module PluginTool
56
52
  # Filename entry in Manifest
57
53
  manifest << "F #{hash} #{filename}\n"
58
54
  end
55
+ STDOUT.write("\n")
59
56
  minimiser.finish
60
57
  # Write manifest and version
61
58
  File.open("#{output_plugin_dir}/manifest", "w") { |f| f.write manifest }
62
59
  version = Digest::SHA256.hexdigest(manifest)
63
60
  File.open("#{output_plugin_dir}/version", "w") { |f| f.write "#{version}\n" }
64
- # All done
65
- puts "Version: #{version}\nPlugin packed."
66
61
  end
67
62
 
68
63
  end
data/lib/plugin.rb CHANGED
@@ -40,10 +40,6 @@ module PluginTool
40
40
  pj['loadPriority'] || DEFAULT_PLUGIN_LOAD_PRIORITY
41
41
  end
42
42
 
43
- def print_banner
44
- puts "Plugin: #{@plugin_dir}"
45
- end
46
-
47
43
  def setup_for_server
48
44
  # Make the first empty manifest (may be replaced from server)
49
45
  @current_manifest = {}
@@ -96,7 +92,7 @@ module PluginTool
96
92
 
97
93
  # ---------------------------------------------------------------------------------------------------------
98
94
 
99
- def command(cmd)
95
+ def command(cmd, errors)
100
96
  case cmd
101
97
  when 'license-key'
102
98
  application_id = @options.args.first
@@ -106,7 +102,7 @@ module PluginTool
106
102
  generate_license_key(application_id)
107
103
 
108
104
  when 'pack'
109
- PluginTool.pack_plugin(@name, @options.output)
105
+ PluginTool.pack_plugin(@name, @options.output, errors)
110
106
 
111
107
  when 'reset-db'
112
108
  puts "Resetting database on server for #{@name}..."
data/lib/plugin_tool.rb CHANGED
@@ -128,7 +128,7 @@ plugins.sort! do |a,b|
128
128
  pri_b = b.plugin_load_priority
129
129
  (pri_a == pri_b) ? (a.name <=> b.name) : (pri_a <=> pri_b)
130
130
  end
131
- plugins.each { |p| p.print_banner }
131
+ puts "#{plugins.length} plugin#{plugins.length != 1 ? 's' : ''}"
132
132
 
133
133
  # Custom behaviour for this repo?
134
134
  PluginTool.custom_behaviour.start(plugins, PLUGIN_TOOL_COMMAND, options, LOCAL_ONLY_COMMANDS[PLUGIN_TOOL_COMMAND])
@@ -166,11 +166,13 @@ unless LOCAL_ONLY_COMMANDS[PLUGIN_TOOL_COMMAND]
166
166
  end
167
167
 
168
168
  # Run the command
169
- plugins.each { |p| p.command(PLUGIN_TOOL_COMMAND) }
169
+ errors = []
170
+ plugins.each { |p| p.command(PLUGIN_TOOL_COMMAND, errors) }
170
171
 
171
- # It this isn't the long-running develop command, stop now
172
+ # It this isn't the long-running develop command, output errors and stop now
172
173
  if PLUGIN_TOOL_COMMAND != 'develop'
173
- exit 0
174
+ errors.each { |error| puts error }
175
+ exit(errors.empty? ? 0 : 1)
174
176
  end
175
177
 
176
178
  # Syntax checking in the background
data/lib/version.txt CHANGED
@@ -1 +1 @@
1
- 14b9698
1
+ a8e1cfc
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haplo
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.4
4
+ version: 2.1.5
5
5
  platform: java
6
6
  authors:
7
7
  - Haplo Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-02 00:00:00.000000000 Z
11
+ date: 2016-04-01 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Development tools for developing Haplo plugins, see http://haplo.org
14
14
  email: client.services@haplo-services.com