# File lib/thor/actions.rb, line 245
    def run(command, config = {})
      return unless behavior == :invoke

      destination = relative_to_original_destination_root(destination_root, false)
      desc = "#{command} from #{destination.inspect}"

      if config[:with]
        desc = "#{File.basename(config[:with].to_s)} #{desc}"
        command = "#{config[:with]} #{command}"
      end

      say_status :run, desc, config.fetch(:verbose, true)

      return if options[:pretend]

      result = config[:capture] ? `#{command}` : system(command.to_s)

      if config[:abort_on_failure]
        success = config[:capture] ? $?.success? : result
        abort unless success
      end

      result
    end