docs: def prepare_args(args, windows=None):
          """
          Prepare args - add support for old interface, e.g:
              - --recursive was "flag" and for now it support True or False value
          :param args:
          :return:
          """
          if windows is None:
              windows = "win" in sys.platform
  
          if isinstance(args, str):
              args = shlex.split(args, posix=not windows)
          elif isinstance(args, list):
              pass
          elif args is None:
              args = sys.argv[1:]
          else:
              raise Exception("Unknown args type: {}".format(type(args)))
  
          # --recursive => --recursive=True|False convert
          for position, argument in enumerate(args):
              # Normal way, skip change
              if argument.lower() in ('--recursive=true', '--recursive=false'):
                  return args
  
              elif argument.lower() == '--recursive':
                  if len(args) > position + 1 and args[position + 1].lower() in ["true", "false"]:
                      # --recursive true | false
                      return args
                  else:
                      # legacy way, convert --recursive to --recursive=true
                      args[position] = "--recursive=True"
                      return args
          return args