]> git.ipfire.org Git - ddns.git/commitdiff
ddns: Add argument to list all providers in command line.
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 10 Jun 2014 23:22:43 +0000 (01:22 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 10 Jun 2014 23:22:43 +0000 (01:22 +0200)
ddns.in
src/ddns/__init__.py

diff --git a/ddns.in b/ddns.in
index 455b0ad02169797530f969496a92986aae9897d2..726eac34623927c4249f1b1d50c2a14513ce8e0e 100644 (file)
--- a/ddns.in
+++ b/ddns.in
@@ -41,6 +41,10 @@ def main():
        subparsers = p.add_subparsers(help=_("Sub-command help"),
                dest="subparsers_name")
 
+       # list-providers
+       p_list_providers = subparsers.add_parser("list-providers",
+               help=_("List all available providers"))
+
        # update
        p_update = subparsers.add_parser("update", help=_("Update DNS record"))
        p_update.add_argument("hostname")
@@ -62,7 +66,11 @@ def main():
                d.load_configuration(args.config)
 
        # Handle commands...
-       if args.subparsers_name == "update":
+       if args.subparsers_name == "list-providers":
+               provider_names = d.get_provider_names()
+               print "\n".join(provider_names)
+
+       elif args.subparsers_name == "update":
                d.updateone(hostname=args.hostname, force=args.force)
 
        elif args.subparsers_name == "update-all":
index 74be346ed7628ef77d042cc3aa27e471446667c7..ff3d3cc3d660d0fb0ffebdbb3121eec51f9e462d 100644 (file)
@@ -94,6 +94,12 @@ class DDNSCore(object):
                ):
                        self.register_provider(provider)
 
+       def get_provider_names(self):
+               """
+                       Returns a list of names of all registered providers.
+               """
+               return sorted(self.providers.keys())
+
        def load_configuration(self, filename):
                configs = ConfigParser.SafeConfigParser()
                configs.read([filename,])