Make argeo-node zip an artifact
[lgpl/argeo-commons.git] / dist / argeo-node / rpm / usr / sbin / nodectl
index 26fe3eeafda7e3513894140ed12efbafa83cdddb..e0703f0d121401538544e74af4652a6848a190d2 100755 (executable)
@@ -5,16 +5,14 @@ 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
 DATA_DIR=$EXEC_DIR/data
 CONF_RW=$EXEC_DIR/state
-LOG_DIR=/var/log/$APP
-LOG_FILE=$LOG_DIR/$APP.log
-
-RUN_DIR=/var/run/$APP
-PID_FILE=$RUN_DIR/$APP.pid
-#SHUTDOWN_FILE=$RUN_DIR/$APP.shutdown
+CONFIG_INI=$CONF_RW/config.ini
 
 OSGI_INSTALL_AREA=/usr/share/osgi/boot
 OSGI_FRAMEWORK=$OSGI_INSTALL_AREA/org.eclipse.osgi.jar
@@ -27,29 +25,22 @@ fi
 RETVAL=0
 
 start() {
-       if [ -f $PID_FILE ];then
-               PID=`cat $PID_FILE`
-               kill -0 $PID &> /dev/null
-               PID_EXISTS=$?
-               if [ $PID_EXISTS -eq 0 ]; then
-                       echo $APP already running with pid $PID
-                       RETVAL=1
-                       return $RETVAL
-               else
-                       echo Old $APP process with pid $PID is dead, removing $PID_FILE
-                       rm -f $PID_FILE
-               fi
-       fi
+       mkdir -p $CONF_RW
+       mkdir -p $DATA_DIR
+
+    # Merge config files
+    printf "## Equinox configuration - Generated by /usr/sbin/nodectl ##\n\n" > $CONFIG_INI
+    cat $BASE_CONFIG_INI >> $CONFIG_INI
+    printf "\n##\n## $CONF_DIR/$APP.ini\n##\n\n" >> $CONFIG_INI
+    cat $CONF_DIR/$APP.ini >> $CONFIG_INI
+    for file in `ls -v $CONF_DIRS/*.ini`; do
+            printf "\n##\n## $file\n##\n\n" >> $CONFIG_INI
+            cat $file >> $CONFIG_INI
+    done;
 
-#      if [ ! -f $CONF_RW/config.ini ]; then
-               cp --preserve $CONF_DIR/config.ini $CONF_RW/config.ini
-#      fi
-#      touch $SHUTDOWN_FILE
        cd $EXEC_DIR
        $JVM \
                -Dlog4j.configuration="file:$CONF_DIR/log4j.properties" \
-               -Djava.security.manager= \
-               -Djava.security.policy="file:$CONF_DIR/node.policy" \
                $JAVA_OPTS -jar $OSGI_FRAMEWORK \
                -configuration "$CONF_RW" \
                -data "$DATA_DIR"
@@ -77,7 +68,8 @@ stop() {
        fi
        
        # notifies application by removing the shutdown file
-       rm -f $SHUTDOWN_FILE
+#      rm -f $SHUTDOWN_FILE
+       kill $PID
        
        # wait 10 min for application to shutdown, then kill it
        TIMEOUT=$((10*60))
@@ -97,21 +89,6 @@ stop() {
        # remove pid file
        rm -f $PID_FILE
        return $RETVAL
-
-# timeout is only available in EL6
-#      timeout 5m sh << EOF
-#while kill -0 $PID &> /dev/null; do sleep 1; done
-#EOF
-#      TIMEOUT_EXIT=$?
-#      if [ $TIMEOUT_EXIT -eq 124 ];then
-#              kill -9 $PID
-#              RETVAL=1
-#              echo Killed $APP with pid $PID
-#      else
-#              echo Stopped $APP with pid $PID
-#      fi
-#      rm -f $PID_FILE
-#      return $RETVAL
 }
 
 status() {