mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
68 lines
1.5 KiB
Python
Executable File
68 lines
1.5 KiB
Python
Executable File
#!/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()
|