tests/test_opts.py
author Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
Tue, 19 Oct 2010 17:45:55 +0400
changeset 126 7a5c5746d4f0
parent 111 e40251bf5a23
child 123 4d73a8af4bbf
permissions -rw-r--r--
Explicit use of Python 2 for Arch Linux

#!/usr/bin/env python

import sys

from opster import command

opts = [('l', 'listen', 'localhost', 'ip to listen on'),
        ('p', 'port', 8000, 'port to listen on'),
        ('d', 'daemonize', False, 'daemonize process'),
        ('', 'pid-file', '', 'name of file to write process ID to')]

@command(opts, usage='[-l HOST] DIR')
def main(*dirs, **opts):
    '''This is some command

    It looks very similar to some serve command
    '''
    print locals()

@command(usage='[-l HOST] DIR')
def another(dirname,
            listen=('l', 'localhost', 'ip to listen on'),
            port=('p', 8000, 'port to listen on'),
            daemonize=('d', False, 'daemonize process'),
            pid_file=('', '', 'name of file to write process ID to'),
            test=('t', lambda x: x or 'test', 'testing help for a function')):
    '''Command with option declaration as keyword arguments

    Otherwise it's the same as previous command
    '''
    print locals()

if __name__ == '__main__':
    #main()
    another()