# File lib/rake.rb, line 892
892:   def sh(*cmd, &block)
893:     options = (Hash === cmd.last) ? cmd.pop : {}
894:     unless block_given?
895:       show_command = cmd.join(" ")
896:       show_command = show_command[0,42] + "..."
897:       # TODO code application logic heref show_command.length > 45
898:       block = lambda { |ok, status|
899:         ok or fail "Command failed with status (#{status.exitstatus}): [#{show_command}]"
900:       }
901:     end
902:     rake_check_options options, :noop, :verbose
903:     rake_output_message cmd.join(" ") if options[:verbose]
904:     unless options[:noop]
905:       res = system(*cmd)
906:       block.call(res, $?)
907:     end
908:   end