summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tool/vcs.rb14
1 files changed, 10 insertions, 4 deletions
diff --git a/tool/vcs.rb b/tool/vcs.rb
index 7e06f3dbcc..022783acac 100644
--- a/tool/vcs.rb
+++ b/tool/vcs.rb
@@ -91,14 +91,20 @@ else
end
using DebugPOpen
module DebugSystem
- def system(*args, **opts)
- STDERR.puts [*args, **opts].inspect if $DEBUG
+ def system(*args)
+ STDERR.puts args.inspect if $DEBUG
+ exception = false
+ opts = Hash.try_convert(args[-1])
if RUBY_VERSION >= "2.6"
+ unless opts
+ opts = {}
+ args << opts
+ end
exception = opts.fetch(:exception) {opts[:exception] = true}
- else
+ elsif opts
exception = opts.delete(:exception) {true}
end
- ret = super(*args, **opts)
+ ret = super(*args)
raise "Command failed with status (#$?): #{args[0]}" if exception and !ret
ret
end