gjp 0.26.0 → 0.27.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +1 -1
- data/integration-tests/commons.sh +1 -1
- data/lib/gjp/archiver.rb +5 -5
- data/lib/gjp/cli.rb +71 -39
- data/lib/gjp/script_generator.rb +10 -1
- data/lib/gjp/version.rb +1 -1
- data/lib/template/package.spec +2 -0
- data/spec/lib/archiver_spec.rb +3 -3
- metadata +1 -1
data/README.md
CHANGED
@@ -113,7 +113,7 @@ The following command will generate the kit archive in `output/galaxy-kit/`:
|
|
113
113
|
|
114
114
|
gjp generate-kit-archive
|
115
115
|
|
116
|
-
Note that, in later runs,
|
116
|
+
Note that, in later runs, only an additional "diff" tar.xz file will be created to ease uploads. You can use the `--full` option to regenerate a single complete archive.
|
117
117
|
|
118
118
|
The following command will generate the kit spec:
|
119
119
|
|
data/lib/gjp/archiver.rb
CHANGED
@@ -10,7 +10,7 @@ module Gjp
|
|
10
10
|
end
|
11
11
|
|
12
12
|
# generates an archive for the kit package
|
13
|
-
def archive_kit(
|
13
|
+
def archive_kit(full)
|
14
14
|
destination_dir = File.join(@project.full_path, "output", "#{@project.name}-kit")
|
15
15
|
FileUtils.mkdir_p(destination_dir)
|
16
16
|
destination_file_prefix = "#{@project.name}-kit"
|
@@ -18,12 +18,12 @@ module Gjp
|
|
18
18
|
|
19
19
|
@project.take_snapshot "Kit archival started"
|
20
20
|
|
21
|
-
destination_file = if
|
22
|
-
log.debug "doing incremental archive"
|
23
|
-
archive_incremental("kit", destination_dir, destination_file_prefix, destination_file_suffix, :archive_kit)
|
24
|
-
else
|
21
|
+
destination_file = if full
|
25
22
|
remove_stale_incremental(destination_dir, destination_file_prefix, destination_file_suffix)
|
26
23
|
archive_single("kit", File.join(destination_dir, destination_file_prefix + destination_file_suffix))
|
24
|
+
else
|
25
|
+
log.debug "doing incremental archive"
|
26
|
+
archive_incremental("kit", destination_dir, destination_file_prefix, destination_file_suffix, :archive_kit)
|
27
27
|
end
|
28
28
|
|
29
29
|
@project.take_snapshot "Kit archive generated", :archive_kit
|
data/lib/gjp/cli.rb
CHANGED
@@ -71,7 +71,9 @@ module Gjp
|
|
71
71
|
def execute
|
72
72
|
checking_exceptions do
|
73
73
|
project = Gjp::Project.new(".")
|
74
|
-
|
74
|
+
ensure_dry_running(true, project) do
|
75
|
+
Gjp::KitRunner.new(project).mvn(@options)
|
76
|
+
end
|
75
77
|
end
|
76
78
|
end
|
77
79
|
end
|
@@ -87,7 +89,9 @@ module Gjp
|
|
87
89
|
def execute
|
88
90
|
checking_exceptions do
|
89
91
|
project = Gjp::Project.new(".")
|
90
|
-
|
92
|
+
ensure_dry_running(true, project) do
|
93
|
+
Gjp::KitRunner.new(project).ant(@options)
|
94
|
+
end
|
91
95
|
end
|
92
96
|
end
|
93
97
|
end
|
@@ -109,23 +113,27 @@ module Gjp
|
|
109
113
|
end
|
110
114
|
end
|
111
115
|
|
112
|
-
subcommand "generate-kit-
|
116
|
+
subcommand "generate-kit-archive", "Create or refresh the kit tarball" do
|
117
|
+
option ["-f", "--full"], :flag, "create a full archive (not incremental)"
|
113
118
|
def execute
|
114
119
|
checking_exceptions do
|
115
120
|
project = Gjp::Project.new(".")
|
116
|
-
|
117
|
-
|
121
|
+
ensure_dry_running(false, project) do
|
122
|
+
result_path = Gjp::Archiver.new(project).archive_kit(full?)
|
123
|
+
print_generation_result(project, result_path)
|
124
|
+
end
|
118
125
|
end
|
119
126
|
end
|
120
127
|
end
|
121
128
|
|
122
|
-
subcommand "generate-kit-
|
123
|
-
option ["-i", "--incremental"], :flag, "create an archive with only the difference from the previous one"
|
129
|
+
subcommand "generate-kit-spec", "Create or refresh a spec file for the kit" do
|
124
130
|
def execute
|
125
131
|
checking_exceptions do
|
126
132
|
project = Gjp::Project.new(".")
|
127
|
-
|
128
|
-
|
133
|
+
ensure_dry_running(false, project) do
|
134
|
+
result_path, conflict_count = Gjp::SpecGenerator.new(project).generate_kit_spec
|
135
|
+
print_generation_result(project, result_path, conflict_count)
|
136
|
+
end
|
129
137
|
end
|
130
138
|
end
|
131
139
|
end
|
@@ -135,73 +143,85 @@ module Gjp
|
|
135
143
|
def execute
|
136
144
|
checking_exceptions do
|
137
145
|
project = Gjp::Project.new(".")
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
146
|
+
ensure_dry_running(false, project) do
|
147
|
+
package_name = project.get_package_name(directory)
|
148
|
+
history_file = File.join(Dir.home, ".bash_history")
|
149
|
+
result_path, conflict_count = Gjp::ScriptGenerator.new(project, history_file).generate_build_script(package_name)
|
150
|
+
print_generation_result(project, result_path, conflict_count)
|
151
|
+
end
|
142
152
|
end
|
143
153
|
end
|
144
154
|
end
|
145
155
|
|
146
|
-
subcommand "generate-package-
|
147
|
-
option ["-f", "--filter"], "FILTER", "filter files to be installed by this spec", :default => "*.jar"
|
156
|
+
subcommand "generate-package-archive", "Create or refresh a package tarball" do
|
148
157
|
parameter "[DIRECTORY]", "path to a package directory (src/<package name>)", :default => "."
|
149
|
-
parameter "[POM]", "a pom file path", :default => "pom.xml"
|
150
158
|
def execute
|
151
159
|
checking_exceptions do
|
152
160
|
project = Gjp::Project.new(".")
|
153
|
-
|
154
|
-
|
155
|
-
|
161
|
+
ensure_dry_running(false, project) do
|
162
|
+
package_name = project.get_package_name(directory)
|
163
|
+
result_path = Gjp::Archiver.new(project).archive_package package_name
|
164
|
+
print_generation_result(project, result_path)
|
165
|
+
end
|
156
166
|
end
|
157
167
|
end
|
158
168
|
end
|
159
169
|
|
160
|
-
subcommand "generate-package-
|
170
|
+
subcommand "generate-package-spec", "Create or refresh a spec file for a package" do
|
171
|
+
option ["-f", "--filter"], "FILTER", "filter files to be installed by this spec", :default => "*.jar"
|
161
172
|
parameter "[DIRECTORY]", "path to a package directory (src/<package name>)", :default => "."
|
173
|
+
parameter "[POM]", "a pom file path", :default => "pom.xml"
|
162
174
|
def execute
|
163
175
|
checking_exceptions do
|
164
176
|
project = Gjp::Project.new(".")
|
165
|
-
|
166
|
-
|
167
|
-
|
177
|
+
ensure_dry_running(false, project) do
|
178
|
+
package_name = project.get_package_name(directory)
|
179
|
+
result_path, conflict_count = Gjp::SpecGenerator.new(project).generate_package_spec package_name, pom, filter
|
180
|
+
print_generation_result(project, result_path, conflict_count)
|
181
|
+
end
|
168
182
|
end
|
169
183
|
end
|
170
184
|
end
|
171
185
|
|
172
186
|
subcommand "generate-all", "Create or refresh specs, archives, scripts for a package and the kit" do
|
173
187
|
option ["-f", "--filter"], "FILTER", "filter files to be installed by this package spec", :default => "*.jar"
|
174
|
-
option ["-
|
188
|
+
option ["-f", "--full"], :flag, "create a full archive (not incremental)"
|
175
189
|
parameter "[DIRECTORY]", "path to a package directory (src/<package name>)", :default => "."
|
176
190
|
parameter "[POM]", "a package pom file path", :default => "pom.xml"
|
177
191
|
def execute
|
178
192
|
checking_exceptions do
|
179
193
|
project = Gjp::Project.new(".")
|
180
|
-
|
194
|
+
ensure_dry_running(false, project) do
|
195
|
+
package_name = project.get_package_name(directory)
|
181
196
|
|
182
|
-
|
183
|
-
|
197
|
+
result_path = Gjp::Archiver.new(project).archive_kit(full?)
|
198
|
+
print_generation_result(project, result_path)
|
184
199
|
|
185
|
-
|
186
|
-
|
200
|
+
result_path, conflict_count = Gjp::SpecGenerator.new(project).generate_kit_spec
|
201
|
+
print_generation_result(project, result_path, conflict_count)
|
187
202
|
|
188
|
-
|
189
|
-
|
190
|
-
|
203
|
+
history_file = File.join(Dir.home, ".bash_history")
|
204
|
+
result_path, conflict_count = Gjp::ScriptGenerator.new(project, history_file).generate_build_script(package_name)
|
205
|
+
print_generation_result(project, result_path, conflict_count)
|
191
206
|
|
192
|
-
|
193
|
-
|
207
|
+
result_path = Gjp::Archiver.new(project).archive_package package_name
|
208
|
+
print_generation_result(project, result_path)
|
194
209
|
|
195
|
-
|
196
|
-
|
210
|
+
result_path, conflict_count = Gjp::SpecGenerator.new(project).generate_package_spec package_name, pom, filter
|
211
|
+
print_generation_result(project, result_path, conflict_count)
|
212
|
+
end
|
197
213
|
end
|
198
214
|
end
|
199
215
|
end
|
200
216
|
|
201
217
|
subcommand "purge-jars", "Locates jars in src/ and moves them to kit/" do
|
202
218
|
def execute
|
203
|
-
Gjp::Project.new(".")
|
204
|
-
|
219
|
+
project = Gjp::Project.new(".")
|
220
|
+
|
221
|
+
ensure_dry_running(false, project) do
|
222
|
+
project.purge_jars.each do |original, final|
|
223
|
+
puts "Replaced #{original} with symlink pointing to to #{final}"
|
224
|
+
end
|
205
225
|
end
|
206
226
|
end
|
207
227
|
end
|
@@ -276,6 +296,18 @@ module Gjp
|
|
276
296
|
|
277
297
|
private
|
278
298
|
|
299
|
+
def ensure_dry_running(state, project)
|
300
|
+
if project.is_dry_running == state
|
301
|
+
yield
|
302
|
+
else
|
303
|
+
if state == true
|
304
|
+
puts "Please start a dry-run first, use \"gjp dry-run\""
|
305
|
+
else
|
306
|
+
puts "Please finish or abort this dry-run first, use \"gjp finish\" or \"gjp finish --abort\""
|
307
|
+
end
|
308
|
+
end
|
309
|
+
end
|
310
|
+
|
279
311
|
# outputs output of a file generation
|
280
312
|
def print_generation_result(project, result_path, conflict_count = 0)
|
281
313
|
puts "#{format_path(result_path, project)} generated"
|
@@ -306,7 +338,7 @@ module Gjp
|
|
306
338
|
$stderr.puts e
|
307
339
|
rescue NoProjectDirectoryError => e
|
308
340
|
$stderr.puts "#{e.directory} not a gjp project directory, see gjp init"
|
309
|
-
rescue
|
341
|
+
rescue NoPackageDirectoryError => e
|
310
342
|
$stderr.puts "#{e.directory} is not a gjp package directory, see README"
|
311
343
|
rescue GitAlreadyInitedError => e
|
312
344
|
$stderr.puts "This directory is already a gjp project"
|
data/lib/gjp/script_generator.rb
CHANGED
@@ -30,6 +30,8 @@ module Gjp
|
|
30
30
|
relevant_lines.map do |line|
|
31
31
|
if line =~ /gjp +mvn/
|
32
32
|
line.gsub(/gjp +mvn/, "#{@kit_runner.get_maven_commandline("$PROJECT_PREFIX")}")
|
33
|
+
elsif line =~ /gjp +ant/
|
34
|
+
line.gsub(/gjp +ant/, "#{@kit_runner.get_ant_commandline("$PROJECT_PREFIX")}")
|
33
35
|
else
|
34
36
|
line
|
35
37
|
end
|
@@ -37,8 +39,15 @@ module Gjp
|
|
37
39
|
|
38
40
|
new_content = script_lines.join("\n") + "\n"
|
39
41
|
|
40
|
-
|
42
|
+
script_name = "build.sh"
|
43
|
+
result_path = File.join("src", name, script_name)
|
41
44
|
conflict_count = @project.merge_new_content(new_content, result_path, "Build script generated", "generate_#{name}_build_script")
|
45
|
+
|
46
|
+
destination_dir = File.join("output", name)
|
47
|
+
FileUtils.mkdir_p(destination_dir)
|
48
|
+
destination_script_path = File.join(destination_dir, script_name)
|
49
|
+
FileUtils.symlink(File.expand_path(result_path), destination_script_path, :force => true)
|
50
|
+
|
42
51
|
[result_path, conflict_count]
|
43
52
|
end
|
44
53
|
end
|
data/lib/gjp/version.rb
CHANGED
data/lib/template/package.spec
CHANGED
@@ -23,6 +23,7 @@ Summary: <%= summary %>
|
|
23
23
|
Url: <%= url %>
|
24
24
|
Group: Development/Libraries/Java
|
25
25
|
Source0: %{name}.tar.xz
|
26
|
+
Source1: build.sh
|
26
27
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
27
28
|
BuildRequires: xz
|
28
29
|
BuildRequires: java-devel
|
@@ -41,6 +42,7 @@ Requires: mvn(<%= dependency_id[0] %>:<%= dependency_id[1] %>) <% if depen
|
|
41
42
|
|
42
43
|
%prep
|
43
44
|
%setup -q -c -n src/<%= name %>
|
45
|
+
cp -f %{SOURCE1} .
|
44
46
|
ln -sf %{_datadir}/gjp/<%= project_name %>-kit ../../kit
|
45
47
|
|
46
48
|
%build
|
data/spec/lib/archiver_spec.rb
CHANGED
@@ -60,7 +60,7 @@ describe Gjp::Archiver do
|
|
60
60
|
end
|
61
61
|
@project.finish(false)
|
62
62
|
|
63
|
-
archiver.archive_kit(
|
63
|
+
archiver.archive_kit(true)
|
64
64
|
@project.from_directory do
|
65
65
|
`tar -Jtf output/test-project-kit/test-project-kit.tar.xz`.split.should include("kit_test")
|
66
66
|
end
|
@@ -71,7 +71,7 @@ describe Gjp::Archiver do
|
|
71
71
|
end
|
72
72
|
@project.finish(false)
|
73
73
|
|
74
|
-
archiver.archive_kit(
|
74
|
+
archiver.archive_kit(false)
|
75
75
|
@project.from_directory do
|
76
76
|
`tar -Jtf output/test-project-kit/test-project-kit.tar.xz`.split.should include("kit_test")
|
77
77
|
end
|
@@ -80,7 +80,7 @@ describe Gjp::Archiver do
|
|
80
80
|
File.open(File.join("kit","kit_test2"), "w") { |io| io.puts "test content" }
|
81
81
|
end
|
82
82
|
|
83
|
-
archiver.archive_kit(
|
83
|
+
archiver.archive_kit(false)
|
84
84
|
@project.from_directory do
|
85
85
|
files = `tar -Jtf output/test-project-kit/test-project-kit_0001.tar.xz`.split
|
86
86
|
files.should include("kit_test2")
|