code: def format_command(cmd, shell=False):
      
  
      def _split_cmd():
          line = None
          for part in cmd.split(' '):
              line = part if line is None else '{0} {1}'.format(line, part)
              if part[-1] != '\\':
                  yield line
                  line = None
          if line is not None:
              yield line
  
      if cmd in ([], ''):
          return '[]'
      if shell:
          if isinstance(cmd, (list, tuple)):
              return ' '.join(cmd)
          elif isinstance(cmd, six.string_types):
              return cmd
      else:
          if isinstance(cmd, (list, tuple)):
              return json.dumps(map(six.text_type, cmd))
          elif isinstance(cmd, six.string_types):
              return json.dumps(list(_split_cmd()))
      raise ValueError("Invalid type of command string or sequence: {0}".format(cmd))
docs: Converts a command line to the notation as used in a Dockerfile ``CMD`` and ``ENTRYPOINT`` command. In shell
      notation, this returns a simple string, whereas by default it returns a JSON-list format with the command and
      arguments.
  
      :param cmd: Command line as a string or tuple.
      :type cmd: unicode | str | tuple | list
      :param shell: Use the notation so that Docker runs the command in a shell. Default is ``False``.
      :type shell: bool
      :return: The command string.
      :rtype: unicode | str