# File lib/r10k/util/subprocess.rb, line 63
      def execute
        subprocess = self.class.runner.new(@argv)
        subprocess.cwd = @cwd if @cwd

        logmsg = "Starting process: #{@argv.inspect}"
        logmsg << "(cwd: #{@cwd})" if @cwd
        logger.debug2(logmsg)

        result = subprocess.run
        logger.debug2("Finished process:\n#{result.format}")

        if @raise_on_fail && result.failed?
          raise SubprocessError.new("Command exited with non-zero exit code", :result => result)
        end

        result
      end