systemd user space (systemctl --user) unit file
[lgpl/argeo-commons.git] / dist / argeo-node / rpm / usr / sbin / argeoctl
index ccadd8e9afd2f5d44fbb2bc9183654c2dcd5b3eb..67b08ebcd438fd2a0bee9e057789d6a5d93481c2 100755 (executable)
@@ -1,19 +1,50 @@
 #!/bin/sh
 APP=argeo
 
+if [ -z "$2" ]; then
+# Default node
+CONF_DIR=/etc/$APP
+EXEC_DIR=/var/lib/$APP
+else
+# Instance
+INSTANCE=$2
+       if [ -z "$STATE_DIRECTORY" ]; then
+       INSTANCE_DIR=$HOME/.local/share/$APP.d/$INSTANCE
+       else
+       # systemd StateDirectory=
+       INSTANCE_DIR=$STATE_DIRECTORY
+       fi
+       if [ -z "$CONFIGURATION_DIRECTORY" ]; then
+       CONF_DIR=$HOME/.config/$APP.d/$INSTANCE
+       else
+       # systemd ConfigurationDirectory=
+       CONF_DIR=$CONFIGURATION_DIRECTORY
+       fi
+       
+EXEC_DIR=$INSTANCE_DIR
+
+       if [ ! -f $CONF_DIR/$APP.ini ]; then
+       cp /etc/$APP/$APP.ini $CONF_DIR
+       fi
+       if [ ! -f $CONF_DIR/log4j.properties ]; then
+       cp /etc/$APP/log4j.properties $CONF_DIR
+       fi
+fi
+
 JVM=java
 
 # Directories and files
-CONF_DIR=/etc/$APP
-CONF_DIRS=/etc/$APP/conf.d
+
 BASE_POLICY_ALL=/usr/share/$APP/all.policy
 BASE_CONFIG_INI=/usr/share/$APP/config.ini
 
-EXEC_DIR=/var/lib/$APP
+CONF_DIRS=$CONF_DIR/conf.d
 DATA_DIR=$EXEC_DIR/data
 CONF_RW=$EXEC_DIR/state
 CONFIG_INI=$CONF_RW/config.ini
 
+# A2 sources can be overridden in *.ini files
+A2_SOURCES=a2:///
 OSGI_INSTALL_AREA=/usr/share/osgi/boot
 OSGI_FRAMEWORK=$OSGI_INSTALL_AREA/org.eclipse.osgi.jar
 
@@ -42,6 +73,7 @@ start() {
        $JVM \
                -Dlog4j.configuration="file:$CONF_DIR/log4j.properties" \
                $JAVA_OPTS -jar $OSGI_FRAMEWORK \
+               -Dargeo.osgi.sources=$A2_SOURCES \
                -configuration "$CONF_RW" \
                -data "$DATA_DIR"
 }