octopolo 0.3.5 → 0.3.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.
- checksums.yaml +8 -8
- data/CHANGELOG.markdown +5 -0
- data/lib/octopolo/cli.rb +3 -2
- data/lib/octopolo/git.rb +7 -4
- data/lib/octopolo/version.rb +1 -1
- data/spec/octopolo/cli_spec.rb +7 -0
- data/spec/octopolo/git_spec.rb +4 -4
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
YjBkOWNlNGY5ZGYyYThmNjE4NjA5YzAyNDhmOGViOTVhMmI0ZTJkNw==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
ZGUzMGFmZmM2ZGQxNDk5YjhhNjFlMWY3M2IxOWM3YmRiMWZjMTA2MA==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
NDcwNjNkYTQ3OWI2OTRjNTE3YWRkMWEyOTRlMTJiZDg0OGRiYWJkMGFhZGZh
|
|
10
|
+
NGMxOTM0MjU5ZTAxZGE1NzllNmIyODQ2ODdlYmUwODQzNTU0OTYzZDQwY2Nm
|
|
11
|
+
YzQyYWJlNDg5OWM3OTllNjNkZTUwYzUzNjdlYWRiMzdkNjk5YmY=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
OThiMTI3NjcyZmVjMDI5OWJlMTZlZTVkMTA1Njk1ODZiZmU4NTk0Zjc5YWRh
|
|
14
|
+
OGU2NmM4MmEzOGMzYzQ5Y2RhYThlN2U5Y2Q5Mjk1OGM3MTJmMjFjNzhiZGI3
|
|
15
|
+
OTAzYmE5YjVkMWY2MjJlZmU0MTU3MzE5MWE4MzY3MGEyYmU5Zjg=
|
data/CHANGELOG.markdown
CHANGED
data/lib/octopolo/cli.rb
CHANGED
|
@@ -8,6 +8,7 @@ module Octopolo
|
|
|
8
8
|
#
|
|
9
9
|
# command - A String containing the command to perform.
|
|
10
10
|
# say_command - A Boolean determining whether to display the performed command to the screen. (default: true)
|
|
11
|
+
# ignore_non_zero - Ignore exception for non-zero exit status of command.
|
|
11
12
|
#
|
|
12
13
|
# Examples
|
|
13
14
|
#
|
|
@@ -20,13 +21,13 @@ module Octopolo
|
|
|
20
21
|
# # => "Already up-to-date."
|
|
21
22
|
#
|
|
22
23
|
# Returns the output of the command as a String.
|
|
23
|
-
def self.perform(command, say_command = true)
|
|
24
|
+
def self.perform(command, say_command = true, ignore_non_zero=false)
|
|
24
25
|
# display the command
|
|
25
26
|
say command if say_command
|
|
26
27
|
# and then perform it
|
|
27
28
|
if Open3.respond_to?(:capture3)
|
|
28
29
|
output, error, status = Open3.capture3(command)
|
|
29
|
-
raise "command=#{command}; exit_status=#{status.exitstatus}; stderr=#{error}" unless status.success?
|
|
30
|
+
raise "command=#{command}; exit_status=#{status.exitstatus}; stderr=#{error}" unless status.success? || ignore_non_zero
|
|
30
31
|
else
|
|
31
32
|
# Only necessary as long as we use 1.8.7, which doesn't have Open3.capture3
|
|
32
33
|
output = `#{command}`
|
data/lib/octopolo/git.rb
CHANGED
|
@@ -22,13 +22,16 @@ module Octopolo
|
|
|
22
22
|
# Public: Perform the given Git subcommand
|
|
23
23
|
#
|
|
24
24
|
# subcommand - String containing the subcommand and its parameters
|
|
25
|
+
# options - Hash
|
|
26
|
+
# ignore_non_zero - Ignore exception for non-zero exit status of command.
|
|
25
27
|
#
|
|
26
28
|
# Example:
|
|
27
29
|
#
|
|
28
30
|
# > Git.perform "status"
|
|
29
31
|
# # => output of `git status`
|
|
30
|
-
def self.perform(subcommand)
|
|
31
|
-
|
|
32
|
+
def self.perform(subcommand, options={})
|
|
33
|
+
options[:ignore_non_zero] ||= false
|
|
34
|
+
cli.perform("git #{subcommand}", true, options[:ignore_non_zero])
|
|
32
35
|
end
|
|
33
36
|
|
|
34
37
|
# Public: Perform the given Git subcommand without displaying the output
|
|
@@ -125,7 +128,7 @@ module Octopolo
|
|
|
125
128
|
def self.merge(branch_name)
|
|
126
129
|
Git.if_clean do
|
|
127
130
|
Git.fetch
|
|
128
|
-
perform "merge --no-ff origin/#{branch_name}"
|
|
131
|
+
perform "merge --no-ff origin/#{branch_name}", :ignore_non_zero => true
|
|
129
132
|
raise MergeFailed unless Git.clean?
|
|
130
133
|
Git.push
|
|
131
134
|
end
|
|
@@ -233,7 +236,7 @@ module Octopolo
|
|
|
233
236
|
# branch_name - The name of the branch to delete
|
|
234
237
|
def self.delete_branch(branch_name)
|
|
235
238
|
perform "push origin :#{branch_name}"
|
|
236
|
-
perform "branch -D #{branch_name}"
|
|
239
|
+
perform "branch -D #{branch_name}", :ignore_non_zero => true
|
|
237
240
|
end
|
|
238
241
|
|
|
239
242
|
# Public: Branches which have been merged into the given branch
|
data/lib/octopolo/version.rb
CHANGED
data/spec/octopolo/cli_spec.rb
CHANGED
|
@@ -41,6 +41,13 @@ module Octopolo
|
|
|
41
41
|
.to raise_error(RuntimeError, "command=#{command}; exit_status=1; stderr=kaboom")
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
+
it "should ignore non zero return from command" do
|
|
45
|
+
subject.should_receive(:say).with(command)
|
|
46
|
+
Open3.should_receive(:capture3).with(command).and_return([result, "kaboom", status_error])
|
|
47
|
+
subject.should_receive(:say).with(result)
|
|
48
|
+
expect { subject.perform(command, true, true) }.to_not raise_error
|
|
49
|
+
end
|
|
50
|
+
|
|
44
51
|
it "should not speak the command if told not to" do
|
|
45
52
|
subject.should_receive(:say).with(command).never
|
|
46
53
|
subject.perform(command, false)
|
data/spec/octopolo/git_spec.rb
CHANGED
|
@@ -11,7 +11,7 @@ module Octopolo
|
|
|
11
11
|
before { Git.cli = cli }
|
|
12
12
|
|
|
13
13
|
it "performs the given subcommand" do
|
|
14
|
-
cli.should_receive(:perform).with("git #{command}")
|
|
14
|
+
cli.should_receive(:perform).with("git #{command}", true, false)
|
|
15
15
|
Git.perform command
|
|
16
16
|
end
|
|
17
17
|
end
|
|
@@ -176,7 +176,7 @@ module Octopolo
|
|
|
176
176
|
it "fetches the latest code and merges the given branch name" do
|
|
177
177
|
Git.should_receive(:if_clean).and_yield
|
|
178
178
|
Git.should_receive(:fetch)
|
|
179
|
-
Git.should_receive(:perform).with("merge --no-ff origin/#{branch_name}")
|
|
179
|
+
Git.should_receive(:perform).with("merge --no-ff origin/#{branch_name}", :ignore_non_zero => true)
|
|
180
180
|
Git.should_receive(:clean?) { true }
|
|
181
181
|
Git.should_receive(:push)
|
|
182
182
|
|
|
@@ -186,7 +186,7 @@ module Octopolo
|
|
|
186
186
|
it "does not push and raises MergeFailed if the merge failed" do
|
|
187
187
|
Git.should_receive(:if_clean).and_yield
|
|
188
188
|
Git.should_receive(:fetch)
|
|
189
|
-
Git.should_receive(:perform).with("merge --no-ff origin/#{branch_name}")
|
|
189
|
+
Git.should_receive(:perform).with("merge --no-ff origin/#{branch_name}", :ignore_non_zero => true)
|
|
190
190
|
Git.should_receive(:clean?) { false }
|
|
191
191
|
Git.should_not_receive(:push)
|
|
192
192
|
|
|
@@ -434,7 +434,7 @@ module Octopolo
|
|
|
434
434
|
|
|
435
435
|
it "leverages git-extra's delete-branch command" do
|
|
436
436
|
Git.should_receive(:perform).with("push origin :#{branch_name}")
|
|
437
|
-
Git.should_receive(:perform).with("branch -D #{branch_name}")
|
|
437
|
+
Git.should_receive(:perform).with("branch -D #{branch_name}", :ignore_non_zero => true)
|
|
438
438
|
Git.delete_branch branch_name
|
|
439
439
|
end
|
|
440
440
|
end
|