--- a/bin/pvl.hosts-reverse Thu Feb 26 19:07:30 2015 +0200
+++ b/bin/pvl.hosts-reverse Thu Feb 26 19:15:00 2015 +0200
@@ -2,6 +2,7 @@
import logging; log = logging.getLogger('pvl.hosts-reverse')
import optparse
+import os.path
import pvl.args
import pvl.hosts
import pvl.hosts.zone
@@ -15,19 +16,40 @@
parser.add_option_group(pvl.args.parser(parser))
parser.add_option_group(pvl.hosts.config.optparser(parser))
- parser.add_option('--reverse-zone', metavar='PREFIX',
- help="Generate reverse zone for prefix")
+ parser.add_option('--zone-prefix', metavar='PREFIX',
+ help="Generated records for given prefix's reverse zone origin")
parser.add_option('--unknown-host', metavar='NAME',
help="Generate records for unused IPs")
# input
options, args = pvl.args.parse(parser, argv)
+
+ if options.zone_prefix:
+ try:
+ prefix = pvl.dns.parse_prefix(options.zone_prefix)
+ except ValueError as error:
+ log.error("invalid reverse --zone-prefix=%s: %s", options.zone_prefix, error)
+ return 1
+ else:
+ log.info("using given reverse --zone-prefix: %s", prefix)
+
+ elif len(args) == 1:
+ path, = args
+ zone_prefix = os.path.basename(path.rstrip('/'))
- if not options.reverse_zone:
- log.fatal("required --reverse-zone")
+ try:
+ prefix = pvl.dns.parse_prefix(zone_prefix)
+ except ValueError as error:
+ log.error("invalid hosts path %s for reverse --zone-prefix: %s", zone_prefix, error)
+ return 1
+ else:
+ log.info("using given hosts path %s for reverse --zone-prefix: %s", zone_prefix, prefix)
+
+ else:
+ log.fatal("--zone-prefix is required if passing multiple hosts files")
return 1
-
+
if options.unknown_host and not options.hosts_domain:
log.fatal("--unknown-host requires --hosts-domain=")
return 1
@@ -35,8 +57,6 @@
hosts = pvl.hosts.apply(options, args)
# process
- prefix = pvl.dns.parse_prefix(options.reverse_zone)
-
try:
for rr in pvl.hosts.zone.apply_hosts_reverse(hosts, prefix,
unknown_host = options.unknown_host,
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/zones/reverse/192.0.2/asdf.test Thu Feb 26 19:15:00 2015 +0200
@@ -0,0 +1,1 @@
+../../../hosts/test/asdf.test
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/zones/reverse/192.0.2/test Thu Feb 26 19:15:00 2015 +0200
@@ -0,0 +1,1 @@
+../../../hosts/test/test
\ No newline at end of file