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 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
- @gemfile = "pkg/gemjam-#{Gemjam::VERSION}.gem"
17
- @srpmfile = "rpmbuild/SRPMS/jrubygem-gemjam-#{Gemjam::VERSION}-#{git_rev}#{@dist}.src.rpm"
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
- CLEAN.include 'pkg/'
22
- CLEAN.include 'rpmbuild/'
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} #{@d_version} #{@d_gitrev} --define '_sourcedir ./pkg/' --define '_srcrpmdir rpmbuild/SRPMS' ./jrubygem-gemjam.spec"
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} #{@d_version} #{@d_gitrev} --define '_rpmdir rpmbuild/RPMS' ./#{@srpmfile}"
53
+ cmd = "rpmbuild --rebuild #{@d_dist} --define '_rpmdir rpmbuild/RPMS' ./#{@srpmfile}"
35
54
  puts cmd
36
55
  system cmd
37
56
  end
@@ -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: %{?version}%{!?version:0.0.2}
14
- Release: %{rel}%{?dist}
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
@@ -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
- cmd("#{jruby} -S bundle install --path ./vendor/bundle/", quiet)
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 main(args)
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 o[:bundle]
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 o[:bundle], "Gemfile"
105
- bundle_install(o[:jruby], o[:quiet])
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
- o[:gems].each do |gem|
111
- gem_install(o[:jruby], File.join(tmpdir, bundler_vendor_dir), gem, o[:quiet])
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
- jarname = File.basename(tmpdir) + ".jar"
116
- make_jar(jarname, File.join(tmpdir, bundler_vendor_dir), o[:quiet])
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 o[:quiet]
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
@@ -1,3 +1,3 @@
1
1
  module Gemjam
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
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
- hash: 21
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
- hash: 3
55
- segments:
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
- hash: 3
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.11
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: