diff --git a/octodns/cmds/compare.py b/octodns/cmds/compare.py index 4123643..9bf9f1c 100755 --- a/octodns/cmds/compare.py +++ b/octodns/cmds/compare.py @@ -7,6 +7,7 @@ from __future__ import absolute_import, division, print_function, \ unicode_literals from pprint import pprint +import sys from octodns.cmds.args import ArgumentParser from octodns.manager import Manager @@ -23,13 +24,25 @@ def main(): help='Second source(s) to pull data from') parser.add_argument('--zone', default=None, required=True, help='Zone to compare') - + parser.add_argument('--ignore-prefix', default=None, required=False, + help='Record prefix to ignore from list of changes') args = parser.parse_args() manager = Manager(args.config_file) changes = manager.compare(args.a, args.b, args.zone) + + # Filter changes list based on ignore-prefix argument if present + if args.ignore_prefix: + pattern = args.ignore_prefix + changes = [c for c in changes + if not c.record.fqdn.startswith(pattern)] + pprint(changes) + # Exit with non-zero exit code if changes exist + if len(changes): + sys.exit(1) + if __name__ == '__main__': main()