From 2f176e0c1ac22a902bbcfb5a34a0a6fe8c055201 Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Tue, 2 Sep 2014 18:53:52 +0200 Subject: [PATCH] Prettify combined Linux script --- gradle/daemon/syncanyd | 153 --------------- gradle/daemon/syncanyd.skel | 178 ++++++++++++++++++ gradle/gradle/application.distribution.gradle | 57 ++---- 3 files changed, 196 insertions(+), 192 deletions(-) delete mode 100755 gradle/daemon/syncanyd create mode 100755 gradle/daemon/syncanyd.skel diff --git a/gradle/daemon/syncanyd b/gradle/daemon/syncanyd deleted file mode 100755 index c69c2fd61..000000000 --- a/gradle/daemon/syncanyd +++ /dev/null @@ -1,153 +0,0 @@ -NAME=syncanyd -APPDIR=~/.config/syncany -CONTROLFILE=$APPDIR/daemon.ctrl -PIDFILE=$APPDIR/daemon.pid -LOGDIR=$APPDIR/logs -LOGFILE=$LOGDIR/daemon.log - -get_pid() { - if [ -e $PIDFILE ]; then - echo $(cat $PIDFILE) - else - echo -1 - fi -} - -get_realpath() { - [ ! -f "$1" ] && return 1 # failure : file does not exist. - [ -n "$no_symlinks" ] && local pwdp='pwd -P' || local pwdp='pwd' # do symlinks. - echo "$( cd "$( echo "${1%/*}" )" 2>/dev/null; $pwdp )"/"${1##*/}" # echo result. - return 0 # success -} - -process_running() { - ID=$(get_pid) - if [ $ID -eq -1 ]; then - echo 0 - elif [ -n $(ps -p$ID -opid=) ]; then - echo 1 - else - echo 0 - fi -} - -DAEMON=$(dirname $(get_realpath "$0"))/syncany -DAEMON_OPTS="--log=$LOGFILE daemon" - -export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" - -mkdir -p $APPDIR -mkdir -p $LOGDIR - -start() { - RUNNING=$(process_running) - - echo -n "Starting daemon: " - - if [ $RUNNING -eq 1 ]; then - echo "$NAME already running (pid $PID)" - else - nohup "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.syncany.Syncany $DAEMON_OPTS > /dev/null 2>&1 & - - PID=-1 - TRIES=10 - - while [ $RUNNING -eq 0 -a $TRIES -gt 0 ]; do - RUNNING=$(process_running) - echo -n "." - - PID=$(get_pid) - TRIES=$(($TRIES-1)) - sleep 1 - done - - if [ $TRIES -eq 0 ]; then - echo " Failed to start process. EXITING." - echo "Failed command line: $ $DAEMON $DAEMON_OPTS" - exit 2 - fi - - echo " $NAME (pid $PID)." - fi -} - -stop() { - RUNNING=$(process_running) - - echo -n "Stopping daemon: " - - if [ $RUNNING -eq 0 ]; then - echo "$NAME not running" - else - echo "shutdown" >> $CONTROLFILE - - TRIES=10 - while [ $RUNNING -eq 1 -a $TRIES -gt 0 ]; do - RUNNING=$(process_running) - echo -n "." - - TRIES=$(($TRIES-1)) - sleep 1 - done - - if [ $TRIES -eq 0 ]; then - echo " Failed to stop process $PID. Try 'force-stop'. EXITING." - exit 3 - fi - - echo " $NAME stopped." - fi -} - -force_stop() { - RUNNING=$(process_running) - - echo "Force-stopping daemon: " - - if [ $RUNNING -eq 0 ]; then - echo "$NAME not running" - else - kill -9 $PID - - RUNNING=$(process_running) - - sleep 1 - - RUNNING=$(process_running) - if [ $RUNNING -eq 1 ]; then - echo "Failed to kill -9 $PID. EXITING." - else - rm $PIDFILE 2> /dev/null - rm $CONTROLFILE 2> /dev/null - - echo "Killed $NAME (pid $PID)." - fi - fi -} - - -status() { - RUNNING=$(process_running) - echo -n "Checking daemon: "$NAME - - if [ $RUNNING -eq 0 ]; then - echo " not running" - else - echo " running (pid $PID)." - fi -} - -reload() { - RUNNING=$(process_running) - echo -n "Reloading daemon: "$NAME - - if [ $RUNNING -eq 0 ]; then - echo " not running" - else - echo "reload" >> $CONTROLFILE - echo "." - fi -} - -# Run main script -PID=$(get_pid) \ No newline at end of file diff --git a/gradle/daemon/syncanyd.skel b/gradle/daemon/syncanyd.skel new file mode 100755 index 000000000..535e44f05 --- /dev/null +++ b/gradle/daemon/syncanyd.skel @@ -0,0 +1,178 @@ +### Daemon script begin ########################################################## + +# Daemon variables +DAEMON_NAME=syncanyd +DAEMON_APPDIR=~/.config/syncany +DAEMON_CONTROLFILE=$DAEMON_APPDIR/daemon.ctrl +DAEMON_PIDFILE=$DAEMON_APPDIR/daemon.pid +DAEMON_LOGDIR=$DAEMON_APPDIR/logs +DAEMON_LOGFILE=$DAEMON_LOGDIR/daemon.log +DAEMON_OPTS="--log=$DAEMON_LOGFILE daemon" + +# Daemon functions +daemon_get_pid() { + if [ -e $DAEMON_PIDFILE ]; then + echo $(cat $DAEMON_PIDFILE) + else + echo -1 + fi +} + +daemon_running() { + ID=$(daemon_get_pid) + if [ $ID -eq -1 ]; then + echo 0 + elif [ -n $(ps -p$ID -opid=) ]; then + echo 1 + else + echo 0 + fi +} + +daemon_start() { + DAEMON_RUNNING=$(daemon_running) + + echo -n "Starting daemon: " + + if [ $DAEMON_RUNNING -eq 1 ]; then + echo "$DAEMON_NAME already running (pid $DAEMON_PID)" + else + nohup "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.syncany.Syncany $DAEMON_OPTS > /dev/null 2>&1 & + + DAEMON_PID=-1 + TRIES=10 + + while [ $DAEMON_RUNNING -eq 0 -a $TRIES -gt 0 ]; do + DAEMON_RUNNING=$(daemon_running) + echo -n "." + + DAEMON_PID=$(get_pid) + TRIES=$(($TRIES-1)) + sleep 1 + done + + if [ $TRIES -eq 0 ]; then + echo " Failed to start process. EXITING." + echo "Failed command line: $ $DAEMON $DAEMON_OPTS" + exit 2 + fi + + echo " $DAEMON_NAME (pid $DAEMON_PID)." + fi +} + +daemon_stop() { + DAEMON_RUNNING=$(daemon_running) + + echo -n "Stopping daemon: " + + if [ $DAEMON_RUNNING -eq 0 ]; then + echo "$DAEMON_NAME not running" + else + echo "shutdown" >> $DAEMON_CONTROLFILE + + TRIES=10 + while [ $DAEMON_RUNNING -eq 1 -a $TRIES -gt 0 ]; do + DAEMON_RUNNING=$(daemon_running) + echo -n "." + + TRIES=$(($TRIES-1)) + sleep 1 + done + + if [ $TRIES -eq 0 ]; then + echo " Failed to stop process $DAEMON_PID. Try 'force-stop'. EXITING." + exit 3 + fi + + echo " $DAEMON_NAME stopped." + fi +} + +daemon_force_stop() { + DAEMON_RUNNING=$(daemon_running) + + echo -n "Force-stopping daemon: " + + if [ $DAEMON_RUNNING -eq 0 ]; then + echo "$DAEMON_NAME not running" + else + kill -9 $DAEMON_PID + + DAEMON_RUNNING=$(daemon_running) + + sleep 1 + + DAEMON_RUNNING=$(daemon_running) + if [ $DAEMON_RUNNING -eq 1 ]; then + echo "Failed to kill -9 $DAEMON_PID. EXITING." + else + rm $DAEMON_PIDFILE 2> /dev/null + rm $DAEMON_CONTROLFILE 2> /dev/null + + echo "Killed $DAEMON_NAME (pid $DAEMON_PID)." + fi + fi +} + +daemon_status() { + DAEMON_RUNNING=$(daemon_running) + echo -n "Checking daemon: "$DAEMON_NAME + + if [ $DAEMON_RUNNING -eq 0 ]; then + echo " not running" + else + echo " running (pid $DAEMON_PID)." + fi +} + +daemon_reload() { + DAEMON_RUNNING=$(daemon_running) + echo -n "Reloading daemon: "$DAEMON_NAME + + if [ $DAEMON_RUNNING -eq 0 ]; then + echo " not running" + else + echo "reload" >> $DAEMON_CONTROLFILE + echo "." + fi +} + +export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" + +mkdir -p $DAEMON_APPDIR +mkdir -p $DAEMON_LOGDIR + +DAEMON_PID=$(daemon_get_pid) + +case "$1" in + daemon) + case "$2" in + start) + daemon_start + ;; + stop) + daemon_stop + ;; + restart) + daemon_stop + daemon_start + ;; + status) + daemon_status + ;; + reload) + daemon_reload + ;; + force-stop) + daemon_force_stop + ;; + *) + echo "Usage: sy daemon (start|stop|reload|restart|status|force-stop)" + ;; + esac + ;; + *) + #JAVA_EXEC_REPLACEMENT_MARKER# + ;; +esac diff --git a/gradle/gradle/application.distribution.gradle b/gradle/gradle/application.distribution.gradle index 202b99e41..1747133cc 100644 --- a/gradle/gradle/application.distribution.gradle +++ b/gradle/gradle/application.distribution.gradle @@ -25,73 +25,52 @@ startScripts { winFile.text = winFile.text.replaceAll("(:end)", "${winPurgeFileDeletionCommands}:end") + def winTextTmp = "" def winText = winFile.text - def textTmp = "" winText.readLines().each { line -> if (line.startsWith("\"%JAVA_EXE%\"")) { - textTmp += "if \"%1\" == \"daemon\" (\r\n" - textTmp += " @rem start daemon\r\n" - textTmp += " call %DIRNAME%syd.bat %2 %3 %4\r\n" - textTmp += ") else (\r\n" - textTmp += " " + line + "\r\n" - textTmp += ")" + winTextTmp += "if \"%1\" == \"daemon\" (\r\n" + winTextTmp += " @rem start daemon\r\n" + winTextTmp += " call %DIRNAME%syd.bat %2 %3 %4\r\n" + winTextTmp += ") else (\r\n" + winTextTmp += " " + line + "\r\n" + winTextTmp += ")" } else { - textTmp += line + '\n' + winTextTmp += line + '\n' } } - winFile.text = textTmp + winFile.text = winTextTmp // Update unix text + def unixTextTmp = "" def unixText = unixFile.text - def usage = "Usage: sy daemon (start|stop|reload|restart|status|force-stop)" - textTmp = "" - def daemonScript = new File('gradle/daemon/syncanyd').text + def unixDaemonScript = new File('gradle/daemon/syncanyd.skel').text unixText.readLines().each { line -> if (line.startsWith("exec")) { - textTmp += daemonScript + '\n\n' - textTmp += 'case "\$1" in \n' - textTmp += ' daemon) \n' - textTmp += ' case "\$2" in \n' - textTmp += ' start) \n' - textTmp += ' start ;; \n' - textTmp += ' stop) \n' - textTmp += ' stop ;; \n' - textTmp += ' status) \n' - textTmp += ' status ;; \n' - textTmp += ' reload) \n' - textTmp += ' reload ;; \n' - textTmp += ' force-stop) \n' - textTmp += ' force_stop ;; \n' - - textTmp += ' *) \n' - textTmp += ' echo "' + usage + '"\n' - textTmp += ' esac ;; \n' - textTmp += ' *) \n' - textTmp += ' ' + line + ' ;; \n' - textTmp += 'esac \n' + unixTextTmp += unixDaemonScript.replace("#JAVA_EXEC_REPLACEMENT_MARKER#", line); } else { - textTmp += line + '\n' + unixTextTmp += line + '\n' } } - unixFile.text = textTmp + unixFile.text = unixTextTmp } } applicationDistribution.from("${rootProject.projectDir}/") { include "AUTHORS.md", "CHANGELOG.md", "LICENSE.md", "README.md" - // Copy syncany/syncanyd to sy/syd - from(files("gradle/daemon/", "${startScripts.outputDir}/")) { - include "syncany*" - rename(/syncany(.*)/, 'sy$1') + // Copy syncany(.bat) to sy(.bat) + from("${startScripts.outputDir}/") { + include "syncany" + rename(/syncany/, 'sy') into "bin" } }