]> git.ipfire.org Git - location/libloc.git/blobdiff - src/python/location-query.in
importer: Drop EDROP as it has been merged into DROP
[location/libloc.git] / src / python / location-query.in
diff --git a/src/python/location-query.in b/src/python/location-query.in
deleted file mode 100644 (file)
index 933024e..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-#!/usr/bin/python3
-###############################################################################
-#                                                                             #
-# libloc - A library to determine the location of someone on the Internet     #
-#                                                                             #
-# Copyright (C) 2017 IPFire Development Team <info@ipfire.org>                #
-#                                                                             #
-# This library is free software; you can redistribute it and/or               #
-# modify it under the terms of the GNU Lesser General Public                  #
-# License as published by the Free Software Foundation; either                #
-# version 2.1 of the License, or (at your option) any later version.          #
-#                                                                             #
-# This library is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU           #
-# Lesser General Public License for more details.                             #
-#                                                                             #
-###############################################################################
-
-import argparse
-import gettext
-import sys
-import syslog
-
-# Load our location module
-import location
-
-# i18n
-def _(singular, plural=None, n=None):
-       if plural:
-               return gettext.dngettext("libloc", singular, plural, n)
-
-       return gettext.dgettext("libloc", singular)
-
-class CLI(object):
-       def __init__(self):
-               # Open database
-               self.db = location.Database("@databasedir@/database.db")
-
-       def parse_cli(self):
-               parser = argparse.ArgumentParser(
-                       description=_("Location Database Command Line Interface"),
-               )
-               subparsers = parser.add_subparsers()
-
-               # Global configuration flags
-               parser.add_argument("--debug", action="store_true",
-                       help=_("Enable debug output"))
-
-               # version
-               parser.add_argument("--version", action="version",
-                       version="%%(prog)s %s" % location.__version__)
-
-               # lookup an IP address
-               lookup = subparsers.add_parser("lookup",
-                       help=_("Lookup one or multiple IP addresses"),
-               )
-               lookup.add_argument("address", nargs="+")
-               lookup.set_defaults(func=self.handle_lookup)
-
-               # Get AS
-               get_as = subparsers.add_parser("get-as",
-                       help=_("Get information about one or multiple Autonomous Systems"),
-               )
-               get_as.add_argument("asn", nargs="+")
-               get_as.set_defaults(func=self.handle_get_as)
-
-               return parser.parse_args()
-
-       def run(self):
-               # Parse command line arguments
-               args = self.parse_cli()
-
-               # Callback function must be defined
-               assert args.func, "Callback function not defined"
-
-               # Call function
-               ret = args.func(args)
-
-               # Return with exit code
-               if ret:
-                       sys.exit(ret)
-
-               # Otherwise just exit
-               sys.exit(0)
-
-       def handle_lookup(self, ns):
-               ret = 0
-
-               for address in ns.address:
-                       try:
-                               n = self.db.lookup(address)
-                       except ValueError:
-                               sys.stderr.write(_("Invalid IP address: %s") % address)
-
-                       args = {
-                               "address" : address,
-                               "network" : n,
-                       }
-
-                       # Nothing found?
-                       if not n:
-                               print(_("Nothing found for %(address)s") % args)
-                               ret = 1
-                               continue
-
-                       # Try to retrieve the AS if we have an AS number
-                       if n.asn:
-                               a = self.db.get_as(n.asn)
-
-                               # If we have found an AS we will print it in the message
-                               if a:
-                                       args.update({
-                                               "as" : a,
-                                       })
-
-                                       print(_("%(address)s belongs to %(network)s which is a part of %(as)s") % args)
-                                       continue
-
-                       print(_("%(address)s belongs to %(network)s") % args)
-
-               return ret
-
-       def handle_get_as(self, ns):
-               """
-                       Gets information about Autonomous Systems
-               """
-               ret = 0
-
-               for asn in ns.asn:
-                       try:
-                               asn = int(asn)
-                       except ValueError:
-                               sys.stderr.write("Invalid ASN: %s" %asn)
-                               ret = 1
-                               continue
-
-                       # Fetch AS from database
-                       a = self.db.get_as(asn)
-
-                       # Nothing found
-                       if not a:
-                               print(_("Could not find AS%s") % asn)
-                               ret = 1
-                               continue
-
-                       print(_("AS%(asn)s belongs to %(name)s") % { "asn" : a.number, "name" : a.name })
-
-               return ret
-
-def main():
-       # Run the command line interface
-       c = CLI()
-       c.run()
-
-main()