mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
44 lines
1.5 KiB
Python
Executable File
44 lines
1.5 KiB
Python
Executable File
#!/usr/bin/env python
|
|
'''
|
|
Octo-DNS Multiplexer
|
|
'''
|
|
|
|
from __future__ import absolute_import, division, print_function, \
|
|
unicode_literals
|
|
|
|
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)')
|
|
|
|
# --sources isn't an option here b/c filtering sources out would be super
|
|
# dangerous since you could eaily end up with an empty zone and delete
|
|
# everything, or even just part of things when there are multiple sources
|
|
|
|
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_targets=args.target,
|
|
dry_run=not args.doit, force=args.force)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|