Blame src/centpkg/cli.py

85a850
'''
85a850
    Command line behavior for centpkg
85a850
'''
85a850
#
85a850
# Author(s):
85a850
#            Jesse Keating <jkeating@redhat.com>
85a850
#            Pat Riehecky <riehecky@fnal.gov>
85a850
#            Brian Stinson <bstinson@ksu.edu>
85a850
#
85a850
# This program is free software; you can redistribute it and/or modify it
85a850
# under the terms of the GNU General Public License as published by the
85a850
# Free Software Foundation; either version 2 of the License, or (at your
85a850
# option) any later version.  See http://www.gnu.org/copyleft/gpl.html for
85a850
# the full text of the license.
85a850
Brian Stinson aa8548
import sys
Brian Stinson aa8548
import os
Brian Stinson aa8548
import logging
Brian Stinson aa8548
Brian Stinson aa8548
from pyrpkg.cli import cliClient
Brian Stinson aa8548
Brian Stinson aa8548
class centpkgClient(cliClient):
85a850
    '''
85a850
        Where we import our custom stuff
85a850
    '''
Brian Stinson aa8548
    def __init__(self, config, name='centpkg'):
85a850
        '''init'''
Brian Stinson aa8548
        super(centpkgClient, self).__init__(config, name)
Brian Stinson aa8548
Brian Stinson aa8548
Brian Stinson aa8548
if __name__ == '__main__':
Brian Stinson aa8548
    client = centpkgClient()
Brian Stinson aa8548
    client.do_imports()
Brian Stinson aa8548
    client.parse_cmdline()
Brian Stinson aa8548
Brian Stinson aa8548
    if not client.args.path:
Brian Stinson aa8548
        try:
85a850
            client.args.path = os.getcwd()
85a850
        except OSError as err_msg:
Brian Stinson aa8548
            print('Could not get current path')
85a850
            print(err_msg)
Brian Stinson aa8548
            sys.exit(1)
Brian Stinson aa8548
Brian Stinson aa8548
    log = client.site.log
Brian Stinson aa8548
    client.setupLogging(log)
Brian Stinson aa8548
Brian Stinson aa8548
    if client.args.v:
Brian Stinson aa8548
        log.setLevel(logging.DEBUG)
Brian Stinson aa8548
    elif client.args.q:
Brian Stinson aa8548
        log.setLevel(logging.WARNING)
Brian Stinson aa8548
    else:
Brian Stinson aa8548
        log.setLevel(logging.INFO)
Brian Stinson aa8548
Brian Stinson aa8548
    # Run the necessary command
Brian Stinson aa8548
    try:
Brian Stinson aa8548
        client.args.command()
Brian Stinson aa8548
    except KeyboardInterrupt:
Brian Stinson aa8548
        pass