#!/usr/bin/env python ''' Octo-DNS Multiplexer ''' from octodns.cmds.args import ArgumentParser from octodns.manager import Manager def main(): parser = ArgumentParser(description=__doc__.split('\n')[1]) parser.add_argument( '--config-file', required=True, help='The Manager configuration file to use', ) parser.add_argument( '--doit', action='store_true', default=False, help='Whether to take action or just show what would change', ) parser.add_argument( '--force', action='store_true', default=False, help='Acknowledge that significant changes are being ' 'made and do them', ) parser.add_argument( 'zone', nargs='*', default=[], help='Limit sync to the specified zone(s)', ) parser.add_argument( '--source', default=[], action='append', help='Limit sync to zones with the specified ' 'source(s) (all sources will be synchronized for the ' 'selected zones)', ) parser.add_argument( '--target', default=[], action='append', help='Limit sync to the specified target(s)', ) args = parser.parse_args() manager = Manager(args.config_file) manager.sync( eligible_zones=args.zone, eligible_sources=args.source, eligible_targets=args.target, dry_run=not args.doit, force=args.force, ) if __name__ == '__main__': main()