Blame src/bin/centpkg

Brian Stinson 8ac9e7
#!/usr/bin/env python
Brian Stinson 8ac9e7
import pdb
Brian Stinson 8ac9e7
Brian Stinson 8ac9e7
import os
Brian Stinson 8ac9e7
import sys
Brian Stinson 8ac9e7
import logging
Brian Stinson 8ac9e7
import ConfigParser
Brian Stinson 8ac9e7
import argparse
Brian Stinson 8ac9e7
Brian Stinson 8ac9e7
import pyrpkg
Brian Stinson 8ac9e7
import centpkg
Brian Stinson 8ac9e7
Brian Stinson 8ac9e7
def main():
Brian Stinson 8ac9e7
    parser = argparse.ArgumentParser(add_help=False)
Brian Stinson 8ac9e7
    parser.add_argument('-C','--config', help='The rpkg config file to use',
Brian Stinson 8ac9e7
                        default='/etc/rpkg/centpkg.conf')
Brian Stinson 8ac9e7
Brian Stinson 8ac9e7
    (args, other) = parser.parse_known_args()
Brian Stinson 8ac9e7
Brian Stinson 8ac9e7
    # Make sure we have a sane config file
Brian Stinson 8ac9e7
    if not os.path.exists(args.config) and not other[-1] in ['--help', '-h']:
Brian Stinson 8ac9e7
        sys.stderr.write('Invalid config file %s\n' % args.config)
Brian Stinson 8ac9e7
        sys.exit(1)
Brian Stinson 8ac9e7
Brian Stinson 8ac9e7
    config = ConfigParser.SafeConfigParser()
Brian Stinson 8ac9e7
    config.read(args.config)
Brian Stinson 8ac9e7
Brian Stinson 8ac9e7
    client = centpkg.cli.centpkgClient(config)
Brian Stinson 8ac9e7
    client.do_imports(site='centpkg')
Brian Stinson 8ac9e7
    client.parse_cmdline()
Brian Stinson 8ac9e7
Brian Stinson 8ac9e7
    if not client.args.path:
Brian Stinson 8ac9e7
        try:
Brian Stinson 8ac9e7
            client.args.path=os.getcwd()
Brian Stinson 8ac9e7
        except:
Brian Stinson 8ac9e7
            print('Could not get current path')
Brian Stinson 8ac9e7
            sys.exit(1)
Brian Stinson 8ac9e7
Brian Stinson 8ac9e7
Brian Stinson 8ac9e7
    log = pyrpkg.log
Brian Stinson 8ac9e7
    client.setupLogging(log)
Brian Stinson 8ac9e7
Brian Stinson 8ac9e7
    if client.args.v:
Brian Stinson 8ac9e7
        log.setLevel(logging.DEBUG)
Brian Stinson 8ac9e7
    elif client.args.q:
Brian Stinson 8ac9e7
        log.setLevel(logging.WARNING)
Brian Stinson 8ac9e7
    else:
Brian Stinson 8ac9e7
        log.setLevel(logging.INFO)
Brian Stinson 8ac9e7
Brian Stinson 8ac9e7
    # Run the necessary command
Brian Stinson 8ac9e7
    try:
Brian Stinson 8ac9e7
        sys.exit(client.args.command())
Brian Stinson 8ac9e7
    except KeyboardInterrupt:
Brian Stinson 8ac9e7
        pass
Brian Stinson 8ac9e7
Brian Stinson 8ac9e7
if __name__ == '__main__':
Brian Stinson 8ac9e7
    main()