aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMax Howell2010-01-13 09:00:51 +0000
committerMax Howell2010-01-13 11:23:15 +0000
commit338b4f44ee86e922066cfc0e8369a1a0348ee582 (patch)
tree99e1563281431fe44d8aff76bc6af5b8f2fe9fb5 /Library
parent4f111dfd9a16c99b159a14ccd6904e237e9833d8 (diff)
downloadhomebrew-338b4f44ee86e922066cfc0e8369a1a0348ee582.tar.bz2
Add quiet_system
Same as Kernel.system, but prints no output.
Diffstat (limited to 'Library')
-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