- usage = """%prog [options] --add [--cdrom] cdrom_id description mirror_id uri_suffix
- %prog [options] --add --mirror mirror_id uri_prefix
-
- %prog [options] --update [short_name1 [short_name2 ...]]
- %prog [options] --reap"""
-
- parser = optparse.OptionParser(usage=usage)
- parser.set_defaults(verbosity=0,
- item='cdrom')
-
- parser.add_option('-a', '--add', action='store_const',
- dest='action', const='add',
- help='Add a new item to the database')
-
- parser.add_option('-u', '--update', action='store_const',
- dest='action', const='update',
- help='Update all cdrom images in the database with the latest version')
- parser.add_option('-r', '--reap', action='store_const',
- dest='action', const='reap',
- help='Reap stale cdrom images that are no longer in use')
-
- a_group = optparse.OptionGroup(parser, 'Adding new items')
- a_group.add_option('-c', '--cdrom', action='store_const',
- dest='item', const='cdrom',
- help='Add a new cdrom to the database')
- a_group.add_option('-m', '--mirror', action='store_const',
- dest='item', const='mirror',
- help='Add a new mirror to the database')
- parser.add_option_group(a_group)
-
- v_group = optparse.OptionGroup(parser, "Verbosity levels")
- v_group.add_option("-q", "--quiet", action='store_const',
- dest='verbosity', const=0,
- help='Show no output from commands this script runs (default)')
- v_group.add_option("-v", "--verbose", action='store_const',
- dest='verbosity', const=1,
- help='Show only errors from commands this script runs')
- v_group.add_option("--noisy", action='store_const',
- dest='verbosity', const=2,
- help='Show all output from commands this script runs')
- parser.add_option_group(v_group)
-
- (options, args) = parser.parse_args()
- if options.action is None:
- print(parser.format_help())
- elif options.action == 'add':
- if options.item == 'cdrom':
- attrs = dict(list(zip(('cdrom_id', 'description', 'mirror_id', 'uri_suffix'),
- args)))
- cdrom = database.CDROM(**attrs)
- database.session.add(cdrom)
- database.session.commit()