tetra 2.0.4 → 2.0.5
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 +5 -5
- data/lib/tetra/facades/bash.rb +11 -6
- data/lib/tetra/facades/git.rb +1 -1
- data/lib/tetra/packages/scriptable.rb +8 -15
- data/lib/tetra/ui/dry_run_subcommand.rb +10 -5
- data/lib/tetra/version.rb +1 -1
- data/spec/lib/coarse/dry_run_subcommand_spec.rb +18 -0
- data/spec/lib/fine/scriptable_spec.rb +3 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 49390dd466afdc5488d1bf1443d3fe67a0932b0c76a59b30bc60a2372689f608
|
4
|
+
data.tar.gz: d65544049f50356123f81ecaa383c339a92269c597c098b071b80b3dc96b78e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93b0aa29b27648e3c5a3307ecd42b25bd7ae7492d6928ffb75926ea5d7937dbf68e89bf56fa199e1e54a7ffd651344cfdb429c15a046a9a9cbb3c775ab6ddfab
|
7
|
+
data.tar.gz: ad216938b93bd70455f1ee3ea62b509a6ffdc65742bc760b6fe20a65bd5a0c3a6dada151bdb5a2bfea43c0e44071e4cd5f80b705b96c894b464d6e8c6ac86500
|
data/lib/tetra/facades/bash.rb
CHANGED
@@ -12,7 +12,7 @@ module Tetra
|
|
12
12
|
|
13
13
|
# runs bash in a subshell, returns list of
|
14
14
|
# commands that were run in the session
|
15
|
-
def bash
|
15
|
+
def bash(command = nil)
|
16
16
|
Tempfile.open("tetra-history") do |history_file|
|
17
17
|
Tempfile.open("tetra-bashrc") do |bashrc_file|
|
18
18
|
kit = Tetra::Kit.new(@project)
|
@@ -31,12 +31,17 @@ module Tetra
|
|
31
31
|
bashrc_file.write(bashrc_content)
|
32
32
|
bashrc_file.flush
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
34
|
+
if command
|
35
|
+
run("bash --rcfile #{bashrc_file.path} -i -c '#{command}'")
|
36
|
+
[command]
|
37
|
+
else
|
38
|
+
run_interactive("bash --rcfile #{bashrc_file.path} -i")
|
39
|
+
history = File.read(history_file)
|
40
|
+
log.debug "history contents:"
|
41
|
+
log.debug history
|
38
42
|
|
39
|
-
|
43
|
+
history.split("\n").map(&:strip)
|
44
|
+
end
|
40
45
|
end
|
41
46
|
end
|
42
47
|
end
|
data/lib/tetra/facades/git.rb
CHANGED
@@ -161,7 +161,7 @@ module Tetra
|
|
161
161
|
# since from_id
|
162
162
|
def format_patch(directory, from_id, destination_path)
|
163
163
|
Dir.chdir(@directory) do
|
164
|
-
run("git format-patch -o #{destination_path} --numbered #{from_id} -- #{directory}").split
|
164
|
+
run("git format-patch -o #{destination_path} --no-numbered #{from_id} -- #{directory}").split
|
165
165
|
end
|
166
166
|
end
|
167
167
|
end
|
@@ -11,7 +11,7 @@ module Tetra
|
|
11
11
|
"set -xe",
|
12
12
|
"PROJECT_PREFIX=`readlink -e .`",
|
13
13
|
"cd #{project.latest_dry_run_directory}"
|
14
|
-
] +
|
14
|
+
] + aliases(project) + project.build_script_lines
|
15
15
|
|
16
16
|
new_content = script_lines.join("\n") + "\n"
|
17
17
|
|
@@ -25,27 +25,20 @@ module Tetra
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
#
|
29
|
-
|
30
|
-
def script_body(project)
|
31
|
-
lines = project.build_script_lines
|
32
|
-
|
28
|
+
# setup aliases for adjusted versions of the packaging tools
|
29
|
+
def aliases(project)
|
33
30
|
kit = Tetra::Kit.new(project)
|
31
|
+
|
32
|
+
aliases = []
|
34
33
|
ant_path = kit.find_executable("ant")
|
35
34
|
ant_commandline = Tetra::Ant.commandline("$PROJECT_PREFIX", ant_path)
|
35
|
+
aliases << "alias ant='#{ant_commandline}'"
|
36
36
|
|
37
37
|
mvn_path = kit.find_executable("mvn")
|
38
38
|
mvn_commandline = Tetra::Mvn.commandline("$PROJECT_PREFIX", mvn_path)
|
39
|
+
aliases << "alias mvn='#{mvn_commandline} -o'"
|
39
40
|
|
40
|
-
|
41
|
-
if line =~ /^ant( .*)?$/
|
42
|
-
line.gsub(/^ant/, ant_commandline)
|
43
|
-
elsif line =~ /^mvn( .*)?$/
|
44
|
-
line.gsub(/^mvn/, "#{mvn_commandline} -o")
|
45
|
-
else
|
46
|
-
line
|
47
|
-
end
|
48
|
-
end
|
41
|
+
aliases
|
49
42
|
end
|
50
43
|
end
|
51
44
|
end
|
@@ -3,6 +3,7 @@
|
|
3
3
|
module Tetra
|
4
4
|
# tetra dry-run
|
5
5
|
class DryRunSubcommand < Tetra::Subcommand
|
6
|
+
option ["-s", "--script"], "SCRIPT", "Run these commands to build the project instead of the interactive shell"
|
6
7
|
def execute
|
7
8
|
checking_exceptions do
|
8
9
|
project = Tetra::Project.new(".")
|
@@ -14,13 +15,17 @@ module Tetra
|
|
14
15
|
puts "Dry run not started."
|
15
16
|
else
|
16
17
|
project.dry_run
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
if script
|
19
|
+
puts "Scripted dry-run started."
|
20
|
+
else
|
21
|
+
puts "Dry-run started in a new bash shell."
|
22
|
+
puts "Build your project now, \"mvn\" and \"ant\" are already bundled by tetra."
|
23
|
+
puts "If the build succeedes end this dry run with ^D (Ctrl+D),"
|
24
|
+
puts "if the build does not succeed use ^C^D to abort and undo any change"
|
25
|
+
end
|
21
26
|
|
22
27
|
begin
|
23
|
-
history = Tetra::Bash.new(project).bash
|
28
|
+
history = Tetra::Bash.new(project).bash(script)
|
24
29
|
project.finish(history)
|
25
30
|
puts "Dry-run finished"
|
26
31
|
rescue ExecutionFailed
|
data/lib/tetra/version.rb
CHANGED
@@ -17,6 +17,7 @@ describe "`tetra dry-run`", type: :aruba do
|
|
17
17
|
type("\u{0004}") # ^D (Ctrl+D), terminates bash with exit status 0
|
18
18
|
|
19
19
|
expect(all_output).to include("Dry-run started")
|
20
|
+
expect(all_output).to include("bash shell")
|
20
21
|
expect(all_output).to include("ciao")
|
21
22
|
expect(all_output).to include("Dry-run finished")
|
22
23
|
|
@@ -28,4 +29,21 @@ describe "`tetra dry-run`", type: :aruba do
|
|
28
29
|
expect(stdout_from("git rev-list --format=%B --max-count=1 HEAD")).to include("tetra: dry-run-finished")
|
29
30
|
expect(stdout_from("git rev-list --format=%B --max-count=1 HEAD")).to include("tetra: build-script-line: echo ciao")
|
30
31
|
end
|
32
|
+
|
33
|
+
it "does a scripted dry-run" do
|
34
|
+
run_simple("tetra init --no-archive mypackage")
|
35
|
+
cd("mypackage")
|
36
|
+
|
37
|
+
run_interactive("tetra dry-run -s 'echo ciao > ciao.jar'")
|
38
|
+
|
39
|
+
expect(all_output).to include("Scripted dry-run started")
|
40
|
+
|
41
|
+
# check that markers were written in git repo
|
42
|
+
run_simple("git rev-list --format=%B --max-count=1 HEAD~")
|
43
|
+
expect(stdout_from("git rev-list --format=%B --max-count=1 HEAD~")).to include("tetra: dry-run-started")
|
44
|
+
|
45
|
+
run_simple("git rev-list --format=%B --max-count=1 HEAD")
|
46
|
+
expect(stdout_from("git rev-list --format=%B --max-count=1 HEAD")).to include("tetra: dry-run-finished")
|
47
|
+
expect(stdout_from("git rev-list --format=%B --max-count=1 HEAD")).to include("tetra: build-script-line: echo ciao > ciao.jar")
|
48
|
+
end
|
31
49
|
end
|
@@ -39,9 +39,10 @@ describe Tetra::Scriptable do
|
|
39
39
|
|
40
40
|
expect(lines).to include("#!/bin/bash\n")
|
41
41
|
expect(lines).to include("cd somewhere significant\n")
|
42
|
-
expect(lines).to include("
|
42
|
+
expect(lines).to include("mvn --options\n")
|
43
|
+
expect(lines).to include("alias mvn='$PROJECT_PREFIX/kit/mvn/bin/mvn \
|
43
44
|
-Dmaven.repo.local=$PROJECT_PREFIX/kit/m2 --settings $PROJECT_PREFIX/kit/m2/settings.xml \
|
44
|
-
--strict-checksums -o
|
45
|
+
--strict-checksums -o'\n"
|
45
46
|
)
|
46
47
|
|
47
48
|
expect(lines).not_to include("some earlier command\n")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tetra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Silvio Moioli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -421,7 +421,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
421
421
|
version: '0'
|
422
422
|
requirements: []
|
423
423
|
rubyforge_project: tetra
|
424
|
-
rubygems_version: 2.
|
424
|
+
rubygems_version: 2.7.6
|
425
425
|
signing_key:
|
426
426
|
specification_version: 4
|
427
427
|
summary: A tool to package Java projects
|