diff --git a/deb/service-build.sh b/deb/service-build.sh index adb6225..a4c9a6a 100644 --- a/deb/service-build.sh +++ b/deb/service-build.sh @@ -5,67 +5,75 @@ usage() { echo "usage: " \ "NAME=app " \ "DESCRIPTION=Testapp " \ - "EXEPATH=testapp" \ - "EXEARGUMENTS=-v" \ + "EXEPATH=testapp " \ + "[USERNAMEGROUP=appuser " \ + "EXEARGUMENTS=-v " \ + "RUNNER=/bin/dotnet " \ + "ENVIROMENTVARS=test HOME " \ + "LOGOUTPUT=syslog] " \ "sh service-build.sh" exit 1 } -echo "DEB Builder service-file: https://github.com/linksmart/ci-scripts/blob/master/deb/service-build.sh" +echo "DEB Builder service-file: https://git.blubbfish.net/vs_utils/CI-Scripts/src/branch/master/deb/service-build.sh" -if [[ -z "$DESCRIPTION" ]]; then +if [[ -z "${DESCRIPTION}" ]]; then usage fi -if [[ -z "$NAME" ]]; then +if [[ -z "${NAME}" ]]; then usage fi -if [[ -z "$EXEPATH" ]]; then +if [ -z "${USERNAMEGROUP}" ]; then + USERNAMEGROUP="${NAME}bot" +fi + +if [[ -z "${EXEPATH}" ]]; then usage fi -if [[ -z "$EXEARGUMENTS" ]]; then - usage +if [[ -z "${EXEARGUMENTS}" ]]; then + EXEARGUMENTS=" " fi -INSTLOCAL="/usr/local/bin/$NAME" -BINARY="$INSTLOCAL/$EXEPATH" +INSTLOCAL="/usr/local/bin/${NAME}" +BINARY="$INSTLOCAL/${EXEPATH}" -if [[ -z "$RUNNER" ]]; then - RUNNER="$BINARY" +if [[ -z "${RUNNER}" ]]; then + RUNNER="${BINARY}" else - EXEARGUMENTS="$BINARY $EXEARGUMENTS" + EXEARGUMENTS="${BINARY} ${EXEARGUMENTS}" fi -echo "[Unit]" > service-$NAME -echo "Description=$DESCRIPTION" >> service-$NAME -echo "After=network-online.target" >> service-$NAME -echo "Wants=network-online.target" >> service-$NAME -echo "" >> service-$NAME -echo "[Service]" >> service-$NAME -echo "User=${NAME}bot" >> service-$NAME -echo "Group=${NAME}bot" >> service-$NAME -echo "WorkingDirectory=$INSTLOCAL" >> service-$NAME -if [[ -n "$ENVIROMENTVARS" ]]; then - for enviromentvar in $ENVIROMENTVARS +echo "[Unit]" > service-${NAME} +echo "Description=${DESCRIPTION}" >> service-${NAME} +echo "After=network-online.target" >> service-${NAME} +echo "Wants=network-online.target" >> service-${NAME} +echo "" >> service-${NAME} +echo "[Service]" >> service-${NAME} +echo "User=${USERNAMEGROUP}" >> service-${NAME} +echo "Group=${USERNAMEGROUP}" >> service-${NAME} +echo "WorkingDirectory=${INSTLOCAL}" >> service-${NAME} +if [[ -n "${ENVIROMENTVARS}" ]]; then + for enviromentvar in ${ENVIROMENTVARS} do - echo "Environment=\"${enviromentvar}\"" >> service-$NAME + echo "Environment=\"${enviromentvar}\"" >> service-${NAME} done fi -echo "PermissionsStartOnly=true" >> service-$NAME -echo "ExecStartPre=setcap 'cap_net_bind_service=+ep' $RUNNER" >> service-$NAME -echo "ExecStart=$RUNNER $EXEARGUMENTS" >> service-$NAME -echo "KillMode=control-group" >> service-$NAME -echo "TimeoutStopSec=5" >> service-$NAME -echo "Restart=on-failure" >> service-$NAME -if [[ -n "$LOGOUTPUT" ]]; then - echo "StandardOutput=$LOGOUTPUT" >> service-$NAME +echo "PermissionsStartOnly=true" >> service-${NAME} +echo "ExecStartPre=setcap 'cap_net_bind_service=+ep' ${RUNNER}" >> service-${NAME} +echo "ExecStart=${RUNNER} ${EXEARGUMENTS}" >> service-${NAME} +echo "KillMode=control-group" >> service-${NAME} +echo "TimeoutStopSec=5" >> service-${NAME} +echo "Restart=on-failure" >> service-${NAME} +if [[ -n "${LOGOUTPUT}" ]]; then + echo "StandardOutput=${LOGOUTPUT}" >> service-${NAME} else - echo "StandardOutput=null" >> service-$NAME + echo "StandardOutput=null" >> service-${NAME} fi -echo "StandardError=syslog" >> service-$NAME -echo "" >> service-$NAME -echo "[Install]" >> service-$NAME -echo "WantedBy=multi-user.target" >> service-$NAME -echo "Alias=$NAME.service" >> service-$NAME \ No newline at end of file +echo "StandardError=syslog" >> service-${NAME} +echo "" >> service-${NAME} +echo "[Install]" >> service-${NAME} +echo "WantedBy=multi-user.target" >> service-${NAME} +echo "Alias=${NAME}.service" >> service-${NAME} \ No newline at end of file