summaryrefslogtreecommitdiff
path: root/taler-bank-manage.in
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2016-04-14 00:31:37 +0200
committerFlorian Dold <florian.dold@gmail.com>2016-04-14 00:32:40 +0200
commiteec641b1cf23975af22bcab7d0475de257211289 (patch)
treee44db9806e6fa191dce617a4ade541808ffc299e /taler-bank-manage.in
parentc1096f16e33f9ba8a65ac2630d6444efcbe9f30e (diff)
downloadbank-eec641b1cf23975af22bcab7d0475de257211289.tar.gz
bank-eec641b1cf23975af22bcab7d0475de257211289.tar.bz2
bank-eec641b1cf23975af22bcab7d0475de257211289.zip
wsgi
Diffstat (limited to 'taler-bank-manage.in')
-rw-r--r--taler-bank-manage.in83
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)