aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Howell2010-01-13 09:00:51 +0000
committerMax Howell2010-01-13 11:23:15 +0000
commitdf79d74e13b0a985da0c07f3f347c3a165fbe4fc (patch)
treeb910b9e456b590d270903061532513ae7534c222
parent0a27f041d03ff1196156eecc2ccfc9db05d1840c (diff)
downloadbrew-df79d74e13b0a985da0c07f3f347c3a165fbe4fc.tar.bz2
Add quiet_system
Same as Kernel.system, but prints no output.
-rw-r--r--Library/Homebrew/utils.rb31
1 files changed, 23 insertions, 8 deletions
diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb
index b0bdcf6e8..f8965d090 100644
--- a/Library/Homebrew/utils.rb
+++ b/Library/Homebrew/utils.rb
@@ -84,16 +84,31 @@ def interactive_shell
end
end
+module Homebrew
+ def self.system cmd, *args
+ puts "#{cmd} #{args*' '}" if ARGV.verbose?
+ fork do
+ yield if block_given?
+ args.collect!{|arg| arg.to_s}
+ exec(cmd, *args) rescue nil
+ exit! 1 # never gets here unless exec failed
+ end
+ Process.wait
+ $?.success?
+ end
+end
+
# Kernel.system but with exceptions
def safe_system cmd, *args
- puts "#{cmd} #{args*' '}" if ARGV.verbose?
- fork do
- args.collect!{|arg| arg.to_s}
- exec(cmd, *args) rescue nil
- exit! 1 # never gets here unless exec failed
+ raise ExecutionError.new(cmd, args, $?) unless Homebrew.system(cmd, *args)
+end
+
+# prints no output
+def quiet_system cmd, *args
+ Homebrew.system(cmd, *args) do
+ $stdout.close
+ $stderr.close
end
- Process.wait
- raise ExecutionError.new(cmd, args, $?) unless $?.success?
end
def curl *args
@@ -203,4 +218,4 @@ def nostdout
$stdout = real_stdout
end
end
-end \ No newline at end of file
+end