diff options
author | Florian Dold <florian.dold@gmail.com> | 2016-04-14 00:31:37 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2016-04-14 00:32:40 +0200 |
commit | eec641b1cf23975af22bcab7d0475de257211289 (patch) | |
tree | e44db9806e6fa191dce617a4ade541808ffc299e /taler-bank-manage.in | |
parent | c1096f16e33f9ba8a65ac2630d6444efcbe9f30e (diff) | |
download | bank-eec641b1cf23975af22bcab7d0475de257211289.tar.gz bank-eec641b1cf23975af22bcab7d0475de257211289.tar.bz2 bank-eec641b1cf23975af22bcab7d0475de257211289.zip |
wsgi
Diffstat (limited to 'taler-bank-manage.in')
-rw-r--r-- | taler-bank-manage.in | 83 |
1 files changed, 34 insertions, 49 deletions
diff --git a/taler-bank-manage.in b/taler-bank-manage.in index 5211c19..0b56509 100644 --- a/taler-bank-manage.in +++ b/taler-bank-manage.in @@ -8,18 +8,6 @@ the GNU Taler bank. import argparse import sys import os -import signal - -def signal_handler(signum, frame): - logger.info("process %s received signal, killing process group", os.getpid()) - os.killpg(os.getpgid(0), signal.SIGINT) - signal.signal(signal.SIGTERM, signal.SIG_DFL) - signal.signal(signal.SIGINT, signal.SIG_DFL) - os._exit(1) - -signal.signal(signal.SIGTERM, signal_handler) -signal.signal(signal.SIGINT, signal_handler) - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "talerbank.settings") @@ -35,53 +23,50 @@ except: "@prefix@", sys.version_info.major, sys.version_info.minor)) - load() + try: + load() + except e: + raise e from None -from django.core.management import call_command import logging logger = logging.getLogger(__name__) -parser = argparse.ArgumentParser() -group = parser.add_mutually_exclusive_group(required=True) -group.add_argument('--dumpdata', action='store_true', - help="Dump DB in JSON format") -group.add_argument('--flushdata', action='store_true', - help="Delete any data/tables from the DB") -group.add_argument('--sampledata', action='store_true', - help="Fill DB with sample data") -group.add_argument('--createdb', action='store_true', - help="Create the database for the bank") -group.add_argument('--bareserver', action='store', type=int, - metavar='PORT', default=None, - help="Create the database for the bank") - - -args = parser.parse_args() - -if args.bareserver is not None: - call_command('migrate') - call_command('provide_accounts') - os.setpgrp() - print("parent process is", os.getpid()) - call_command('runserver', str(args.bareserver), noreload=True, nothreading=True) - sys.exit(0) - -if args.flushdata: - call_command('flush') - sys.exit(0) -if args.dumpdata: - call_command('dumpdata', indent=3) - sys.exit(0) +def handle_django(args): + from django.core.management import execute_from_command_line + execute_from_command_line([sys.argv[0] + " django"] + args.command) -if args.createdb: +def handle_createdb(args): if os.system("psql @dbnamefinal@ < /dev/null") != 0: os.system("createdb @dbnamefinal@") else: print("Database already exists") - sys.exit(0) -if args.sampledata: +def handle_serve(args): + from django.core.management import call_command + call_command('basic_accounts') + os.execl("uwsgi", "uwsgi", + "--master", + "--die-on-term", + "--http", ":8001", + "--wsgi", "@prefix@/share/taler/bank.wsgi") + +def handle_sampledata(args): + from django.core.management import call_command call_command('sample_donations') - sys.exit(0) +parser = argparse.ArgumentParser() +sub = parser.add_subparsers() + +p = sub.add_parser('django', help="Run django-admin command") +p.add_argument("command", nargs=argparse.REMAINDER) +p.set_defaults(func=handle_django) + +p = sub.add_parser('createdb', help="Create posgres db") +p.set_defaults(func=handle_createdb) + +p = sub.add_parser('sampledata', help="Put sample data into the db") +p.set_defaults(func=handle_sampledata) + +args = parser.parse_args() +args.func(args) |