diff castclient.py @ 7:c04edbd52967

Allow castclient to do template variable substition via a json file
author Björn Ricks <bjoern.ricks@intevation.de>
date Fri, 26 Sep 2014 15:36:58 +0200
parents 4a34f72f036b
children aee742cdd604
line wrap: on
line diff
--- a/castclient.py	Fri Sep 26 15:36:30 2014 +0200
+++ b/castclient.py	Fri Sep 26 15:36:58 2014 +0200
@@ -6,8 +6,6 @@
 
 import requests
 
-url = "http://127.0.0.1:5000/convert/"
-
 
 def main():
     usage = "usage: %prog [options] infile outfile"
@@ -15,13 +13,19 @@
     parser.add_option("-f", "--format", default="pdf")
     parser.add_option("-s", "--host", default="localhost")
     parser.add_option("-p", "--port", default="5000")
+    parser.add_option("--json", dest="json", metavar="FILE")
     (options, args) = parser.parse_args()
 
     if len(args) < 2:
         parser.print_usage()
         sys.exit(1)
 
-    url = "http://%s:%s/convert/" % (options.host, options.port)
+    if options.json:
+        service = "template"
+    else:
+        service = "convert"
+
+    url = "http://%s:%s/%s/" % (options.host, options.port, service)
     infilename = args[0]
     outfilename = args[1]
     format = options.format
@@ -29,6 +33,10 @@
     files = {'file': open(infilename, 'rb')}
     data = {'format': format}
 
+    if options.json:
+        with open(options.json, "r") as f:
+            data["datadict"] = f.read()
+
     r = requests.post(url, data=data, files=files)
 
     if r.status_code == 200:
@@ -38,6 +46,7 @@
     else:
         print "An error has occured"
         print r.status_code, r.headers
+        print r.text
         sys.exit(2)
 
 
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)