X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=quickrun.py;h=c565fcb521d130628faa0ed9c547e4de12890155;hp=8157f80a8cbc0eb500892d12a7baab34214df766;hb=a503aa9c2a30a74e709d1c88099befd50fb2eb16;hpb=d00990c389e98dc62a59020e4a79cfe657f88f89 diff --git a/quickrun.py b/quickrun.py index 8157f80..c565fcb 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,30 +17,16 @@ 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()) -CONF_TEMPLATE=''' -[global] -debug = True - -log.screen = True -base.mount = "/idp" -base.dir = "${BASEDIR}" -admin.config.db = "${ADMINDB}" -user.prefs.db = "${USERSDB}" - -tools.sessions.on = True -tools.sessions.storage_type = "file" -tools.sessions.storage_path = "${WORKDIR}/sessions" -tools.sessions.timeout = 60 -tools.sessions.secure = False -tools.sessions.httponly = False -''' +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=''' @@ -72,17 +44,29 @@ def config(workdir): f.write(ADMIN_TEMPLATE) subprocess.call(['sqlite3', '-init', sql, admin_db, '.quit']) - users_db = os.path.join(workdir, 'users.sqlite') + users_db = os.path.join(workdir, 'userprefs.sqlite') sql = os.path.join(workdir, 'users.sql') with open(sql, 'w+') as f: f.write(USERS_TEMPLATE) subprocess.call(['sqlite3', '-init', sql, users_db, '.quit']) - t = Template(CONF_TEMPLATE) - text = t.substitute({'BASEDIR': os.getcwd(), - 'WORKDIR': workdir, - 'ADMINDB': admin_db, - 'USERSDB': users_db}) + trans_db = os.path.join(workdir, 'transactions.sqlite') + + with open(CONF_TEMPLATE) as f: + conf_template = f.read() + t = Template(conf_template) + text = t.substitute({'debugging': 'True', + 'instance': 'idp', + 'staticdir': os.getcwd(), + 'datadir': workdir, + 'admindb': admin_db, + 'usersdb': users_db, + 'transdb': trans_db, + 'sesstype': 'file', + 'sessopt': 'path', + 'sessval': os.path.join(workdir, 'sessions'), + 'secure': 'False', + }) conf = os.path.join(workdir, 'ipsilon.conf') with open(conf, 'w+') as f: f.write(text) @@ -94,12 +78,24 @@ if __name__ == '__main__': penv = dict() penv.update(os.environ) - penv['PYTHONPATH'] = './' + penv['PYTHONPATH'] = os.getcwd() + + 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')) + + + os.chdir(args['workdir']) + + p = subprocess.Popen([exe, conf], env=penv) p.wait()