gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-backoffice] 03/31: bootstrap/wsgi/launcher


From: gnunet
Subject: [GNUnet-SVN] [taler-backoffice] 03/31: bootstrap/wsgi/launcher
Date: Thu, 04 Jan 2018 18:09:26 +0100

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository backoffice.

commit d759742368a811957380a5de1e9f56bf5d533402
Author: Marcello Stanisci <address@hidden>
AuthorDate: Fri Nov 24 17:30:58 2017 +0100

    bootstrap/wsgi/launcher
---
 bootstrap              | 12 ++++++++
 frontend-blog.wsgi.in  | 21 +++++++++++++
 taler-merchant-blog.in | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 115 insertions(+)

diff --git a/bootstrap b/bootstrap
new file mode 100755
index 0000000..373e5f5
--- /dev/null
+++ b/bootstrap
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+if ! git --version >/dev/null; then
+  echo "git not installed"
+  exit 1
+fi
+
+echo "$0: Updating submodules"
+echo | git submodule update --init
+
+echo "$0: Running autoreconf"
+autoreconf -if
diff --git a/frontend-blog.wsgi.in b/frontend-blog.wsgi.in
new file mode 100644
index 0000000..0640c99
--- /dev/null
+++ b/frontend-blog.wsgi.in
@@ -0,0 +1,21 @@
+import sys
+
+if sys.version_info.major < 3:
+    print("The taler bank needs to run with Python>=3.4")
+    sys.exit(1)
+
+import site
+import os
+import logging
+
+logging.basicConfig(level=logging.INFO)
+
+os.environ.setdefault("TALER_PREFIX", "@prefix@")
+site.addsitedir("%s/lib/python%d.%d/site-packages" % (
+    "@prefix@", 
+    sys.version_info.major,
+    sys.version_info.minor))
+
+import talerblog.blog
+
+application = talerblog.blog.app
diff --git a/taler-merchant-blog.in b/taler-merchant-blog.in
new file mode 100644
index 0000000..523b683
--- /dev/null
+++ b/taler-merchant-blog.in
@@ -0,0 +1,82 @@
+#!/usr/bin/env python3
+
+"""
+Stand-alone script to manage the GNU Taler blog frontend.
+"""
+
+import argparse
+import sys
+import os
+import site
+
+
+os.environ.setdefault("TALER_PREFIX", "@prefix@")
+site.addsitedir("%s/lib/python%d.%d/site-packages" % (
+    "@prefix@", 
+    sys.version_info.major,
+    sys.version_info.minor))
+
+from talerblog.talerconfig import TalerConfig
+import logging
+logger = logging.getLogger(__name__)
+
+# No perfect match to our logging format, but good enough ...
+uwsgi_logfmt = "%(ltime) %(proto) %(method) %(uri) %(proto) => %(status)"
+
+def handle_serve_http(args):
+    tc = TalerConfig.from_file(os.environ.get("TALER_CONFIG_FILE"))
+    port = args.port
+    if port is None:
+        port = tc["blog"]["http_port"].value_int(required=True)
+    spec = ":%d" % (port,)
+    os.execlp("uwsgi", "uwsgi",
+            "--master",
+            "--die-on-term",
+            "--log-format", uwsgi_logfmt,
+            "--http", spec,
+            "--wsgi-file", "@prefix@/share/taler/frontend-blog.wsgi")
+
+def handle_serve_uwsgi(args):
+    tc = TalerConfig.from_file(os.environ.get("TALER_CONFIG_FILE"))
+    serve_uwsgi = tc["blog"]["uwsgi_serve"].value_string(required=True).lower()
+    params = ["uwsgi", "uwsgi",
+        "--master",
+        "--die-on-term",
+        "--log-format", uwsgi_logfmt,
+        "--wsgi-file", "@prefix@/share/taler/frontend-blog.wsgi"]
+    if serve_uwsgi == "tcp":
+        port = tc["blog"]["uwsgi_port"].value_int(required=True)
+        spec = ":%d" % (port,)
+        params.extend(["--socket", spec])
+    elif serve_uwsgi == "unix":
+        spec = tc["blog"]["uwsgi_unixpath"].value_filename(required=True)
+        mode = tc["blog"]["uwsgi_unixpath_mode"].value_filename(required=True)
+        params.extend(["--socket", spec])
+        params.extend(["--chmod-socket="+mode])
+        os.makedirs(os.path.dirname(spec), exist_ok=True)
+    logging.info("launching uwsgi with argv %s", params[1:])
+    os.execlp(*params)
+
+
+
+parser = argparse.ArgumentParser()
+parser.set_defaults(func=None)
+parser.add_argument('--config', '-c', help="configuration file to use", 
metavar="CONFIG", type=str, dest="config", default=None)
+sub = parser.add_subparsers()
+
+p = sub.add_parser('serve-http', help="Serve over HTTP")
+p.add_argument("--port", "-p", dest="port", type=int, default=None, 
metavar="PORT")
+p.set_defaults(func=handle_serve_http)
+
+p = sub.add_parser('serve-uwsgi', help="Serve over UWSGI")
+p.set_defaults(func=handle_serve_uwsgi)
+
+args = parser.parse_args()
+if getattr(args, 'func', None) is None:
+    parser.print_help()
+    sys.exit(1)
+
+if args.config is not None:
+    os.environ["TALER_CONFIG_FILE"] = args.config
+
+args.func(args)

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]