Ejemplo n.º 1
0
    def testParseLikeEcho(self):
        s = args.BuiltinFlags()
        s.ShortFlag('-e')  # no backslash escapes
        s.ShortFlag('-n')

        arg, i = s.ParseLikeEcho(['-e', '-n', 'foo'])
        self.assertEqual(True, arg.e)
        self.assertEqual(True, arg.n)
        self.assertEqual(2, i)

        arg, i = s.ParseLikeEcho(['-en', 'foo'])
        self.assertEqual(True, arg.e)
        self.assertEqual(True, arg.n)
        self.assertEqual(1, i)

        arg, i = s.ParseLikeEcho(['-ez', 'foo'])
        self.assertEqual(None, arg.e)
        self.assertEqual(None, arg.n)
        self.assertEqual(0, i)
Ejemplo n.º 2
0
    def testBuiltinFlags(self):
        s = args.BuiltinFlags()
        s.ShortFlag('-f')
        s.ShortFlag('-n')
        s.ShortFlag('-d', args.Str)  # delimiter

        arg, i = s.Parse(['-f', 'foo', 'bar'])
        self.assertEqual(1, i)
        self.assertEqual(True, arg.f)
        self.assertEqual(None, arg.n)

        self.assertRaises(args.UsageError, s.Parse, ['-f', '-d'])

        arg, i = s.Parse(['-d', ' ', 'foo'])
        self.assertEqual(2, i)
        self.assertEqual(' ', arg.d)

        arg, i = s.Parse(['-d,', 'foo'])
        self.assertEqual(1, i)
        self.assertEqual(',', arg.d)
Ejemplo n.º 3
0
    def testReadBuiltinFlags(self):
        s = args.BuiltinFlags()
        s.ShortFlag('-r')  # no backslash escapes
        s.ShortFlag('-t', args.Float)  # timeout
        s.ShortFlag('-p', args.Str)  # prompt string

        arg, i = s.Parse(['-r', 'foo'])
        self.assertEqual(True, arg.r)
        self.assertEqual(1, i)

        arg, i = s.Parse(['-p', '>'])
        self.assertEqual(None, arg.r)
        self.assertEqual('>', arg.p)
        self.assertEqual(2, i)

        arg, i = s.Parse(['-rp', '>'])
        self.assertEqual(True, arg.r)
        self.assertEqual('>', arg.p)
        self.assertEqual(2, i)

        # REALLY ANNOYING: The first r is a flag, the second R is the prompt!  Only
        # works in that order
        # Does that mean anything with an arity consumes the rest?
        # read -p line
        #
        arg, i = s.Parse(['-rpr'])
        self.assertEqual(True, arg.r)
        self.assertEqual('r', arg.p)
        self.assertEqual(1, i)

        argv = ['-t1.5', '>']
        arg, i = s.Parse(argv)
        self.assertEqual(1.5, arg.t)
        self.assertEqual(1, i)

        # Invalid flag 'z'
        self.assertRaises(args.UsageError, s.Parse, ['-rz'])
Ejemplo n.º 4
0
 def Register(self, name, help_topic=None):
     help_topic = help_topic or name
     arg_spec = args.BuiltinFlags()
     self.arg_specs[name] = arg_spec
     return arg_spec
Ejemplo n.º 5
0
#!/usr/bin/python
from __future__ import print_function
"""
readlink.py - Minimal implementation of readlink -f, e.g. for OS X.
"""

import libc
from core import args, util

SPEC = args.BuiltinFlags()
SPEC.ShortFlag('-f')


def main(argv):
    arg, i = SPEC.Parse(argv)
    if not arg.f:
        util.error("-f must be passed")
        return 1
    for path in argv[i:]:
        res = libc.realpath(path)
        if res is None:
            return 1
        print(res)
    return 0