69 lines
2.0 KiB
Plaintext
69 lines
2.0 KiB
Plaintext
|
#!/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
|