docs: def run(*args, **kwargs):
      """Execute a command.
  
      Command can be passed as several arguments, each being a string
      or a list of strings; lists are flattened.
      If opts.verbose is True, output of the command is shown.
      If the command exits with non-zero, print an error message and exit.
      If keyward argument get_output is True, output is returned.
      Additionally, non-zero exit code with empty output is ignored.
      """
  
      capture = kwargs.get("get_output", False)
      args = [arg for arglist in args for arg in (arglist if isinstance(arglist, list) else [arglist])]
  
      if opts.verbose:
          print("Running {}".format(" ".join(args)))
  
      live_output = opts.verbose and not capture
      runner = subprocess.check_call if live_output else subprocess.check_output
  
      try:
          output = runner(args, stderr=subprocess.STDOUT)
      except subprocess.CalledProcessError as exception:
          if capture and not exception.output.strip():
              # Ignore errors if output is empty.
              return ""
  
          if not live_output:
              sys.stdout.write(exception.output.decode(default_encoding, "ignore"))
  
          sys.exit("Error: got exitcode {} from command {}".format(
              exception.returncode, " ".join(args)))
      except OSError:
          sys.exit("Error: couldn't run {}: is {} in PATH?".format(" ".join(args), args[0]))
  
      if opts.verbose and capture:
          sys.stdout.write(output.decode(default_encoding, "ignore"))
  
      return capture and output.decode(default_encoding, "ignore").strip()