]> git.ipfire.org Git - oddments/collecty.git/commitdiff
Automatically guess image format when generating graphs
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 24 Nov 2015 02:02:50 +0000 (02:02 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 24 Nov 2015 02:02:50 +0000 (02:02 +0000)
This allows us to omit the --format parameter.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/collecty/client.py
src/collecty/constants.py

index be898bb47cf97bcf0054078cdb0fc4010deea687..2daa6d0fe3bfbe1a9a2cf401a99dc77374915ab4 100644 (file)
@@ -84,7 +84,7 @@ class CollectyClient(object):
 
        def generate_graph_cli(self, ns):
                kwargs = {
-                       "format"    : ns.format,
+                       "format"    : ns.format or self._guess_format(ns.filename),
                        "object_id" : ns.object,
                }
 
@@ -117,6 +117,22 @@ class CollectyClient(object):
                print(_("Title      : %(title)s (%(template)s - %(object_id)s)") % graph)
                print(_("Image size : %(image_width)sx%(image_height)spx") % graph)
 
+       def _guess_format(self, filename):
+               parts = filename.split(".")
+
+               if parts:
+                       # The extension is the last part
+                       extension = parts[-1]
+
+                       # Image formats are all uppercase
+                       extension = extension.upper()
+
+                       if extension in SUPPORTED_IMAGE_FORMATS:
+                               return extension
+
+               # Otherwise fall back to the default format
+               return DEFAULT_IMAGE_FORMAT
+
        def version_cli(self, args):
                daemon_version = self.proxy.Version()
 
@@ -136,8 +152,7 @@ class CollectyClient(object):
                parser_generate_graph.set_defaults(func=self.generate_graph_cli)
                parser_generate_graph.add_argument("--filename",
                        help=_("filename"), required=True)
-               parser_generate_graph.add_argument("--format",
-                       help=_("image format"), default=DEFAULT_IMAGE_FORMAT)
+               parser_generate_graph.add_argument("--format", help=_("image format"))
                parser_generate_graph.add_argument("--interval", help=_("interval"))
                parser_generate_graph.add_argument("--object",
                        help=_("Object identifier"), default="default")
index f5e46176567696c4bfac565eb97f39475fdfd668..34e6b667003d9511c78545c1ad740e5efa76c502 100644 (file)
@@ -31,6 +31,8 @@ DEFAULT_IMAGE_FORMAT = "SVG"
 DEFAULT_LOCALE = "en_GB.utf8"
 DEFAULT_TIMEZONE = "UTC"
 
+SUPPORTED_IMAGE_FORMATS = ("SVG", "PNG", "PDF")
+
 GRAPH_DEFAULT_ARGUMENTS = (
        # Change the background colour
        "--color", "BACK#FFFFFF",