12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #!@PYTHON@
- # Copyright (C) 2010 Internet Systems Consortium.
- #
- # Permission to use, copy, modify, and distribute this software for any
- # purpose with or without fee is hereby granted, provided that the above
- # copyright notice and this permission notice appear in all copies.
- #
- # THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SYSTEMS CONSORTIUM
- # DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
- # INTERNET SYSTEMS CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
- # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
- # FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- import sys; sys.path.append ('@@PYTHONPATH@@')
- import re, getopt
- import isc.datasrc
- import isc.util.process
- from isc.datasrc.master import MasterFile
- import time
- import os
- isc.util.process.rename()
- #########################################################################
- # usage: print usage note and exit
- #########################################################################
- def usage():
- print("Usage: %s [-d <database>] [-o <origin>] <file>" % sys.argv[0], \
- file=sys.stderr)
- exit(1)
- #########################################################################
- # main
- #########################################################################
- def main():
- try:
- opts, args = getopt.getopt(sys.argv[1:], "d:o:h", \
- ["dbfile", "origin", "help"])
- except getopt.GetoptError as e:
- print(str(e))
- usage()
- exit(2)
- dbfile = '@@LOCALSTATEDIR@@/@PACKAGE@/zone.sqlite3'
- initial_origin = ''
- for o, a in opts:
- if o in ("-d", "--dbfile"):
- dbfile = a
- elif o in ("-o", "--origin"):
- if a[-1] != '.':
- a += '.'
- initial_origin = a
- elif o in ("-h", "--help"):
- usage()
- else:
- assert False, "unhandled option"
- if len(args) != 1:
- usage()
- zonefile = args[0]
- verbose = os.isatty(sys.stdout.fileno())
- try:
- master = MasterFile(zonefile, initial_origin, verbose)
- except Exception as e:
- sys.stderr.write("Error reading zone file: %s\n" % str(e))
- exit(1)
- try:
- zone = master.zonename()
- if verbose:
- sys.stdout.write("Using SQLite3 database file %s\n" % dbfile)
- sys.stdout.write("Zone name is %s\n" % zone)
- sys.stdout.write("Loading file \"%s\"\n" % zonefile)
- except Exception as e:
- sys.stdout.write("\n")
- sys.stderr.write("Error reading zone file: %s\n" % str(e))
- exit(1)
- try:
- isc.datasrc.sqlite3_ds.load(dbfile, zone, master.zonedata)
- if verbose:
- master.closeverbose()
- sys.stdout.write("\nDone.\n")
- except Exception as e:
- sys.stdout.write("\n")
- sys.stderr.write("Error loading database: %s\n"% str(e))
- exit(1)
- if __name__ == "__main__":
- main()
|