diff options
| author | Max Howell | 2010-01-13 09:00:51 +0000 |
|---|---|---|
| committer | Max Howell | 2010-01-13 11:23:15 +0000 |
| commit | 338b4f44ee86e922066cfc0e8369a1a0348ee582 (patch) | |
| tree | 99e1563281431fe44d8aff76bc6af5b8f2fe9fb5 /Library | |
| parent | 4f111dfd9a16c99b159a14ccd6904e237e9833d8 (diff) | |
| download | homebrew-338b4f44ee86e922066cfc0e8369a1a0348ee582.tar.bz2 | |
Add quiet_system
Same as Kernel.system, but prints no output.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/utils.rb | 31 |
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 |
