From 90de6c85082d019941f37845091fa565f7274393 Mon Sep 17 00:00:00 2001 From: Oliver Lade Date: Mon, 3 Nov 2014 15:50:06 +1100 Subject: [PATCH] Fixed Java call not working. --- Dockerfile | 1 + api/handler.py | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8e4a397..ebb05f3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,7 @@ MAINTAINER Oliver Lade ENV H2_HOME /opt/h2 ENV H2_DATA /opt/h2-data +ENV H2_VERSION 1.4.182 ADD /api /api diff --git a/api/handler.py b/api/handler.py index e9a4540..aaf31fc 100644 --- a/api/handler.py +++ b/api/handler.py @@ -7,9 +7,10 @@ def query(self, sql): """ Executes the SQL query against the database and returns the results. """ - cmd = 'java -cp %s/bin/h2*.jar org.h2.tools.Shell -url jdbc:h2:%s ' \ - '-sql "%s"' % (os.environ['H2_HOME'], os.environ['H2_DATA'], sql) - return subprocess.call(cmd) + env = os.environ + cmd = 'java -cp %s/bin/h2-%s.jar org.h2.tools.Shell -url jdbc:h2:%s' % ( + env['H2_HOME'], env['H2_VERSION'], env['H2_DATA']) + return subprocess.check_output(cmd.split() + ['-sql', sql]) def city_language(self, city): """ @@ -21,4 +22,4 @@ def city_language(self, city): ORDER BY percentage DESC LIMIT 1;''' % city # No need to protect against SQL injection, since the DB is transient. result = self.query(sql) - return '%s (%s)' % result.splitlines()[1].split('\s+|\s+') \ No newline at end of file + return '%s (%s)' % result.splitlines()[1].split('\s+|\s+')