1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00
Files
github-octodns/octodns/cmds/sync.py
2022-09-15 14:10:21 -07:00

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