docs: def run_command(
      command,
      input_data=None,
      out_pipe=subprocess.PIPE,
      err_pipe=subprocess.PIPE,
      env=None,
      **kwargs
  ):
      """
      Runs a command non-interactively
  
      Args:
          command(list of str): args of the command to execute, including the
              command itself as command[0] as `['ls', '-l']`
          input_data(str): If passed, will feed that data to the subprocess
              through stdin
          out_pipe(int or file): File descriptor as passed to
              :ref:subprocess.Popen to use as stdout
          err_pipe(int or file): File descriptor as passed to
              :ref:subprocess.Popen to use as stderr
          env(dict of str:str): If set, will use the given dict as env for the
              subprocess
          **kwargs: Any other keyword args passed will be passed to the
              :ref:subprocess.Popen call
  
      Returns:
          lago.utils.CommandStatus: result of the interactive execution
      """
      if env is None:
          env = os.environ.copy()
  
      with LogTask(
          'Run command: %s' % ' '.join('"%s"' % arg for arg in command),
          logger=LOGGER,
          level='debug',
      ) as task:
          command_result = _run_command(
              command=command,
              input_data=input_data,
              out_pipe=out_pipe,
              err_pipe=err_pipe,
              env=env,
              uuid=task.uuid,
              **kwargs
          )
          return command_result