diff src/libervia.sh @ 449:981ed669d3b3

/!\ reorganize all the file hierarchy, move the code and launching script to src: - browser_side --> src/browser - public --> src/browser_side/public - libervia.py --> src/browser/libervia_main.py - libervia_server --> src/server - libervia_server/libervia.sh --> src/libervia.sh - twisted --> src/twisted - new module src/common - split constants.py in 3 files: - src/common/constants.py - src/browser/constants.py - src/server/constants.py - output --> html (generated by pyjsbuild during the installation) - new option/parameter "data_dir" (-d) to indicates the directory containing html and server_css - setup.py installs libervia to the following paths: - src/common --> <LIB>/libervia/common - src/server --> <LIB>/libervia/server - src/twisted --> <LIB>/twisted - html --> <SHARE>/libervia/html - server_side --> <SHARE>libervia/server_side - LIBERVIA_INSTALL environment variable takes 2 new options with prompt confirmation: - clean: remove previous installation directories - purge: remove building and previous installation directories You may need to update your sat.conf and/or launching script to update the following options/parameters: - ssl_certificate - data_dir
author souliane <souliane@mailoo.org>
date Tue, 20 May 2014 06:41:16 +0200
parents libervia_server/libervia.sh@d64b415c58ca
children 750db9ff8525
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/libervia.sh	Tue May 20 06:41:16 2014 +0200
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+DEBUG=""
+PYTHON="python2"
+
+kill_process() {
+    # $1 is the file containing the PID to kill, $2 is the process name
+    if [ -f $1 ]; then
+        PID=`cat $1`
+        if ps -p $PID > /dev/null; then
+            echo "Terminating $2... "
+            kill -INT $PID
+        else
+            echo "No running process of ID $PID... removing PID file"
+            rm -f $1
+        fi
+    else
+        echo "$2 is probably not running (PID file doesn't exist)"
+    fi
+}
+
+#We use python to parse config files
+eval `"$PYTHON" << PYTHONEND
+
+from sat.core.constants import Const as C
+from sat.memory.memory import fixLocalDir
+from ConfigParser import SafeConfigParser
+from os.path import expanduser, join
+import sys
+
+fixLocalDir()  # XXX: tmp update code, will be removed in the future
+
+config = SafeConfigParser(defaults=C.DEFAULT_CONFIG)
+try:
+    config.read(C.CONFIG_FILES)
+except:
+    print ("echo \"/!\\ Can't read main config ! Please check the syntax\";")
+    print ("exit 1")
+    sys.exit()
+
+env=[]
+env.append("PID_DIR='%s'" % join(expanduser(config.get('DEFAULT', 'pid_dir')),''))
+env.append("LOG_DIR='%s'" % join(expanduser(config.get('DEFAULT', 'log_dir')),''))
+print ";".join(env)
+PYTHONEND
+`
+APP_NAME="Libervia"  # FIXME: the import from Python needs libervia module to be in PYTHONPATH
+APP_NAME_FILE="libervia"
+PID_FILE="$PID_DIR$APP_NAME_FILE.pid"
+LOG_FILE="$LOG_DIR$APP_NAME_FILE.log"
+
+# if there is one argument which is "stop", then we kill Libervia
+if [ $# -eq 1 ];then
+    if [ $1 = "stop" ];then
+        kill_process $PID_FILE "$APP_NAME"
+        exit 0
+    fi
+    if [ $1 = "debug" ];then
+        echo "Launching $APP_NAME in debug mode"
+        DEBUG="--debug"
+    fi
+fi
+
+DAEMON="n"
+MAIN_OPTIONS="-${DAEMON}o"
+DATA_DIR=".."
+
+#Don't change the next line
+AUTO_OPTIONS=""
+ADDITIONAL_OPTIONS="--pidfile $PID_FILE --logfile $LOG_FILE $AUTO_OPTIONS $DEBUG"
+
+log_dir=`dirname "$LOG_FILE"`
+if [ ! -d $log_dir ] ; then
+    mkdir $log_dir
+fi
+
+echo "Starting $APP_NAME..."
+twistd $MAIN_OPTIONS $ADDITIONAL_OPTIONS $APP_NAME_FILE -d $DATA_DIR