gemjam 0.0.5 → 0.0.6
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.
- data/Rakefile +31 -12
- data/gemjam.gemspec +1 -1
- data/{jrubygem-gemjam.spec → jrubygem-gemjam.spec.erb} +3 -5
- data/lib/gemjam.rb +47 -14
- data/lib/gemjam/version.rb +1 -1
- metadata +23 -41
data/Rakefile
CHANGED
@@ -1,29 +1,48 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
2
|
|
3
3
|
require "bundler/gem_tasks"
|
4
|
+
require 'find'
|
5
|
+
require 'fileutils'
|
6
|
+
require 'erb'
|
4
7
|
require "rake/clean"
|
5
8
|
require File.expand_path('../lib/gemjam/version', __FILE__)
|
6
9
|
|
7
|
-
def git_rev
|
8
|
-
`git rev-parse --short HEAD`.chomp
|
9
|
-
end
|
10
|
+
def git_rev
|
11
|
+
`git rev-parse --short HEAD`.chomp
|
12
|
+
end
|
10
13
|
|
11
14
|
@dist = ENV["dist"] || ".fc16"
|
12
15
|
@d_dist = " --define 'dist #{@dist}'"
|
13
|
-
@d_version = " --define 'version #{Gemjam::VERSION}'"
|
14
|
-
@d_gitrev = "--define 'gitrev #{git_rev}'"
|
15
16
|
|
16
|
-
@
|
17
|
-
@
|
17
|
+
@rpmname = "jrubygem-gemjam"
|
18
|
+
@gemfile = "pkg/gemjam-#{Gemjam::VERSION}.gem"
|
19
|
+
@rpmspecfile = "rpmbuild/SPECS/#{@rpmname}.spec"
|
20
|
+
@srpmfile = "rpmbuild/SRPMS/#{@rpmname}-#{Gemjam::VERSION}-#{git_rev}#{@dist}.src.rpm"
|
18
21
|
|
19
22
|
task :default => :build
|
20
23
|
|
21
|
-
|
22
|
-
|
24
|
+
%w{ ./pkg/ ./rpmbuild/ }.each do |dir|
|
25
|
+
if FileTest.directory? dir
|
26
|
+
Find.find(dir) do |path|
|
27
|
+
CLEAN.include path if FileTest.file? path
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
desc "RPM spec from erb"
|
33
|
+
task @rpmspecfile do
|
34
|
+
t = ERB.new(File.read("#{@rpmname}.spec.erb"))
|
35
|
+
FileUtils.mkdir_p(File.dirname(@rpmspecfile))
|
36
|
+
File.open(@rpmspecfile, "w") do |file|
|
37
|
+
@version = Gemjam::VERSION
|
38
|
+
@gitrev = git_rev()
|
39
|
+
file.write(t.result(binding))
|
40
|
+
end
|
41
|
+
end
|
23
42
|
|
24
43
|
desc "Build a SRPM for brew"
|
25
|
-
task :srpm => [:build] do
|
26
|
-
cmd = "rpmbuild -bs --nodeps #{@d_dist}
|
44
|
+
task :srpm => [@rpmspecfile, :build] do
|
45
|
+
cmd = "rpmbuild -bs --nodeps #{@d_dist} --define '_sourcedir ./pkg/' --define '_srcrpmdir rpmbuild/SRPMS' ./#{@rpmspecfile}"
|
27
46
|
puts cmd
|
28
47
|
system cmd
|
29
48
|
end
|
@@ -31,7 +50,7 @@ end
|
|
31
50
|
|
32
51
|
desc "Build an RPM (Optional: set 'dist' env)"
|
33
52
|
task :rpm => [:srpm] do
|
34
|
-
cmd = "rpmbuild --rebuild #{@d_dist}
|
53
|
+
cmd = "rpmbuild --rebuild #{@d_dist} --define '_rpmdir rpmbuild/RPMS' ./#{@srpmfile}"
|
35
54
|
puts cmd
|
36
55
|
system cmd
|
37
56
|
end
|
data/gemjam.gemspec
CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |gem|
|
|
6
6
|
gem.email = ["vbatts@redhat.com"]
|
7
7
|
gem.description = %q{Create java jar, for jRuby, from gems or a bundler Gemfile}
|
8
8
|
gem.summary = %q{Create java jar, for jRuby, from gems or a bundler Gemfile}
|
9
|
-
gem.homepage = ""
|
9
|
+
gem.homepage = "https://github.com/vbatts/gemjam"
|
10
10
|
|
11
11
|
gem.files = `git ls-files`.split($\)
|
12
12
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -6,12 +6,10 @@
|
|
6
6
|
%global gemdir %(%{ruby_exec} -rubygems -e 'puts Gem::dir' 2>/dev/null)
|
7
7
|
%global geminstdir %{gemdir}/gems/%{gemname}-%{version}
|
8
8
|
|
9
|
-
%define rel %{?gitrev}%{!?gitrev:1}
|
10
|
-
|
11
9
|
Summary: Tool for packing rubygem dependencies, into a java jar
|
12
10
|
Name: jrubygem-%{gemname}
|
13
|
-
Version:
|
14
|
-
Release:
|
11
|
+
Version: <%= @version || "0.0.5" %>
|
12
|
+
Release: <%= @gitrev || "1" %>%{?dist}
|
15
13
|
Group: Development/Languages
|
16
14
|
License: GPLv2+ or Ruby
|
17
15
|
URL: http://git.corp.redhat.com/cgit/dev/towers/engineering/gems/gemjam/
|
@@ -54,7 +52,7 @@ rm -rf %{buildroot}
|
|
54
52
|
%{geminstdir}/lib
|
55
53
|
%{geminstdir}/LICENSE
|
56
54
|
%{geminstdir}/README.md
|
57
|
-
%exclude %{geminstdir}/%{name}.spec
|
55
|
+
%exclude %{geminstdir}/%{name}.spec.erb
|
58
56
|
%exclude %{geminstdir}/%{gemname}.gemspec
|
59
57
|
%exclude %{geminstdir}/Gemfile
|
60
58
|
%exclude %{geminstdir}/Rakefile
|
data/lib/gemjam.rb
CHANGED
@@ -21,6 +21,12 @@ module Gemjam
|
|
21
21
|
}
|
22
22
|
opts = OptionParser.new do |opts|
|
23
23
|
opts.banner = File.basename(__FILE__) + "[-b [Gemfile]] [-g gem[,version]]..."
|
24
|
+
opts.on("-o", "--output FILENAME", "output to jar FILENAME") do |o|
|
25
|
+
options[:output] = o
|
26
|
+
end
|
27
|
+
opts.on("-c", "--cache", "preserve the cach/*.gem files in the jar") do |o|
|
28
|
+
options[:cache] = o
|
29
|
+
end
|
24
30
|
opts.on("-q", "--quiet", "less output") do |o|
|
25
31
|
options[:quiet] = o
|
26
32
|
end
|
@@ -40,6 +46,12 @@ module Gemjam
|
|
40
46
|
File.expand_path(o)
|
41
47
|
end
|
42
48
|
end
|
49
|
+
opts.on("--with WITH", "bundle install --with 'foo bar' (if needed)") do |o|
|
50
|
+
options[:bundle_with] = o
|
51
|
+
end
|
52
|
+
opts.on("--without WITHOUT", "bundle install --without 'foo bar' (if needed)") do |o|
|
53
|
+
options[:bundle_without] = o
|
54
|
+
end
|
43
55
|
end.parse!(args)
|
44
56
|
return options
|
45
57
|
end
|
@@ -81,8 +93,9 @@ module Gemjam
|
|
81
93
|
# install the bundle, using jruby command +jruby+
|
82
94
|
#
|
83
95
|
# sets $? with that commands return value
|
84
|
-
def bundle_install(jruby, quiet = false)
|
85
|
-
|
96
|
+
def bundle_install(jruby, quiet = false, opts = {})
|
97
|
+
ex_opts = opts.map {|k,v| [k,v] }.join(" ")
|
98
|
+
cmd("#{jruby} -S bundle install --path ./vendor/bundle/ #{ex_opts}", quiet)
|
86
99
|
end
|
87
100
|
|
88
101
|
def bundler_vendor_dir
|
@@ -92,31 +105,44 @@ module Gemjam
|
|
92
105
|
|
93
106
|
end
|
94
107
|
|
95
|
-
def
|
96
|
-
o = parse_args(args)
|
97
|
-
p o unless o[:quiet]
|
98
|
-
|
108
|
+
def run(opts)
|
99
109
|
tmpdir = Dir.mktmpdir
|
100
110
|
begin
|
101
111
|
cwd = Dir.pwd
|
102
|
-
if
|
112
|
+
if opts[:bundle]
|
113
|
+
|
114
|
+
b_opts = {}
|
115
|
+
b_opts["--with"] = opts[:bundle_with] if opts[:bundle_with]
|
116
|
+
b_opts["--without"] = opts[:bundle_without] if opts[:bundle_without]
|
117
|
+
|
103
118
|
FileUtils.cd tmpdir
|
104
|
-
FileUtils.cp
|
105
|
-
|
119
|
+
FileUtils.cp opts[:bundle], "Gemfile"
|
120
|
+
if FileTest.file?("#{opts[:bundle]}.lock")
|
121
|
+
FileUtils.cp "#{opts[:bundle]}.lock", "Gemfile.lock"
|
122
|
+
b_opts["--deployment"] = ""
|
123
|
+
bundle_install(opts[:jruby], opts[:quiet], b_opts)
|
124
|
+
else
|
125
|
+
bundle_install(opts[:jruby], opts[:quiet], b_opts)
|
126
|
+
end
|
106
127
|
FileUtils.cd cwd
|
107
128
|
abort("FAIL: bundler returned: #{$?}") if $? != 0
|
108
129
|
end
|
109
130
|
|
110
|
-
|
111
|
-
gem_install(
|
131
|
+
opts[:gems].each do |gem|
|
132
|
+
gem_install(opts[:jruby], File.join(tmpdir, bundler_vendor_dir), gem, opts[:quiet])
|
112
133
|
abort("FAIL: gem install returned: #{$?}") if $? != 0
|
113
134
|
end
|
114
135
|
|
115
|
-
|
116
|
-
|
136
|
+
# the ./cache/*.gems just duplicates the size of this jar
|
137
|
+
unless opts[:cache]
|
138
|
+
FileUtils.remove_entry_secure(File.join(tmpdir, bundler_vendor_dir, "cache"), true)
|
139
|
+
end
|
140
|
+
|
141
|
+
jarname = opts[:output] ? opts[:output] : File.basename(tmpdir) + ".jar"
|
142
|
+
make_jar(jarname, File.join(tmpdir, bundler_vendor_dir), opts[:quiet])
|
117
143
|
abort("FAIL: jar packaging returned: #{$?}") if $? != 0
|
118
144
|
|
119
|
-
if
|
145
|
+
if opts[:quiet]
|
120
146
|
puts jarname
|
121
147
|
else
|
122
148
|
puts "Created #{jarname}"
|
@@ -126,4 +152,11 @@ module Gemjam
|
|
126
152
|
FileUtils.remove_entry_secure(tmpdir, true)
|
127
153
|
end
|
128
154
|
end
|
155
|
+
|
156
|
+
def main(args)
|
157
|
+
o = parse_args(args)
|
158
|
+
p o unless o[:quiet]
|
159
|
+
|
160
|
+
run(o)
|
161
|
+
end
|
129
162
|
end
|
data/lib/gemjam/version.rb
CHANGED
metadata
CHANGED
@@ -1,33 +1,24 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemjam
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 5
|
10
|
-
version: 0.0.5
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Vincent Batts
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
date: 2013-07-25 00:00:00 Z
|
12
|
+
date: 2013-07-26 00:00:00.000000000 Z
|
19
13
|
dependencies: []
|
20
|
-
|
21
14
|
description: Create java jar, for jRuby, from gems or a bundler Gemfile
|
22
|
-
email:
|
15
|
+
email:
|
23
16
|
- vbatts@redhat.com
|
24
|
-
executables:
|
17
|
+
executables:
|
25
18
|
- gemjam
|
26
19
|
extensions: []
|
27
|
-
|
28
20
|
extra_rdoc_files: []
|
29
|
-
|
30
|
-
files:
|
21
|
+
files:
|
31
22
|
- .gitignore
|
32
23
|
- Gemfile
|
33
24
|
- LICENSE
|
@@ -35,41 +26,32 @@ files:
|
|
35
26
|
- Rakefile
|
36
27
|
- bin/gemjam
|
37
28
|
- gemjam.gemspec
|
38
|
-
- jrubygem-gemjam.spec
|
29
|
+
- jrubygem-gemjam.spec.erb
|
39
30
|
- lib/gemjam.rb
|
40
31
|
- lib/gemjam/version.rb
|
41
|
-
homepage:
|
32
|
+
homepage: https://github.com/vbatts/gemjam
|
42
33
|
licenses: []
|
43
|
-
|
44
34
|
post_install_message:
|
45
35
|
rdoc_options: []
|
46
|
-
|
47
|
-
require_paths:
|
36
|
+
require_paths:
|
48
37
|
- lib
|
49
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
38
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
50
39
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
|
55
|
-
|
56
|
-
- 0
|
57
|
-
version: "0"
|
58
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
59
45
|
none: false
|
60
|
-
requirements:
|
61
|
-
- -
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
|
64
|
-
segments:
|
65
|
-
- 0
|
66
|
-
version: "0"
|
46
|
+
requirements:
|
47
|
+
- - ! '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
67
50
|
requirements: []
|
68
|
-
|
69
51
|
rubyforge_project:
|
70
|
-
rubygems_version: 1.8.
|
52
|
+
rubygems_version: 1.8.17
|
71
53
|
signing_key:
|
72
54
|
specification_version: 3
|
73
55
|
summary: Create java jar, for jRuby, from gems or a bundler Gemfile
|
74
56
|
test_files: []
|
75
|
-
|
57
|
+
has_rdoc:
|