#!/usr/bin/env bash has_param() { local term="$1" shift for arg; do if [ "$arg" = "$1" ]; then return 0 fi done return 1 } if ! has_param "-f" "$@"; then set -e fi INSTALL_HOME="$(realpath "$BASH_SOURCE")" INSTALL_HOME="$(dirname "$INSTALL_HOME")" INSTALL_APPNAME="svchelper" INSTALL_SERVICE="$INSTALL_APPNAME" INSTALL_SERVICE_PATH="/etc/init.d/$INSTALL_SERVICE" INSTALL_INPUT="$INSTALL_HOME/app" INSTALL_OUTPUT="/opt/$INSTALL_APPNAME" INSTALL_BIN="/usr/local/bin/$INSTALL_APPNAME" echo "Uninstalling '$INSTALL_APPNAME' ..." if [ -e "$INSTALL_SERVICE_PATH" ]; then service "$INSTALL_SERVICE" stop update-rc.d "$INSTALL_SERVICE" remove rm "$INSTALL_SERVICE_PATH" fi if [ -e "$INSTALL_BIN" ]; then rm "$INSTALL_BIN" fi if [ -e "$INSTALL_OUTPUT" ]; then rm -rf "$INSTALL_OUTPUT" fi if has_param "-u" "$@"; then exit 0 fi echo "Installing '$INSTALL_APPNAME' ..." cp -r "$INSTALL_INPUT" "$INSTALL_OUTPUT" ln -s "$INSTALL_OUTPUT/app" "$INSTALL_BIN" echo '#!/bin/bash' >"$INSTALL_SERVICE_PATH" echo '### BEGIN INIT INFO' >>"$INSTALL_SERVICE_PATH" echo '# Provides: '"$INSTALL_SERVICE" >>"$INSTALL_SERVICE_PATH" echo '# Required-Start: $all' >>"$INSTALL_SERVICE_PATH" echo '# Required-Stop: $all' >>"$INSTALL_SERVICE_PATH" echo '# Default-Start: 2 3 4 5' >>"$INSTALL_SERVICE_PATH" echo '# Default-Stop: 0 6' >>"$INSTALL_SERVICE_PATH" echo '# Short-Description: Service helper' >>"$INSTALL_SERVICE_PATH" echo '### END INIT INFO' >>"$INSTALL_SERVICE_PATH" echo '' >>"$INSTALL_SERVICE_PATH" echo "exec bash \"$INSTALL_BIN\" init \"\$1\"" >>"$INSTALL_SERVICE_PATH" chmod +x "$INSTALL_SERVICE_PATH" update-rc.d "$INSTALL_SERVICE" defaults source "$INSTALL_BIN" source mkdir -p "$APP_SERVICES" set +e "$APP" list | while read -r SERVICE; do "$APP" install "$SERVICE" done service "$INSTALL_SERVICE" start exit 0