poach 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: []