712: def sh(*cmd, &block)
713: options = (Hash === cmd.last) ? cmd.pop : {}
714: unless block_given?
715: show_command = cmd.join(" ")
716: show_command = show_command[0,42] + "..."
717:
718: block = lambda { |ok, status|
719: ok or fail "Command failed with status (#{status.exitstatus}): [#{show_command}]"
720: }
721: end
722: rake_check_options options, :noop, :verbose
723: rake_output_message cmd.join(" ") if options[:verbose]
724: unless options[:noop]
725: res = system(*cmd)
726: block.call(res, $?)
727: end
728: end