poach 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 94328565e20b1ff8e1608f82f87458c33ccc2f86
4
+ data.tar.gz: 1072b605b833896b515dcec527b5051d1eeede68
5
+ SHA512:
6
+ metadata.gz: 44c36a6d4a45f4a1740347c7987eb42d834b8d18c3b8841c60450638769fcbe99af3312cd5dc1fb0754b3c333a5d27d0e39b8e7e01a2a696d8889dae2f6fc3f2
7
+ data.tar.gz: f06de5fe00b82e809510b5efbb1a3f923d33b12babc5ba7d1c460d19986e4338cbb2588ee91a74c779948c81239057dad32f232108c3bbb1d221f3e27f349ad6
data/bin/poach ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../lib/poach.rb'
3
+ Poach.start
data/lib/poach.rb ADDED
@@ -0,0 +1,50 @@
1
+ require 'thor'
2
+ require 'fileutils'
3
+
4
+ class Poach < Thor
5
+ desc 'OPTIONS', 'Make executable jar from current directory'
6
+ option :name,
7
+ :default => 'app',
8
+ :desc => 'The desired name of the jar. (Eg: "my_app" will generate my_app.jar)'
9
+ def make()
10
+ nashorn_main_jar = File.dirname(__FILE__) + "/../resources/nashorn-main.jar"
11
+ application_jars = Dir.glob 'jars/**/*.jar'
12
+ application_contents = Dir.glob("**/*").reject do |f|
13
+ f =~ %r[dist/|jars/] || !(File.file? f) || File.basename(f) =~ /\.(coffee|java)$/
14
+ end
15
+
16
+ # Recreate dist/ folder
17
+ FileUtils.rm_rf "dist"
18
+ Dir.mkdir "dist"
19
+
20
+ # Copy all jars into dist/
21
+ jars = application_jars + [nashorn_main_jar]
22
+ jars.each do |jar|
23
+ FileUtils.cp jar, "dist/#{File.basename jar}"
24
+ end
25
+
26
+ # Extract and remove all jars
27
+ Dir.chdir "dist" do
28
+ Dir.entries(".").reject{|d| d =~ /^(\.\.?)$/}.each do |jar|
29
+ `jar xf #{jar}`
30
+ FileUtils.rm_rf "./#{jar}"
31
+ end
32
+ end
33
+
34
+ # Copy all application contents into dist/
35
+ application_contents.each do |file|
36
+ FileUtils.mkdir_p "dist/#{File.dirname file}"
37
+ FileUtils.cp file, "dist/#{file}"
38
+ end
39
+
40
+ # Create jar
41
+ Dir.chdir "dist" do
42
+ `jar cfe #{options[:name]}.jar com.github.jbreeden.NashornMain .`
43
+ Dir.entries(".").reject{|f| f =~ /#{options[:name]}.jar|^(\.\.?)$/}.each do |f|
44
+ FileUtils.rm_rf f
45
+ end
46
+ end
47
+ end
48
+
49
+ default_task :make
50
+ end
Binary file
metadata ADDED
@@ -0,0 +1,61 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: poach
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Jared Breeden
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description:
28
+ email:
29
+ executables:
30
+ - poach
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - bin/poach
35
+ - lib/poach.rb
36
+ - resources/nashorn-main.jar
37
+ homepage: https://github.com/jbreeden/poach
38
+ licenses:
39
+ - MIT
40
+ metadata: {}
41
+ post_install_message:
42
+ rdoc_options: []
43
+ require_paths:
44
+ - lib
45
+ required_ruby_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ requirements: []
56
+ rubyforge_project:
57
+ rubygems_version: 2.2.2
58
+ signing_key:
59
+ specification_version: 4
60
+ summary: Packages nashorn projects into executable jar files
61
+ test_files: []