You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.4 KiB
Plaintext
83 lines
2.4 KiB
Plaintext
#!/usr/bin/env seiscomp-python
|
|
# -*- coding: utf-8 -*-
|
|
############################################################################
|
|
# Copyright (C) GFZ Potsdam #
|
|
# All rights reserved. #
|
|
# #
|
|
# GNU Affero General Public License Usage #
|
|
# This file may be used under the terms of the GNU Affero #
|
|
# Public License version 3.0 as published by the Free Software Foundation #
|
|
# and appearing in the file LICENSE included in the packaging of this #
|
|
# file. Please review the following information to ensure the GNU Affero #
|
|
# Public License version 3.0 requirements will be met: #
|
|
# https://www.gnu.org/licenses/agpl-3.0.html. #
|
|
############################################################################
|
|
|
|
import seiscomp.datamodel
|
|
import seiscomp.io
|
|
import getopt
|
|
import sys
|
|
|
|
|
|
usage = """arclink2inv [options] input=stdin output=stdout
|
|
|
|
Options:
|
|
-h [ --help ] Produce help message
|
|
-f [ --formatted ] Enable formatted XML output
|
|
"""
|
|
|
|
|
|
def main(argv):
|
|
imp = seiscomp.io.Importer.Create("arclink")
|
|
if imp is None:
|
|
sys.stderr.write("Arclink import not available\n")
|
|
return 1
|
|
|
|
formatted = False
|
|
|
|
# parse command line options
|
|
try:
|
|
opts, args = getopt.getopt(argv[1:], "hf", ["help", "formatted"])
|
|
except getopt.error as msg:
|
|
sys.stderr.write("%s\n" % msg)
|
|
sys.stderr.write("for help use --help\n")
|
|
return 1
|
|
|
|
for o, a in opts:
|
|
if o in ["-h", "--help"]:
|
|
sys.stderr.write("%s\n" % usage)
|
|
return 1
|
|
elif o in ["-f", "--formatted"]:
|
|
formatted = True
|
|
|
|
argv = args
|
|
|
|
if len(argv) > 0:
|
|
o = imp.read(argv[0])
|
|
else:
|
|
o = imp.read("-")
|
|
|
|
inv = seiscomp.datamodel.Inventory.Cast(o)
|
|
if inv is None:
|
|
sys.stderr.write("No inventory found\n")
|
|
return 1
|
|
|
|
ar = seiscomp.io.XMLArchive()
|
|
if len(argv) > 1:
|
|
res = ar.create(argv[1])
|
|
else:
|
|
res = ar.create("-")
|
|
|
|
if not res:
|
|
sys.stderr.write("Failed to open output\n")
|
|
return 1
|
|
|
|
ar.setFormattedOutput(formatted)
|
|
ar.writeObject(inv)
|
|
ar.close()
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main(sys.argv))
|