|
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()
|