X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=quickrun.py;h=4bd580285a2631b083a00de83aa887e99b1b69a5;hp=8eb64a61725b5e96219708ad089cbe35248dcc57;hb=3ffc77559c269b85385350166f5392cab654c429;hpb=74c34364eab412dc5b4dca1ee955ab051b081ff3 diff --git a/quickrun.py b/quickrun.py index 8eb64a6..4bd5802 100755 --- a/quickrun.py +++ b/quickrun.py @@ -1,24 +1,10 @@ #!/usr/bin/python # -# Copyright (C) 2014 Simo Sorce -# -# see file 'COPYING' for use and warranty information -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# Copyright (C) 2014 Ipsilon project Contributors, for license see COPYING import argparse import os +import shutil import subprocess from string import Template @@ -31,6 +17,8 @@ def parse_args(): 'Run a test Ipsilon instance from the checkout directory') parser.add_argument('--workdir', default=os.path.join(os.getcwd(), 'qrun'), help="Directory in which db/session files are stored") + parser.add_argument('--cleanup', '-c', action='store_true', default=False, + help="Wipe workdir before starting") return vars(parser.parse_args()) @@ -38,7 +26,7 @@ CONF_TEMPLATE="templates/install/ipsilon.conf" ADMIN_TEMPLATE=''' CREATE TABLE login_config (name TEXT,option TEXT,value TEXT); -INSERT INTO login_config VALUES('global', 'order', 'testauth'); +INSERT INTO login_config VALUES('global', 'enabled', 'testauth'); ''' USERS_TEMPLATE=''' @@ -62,6 +50,9 @@ def config(workdir): f.write(USERS_TEMPLATE) subprocess.call(['sqlite3', '-init', sql, users_db, '.quit']) + trans_db = os.path.join(workdir, 'transactions.sqlite') + cachedir = os.path.join(workdir, 'cache') + with open(CONF_TEMPLATE) as f: conf_template = f.read() t = Template(conf_template) @@ -69,7 +60,16 @@ def config(workdir): 'instance': 'idp', 'staticdir': os.getcwd(), 'datadir': workdir, - 'secure': 'False'}) + 'cachedir': cachedir, + 'admindb': admin_db, + 'usersdb': users_db, + 'transdb': trans_db, + 'sesstype': 'file', + 'sessopt': 'path', + 'sessval': os.path.join(workdir, 'sessions'), + 'secure': 'False', + 'cleanup_interval': 1, + }) conf = os.path.join(workdir, 'ipsilon.conf') with open(conf, 'w+') as f: f.write(text) @@ -81,12 +81,32 @@ if __name__ == '__main__': penv = dict() penv.update(os.environ) - penv['PYTHONPATH'] = './' + penv['PYTHONPATH'] = os.getcwd() + + schema_init = os.path.join(os.getcwd(), 'ipsilon/install/ipsilon-upgrade-database') + exe = os.path.join(os.getcwd(), 'ipsilon/ipsilon') + + if args['cleanup']: + shutil.rmtree(args['workdir']) if not os.path.exists(args['workdir']): conf = config(args['workdir']) else: conf = os.path.join(args['workdir'], 'ipsilon.conf') - p = subprocess.Popen(['./ipsilon/ipsilon', conf], env=penv) + if not os.path.exists(os.path.join(args['workdir'], 'ui')): + os.symlink(os.path.join(os.getcwd(), 'ui'), + os.path.join(args['workdir'], 'ui')) + + if not os.path.exists(os.path.join(args['workdir'], 'cache')): + # This is only used in quickrun. Apache serves this directly + os.makedirs(os.path.join(args['workdir'], 'cache')) + + os.chdir(args['workdir']) + + p = subprocess.Popen([schema_init, conf], env=penv) p.wait() + + if p.returncode == 0: + p = subprocess.Popen([exe, conf], env=penv) + p.wait()