예제 #1
0
def ParseCmdVal(spec_name, cmd_val):
    # type: (str, cmd_value__Argv) -> Tuple[args._Attributes, args.Reader]
    arg_r = args.Reader(cmd_val.argv, spids=cmd_val.arg_spids)
    arg_r.Next()  # move past the builtin name

    spec = FLAG_SPEC[spec_name]
    return args.Parse(spec, arg_r), arg_r
예제 #2
0
def main(argv):
  arg_r = args.Reader(argv)
  arg_r.Next()  # skip argv[0]
  arg = args.Parse(SPEC, arg_r)

  if not arg.f:
    stderr_line("readlink: -f must be passed")
    return 1
  for path in arg_r.Rest():
    res = libc.realpath(path)
    if res is None:
      return 1
    print(res)
  return 0
예제 #3
0
def Parse(spec_name, arg_r):
    # type: (str, args.Reader) -> args._Attributes
    """Parse argv using a given FlagSpec."""
    spec = FLAG_SPEC[spec_name]
    return args.Parse(spec, arg_r)
예제 #4
0
 def Parse(self, arg_r):
     # type: (args.Reader) -> args._Attributes
     """For builtins to read args after we parse flags."""
     return args.Parse(self, arg_r)