Mercurial > odfcast
view mergeclient.py @ 69:dcf870775c26
Add compability with flask 0.8
In flask version 0.10 (current stable version) the behaviour changed. With this
version it is possible to specify the server and port via the config variable
SERVER_NAME. To allow this behaviour also with flask 0.8 which is the version
shipped with Debian Wheezy this commit extracts the host and port from the
SERVER_NAME config variable.
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Mon, 05 Jan 2015 12:37:56 +0100 |
parents | 4645e50539ff |
children | 349d49bb69f4 |
line wrap: on
line source
#!/usr/bin/env python # -*- coding: utf-8 -*- import optparse import sys import requests def main(): usage = "usage: %prog [options] file1 file2 [ file3, ...]" parser = optparse.OptionParser(usage=usage) parser.add_option("-s", "--host", default="localhost") parser.add_option("-p", "--port", default="5000") parser.add_option("-o", "--out", default="merged.pdf", dest="out") parser.add_option("-i", "--ignore-file-errors", action="store_true", default=False, dest="ignorefileerrors") parser.add_option("-m", "--multi", action="store_true", default=False, dest="multi") (options, args) = parser.parse_args() if len(args) < 2: parser.print_usage() sys.exit(1) service = "merge" url = "http://%s:%s/%s/" % (options.host, options.port, service) if options.ignorefileerrors: url += "?ignore_file_errors=1" files = [] if options.multi: for i, filename in enumerate(args): files.append(("file%s" % i, open(filename, 'rb'))) else: for filename in args: files.append(('files', open(filename, 'rb'))) r = requests.post(url, files=files) if r.status_code == 200: with open(options.out, "wb") as f: f.write(r.content) print "OK" else: print "An error has occured" print r.status_code, r.headers print r.text sys.exit(2) if __name__ == "__main__": main()