From fee852d3580869a2035d26584bbb05f5dfa27776 Mon Sep 17 00:00:00 2001 From: BlubbFish Date: Wed, 19 Jan 2022 21:11:09 +0100 Subject: [PATCH] =?UTF-8?q?=E2=80=9Edeb/pre-post-build.sh=E2=80=9C=20?= =?UTF-8?q?=C3=A4ndern?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deb/pre-post-build.sh | 115 ++++++++++++++++++++++++------------------ 1 file changed, 65 insertions(+), 50 deletions(-) diff --git a/deb/pre-post-build.sh b/deb/pre-post-build.sh index b11ab9f..8a00bb7 100644 --- a/deb/pre-post-build.sh +++ b/deb/pre-post-build.sh @@ -6,79 +6,94 @@ usage() { "NAME=app " \ "CONFIGREPLACEASK=setting.conf params.conf " \ "[MOREGROUPS=dialout " \ + "USERNAMEGROUP=appuser " \ + "LOGFILE=/var/log/app.log " \ "DATADIR=/var/lib/data]" "sh pre-post-build.sh" exit 1 } -echo "DEB Builder pre-post-file: https://github.com/linksmart/ci-scripts/blob/master/deb/pre-post-build.sh" +echo "DEB Builder pre-post-file: https://git.blubbfish.net/vs_utils/CI-Scripts/src/branch/master/deb/pre-post-build.sh" -if [[ -z "$NAME" ]]; then +if [ -z "${NAME}" ]; then usage fi -if [[ -z "$CONFIGREPLACEASK" ]]; then +if [ -z "${CONFIGREPLACEASK}" ]; then usage fi -echo "#!/bin/bash" > postinst -echo "" >> postinst +if [ -z "${USERNAMEGROUP}" ]; then + USERNAMEGROUP="${NAME}bot" +fi -echo "if [ \"\$1\" = \"configure\" ]; then" >> postinst -echo " if [ -z \"\`id -u ${NAME}bot 2> /dev/null\`\" ]; then" >> postinst -echo " adduser --system --group --home /nonexistent --gecos \"${NAME} User\" --no-create-home --disabled-password --quiet ${NAME}bot || true" >> postinst -if [[ -z "$MOREGROUPS" ]]; then - echo " usermod -G ${NAME}bot,adm ${NAME}bot" >> postinst +###################################### POSTINST ################################# +echo "#!/bin/bash" > postinst +echo "" >> postinst +echo "if [ \"\$1\" = \"configure\" ]; then" >> postinst + +# Create User and Group(s) if not exist +echo " if [ -z \"\`id -u ${USERNAMEGROUP} 2> /dev/null\`\" ]; then" >> postinst +echo " adduser --system --group --home /nonexistent --gecos \"${NAME} User\" --no-create-home --disabled-password --quiet ${USERNAMEGROUP} || true" >> postinst +if [ -n "${MOREGROUPS}" ]; then + echo " usermod -G ${USERNAMEGROUP},adm,${MOREGROUPS} ${USERNAMEGROUP}" >> postinst else - echo " usermod -G ${NAME}bot,adm,${MOREGROUPS} ${NAME}bot" >> postinst + echo " usermod -G ${USERNAMEGROUP},adm ${USERNAMEGROUP}" >> postinst fi -echo " fi" >> postinst -echo "" >> postinst -for conffile in $CONFIGREPLACEASK ; do -echo " ucf --three-way /usr/share/${NAME}/etc/${conffile} /etc/${NAME}/${conffile}" >> postinst +echo " fi" >> postinst + +# Config replacement via ucf +echo "" >> postinst +for conffile in ${CONFIGREPLACEASK} ; do + echo " ucf --three-way /usr/share/${NAME}/etc/${conffile} /etc/${NAME}/${conffile}" >> postinst done -echo "" >> postinst +echo "" >> postinst -echo " chown -R ${NAME}bot:${NAME}bot /usr/local/bin/${NAME}" >> postinst -echo "" >> postinst +# Set userright to binary folder +echo " chown -R ${USERNAMEGROUP}:${USERNAMEGROUP} /usr/local/bin/${NAME}" >> postinst +echo "" >> postinst -echo " chown -R ${NAME}bot:${NAME}bot /etc/${NAME}/" >> postinst -echo "" >> postinst +# Set usserrights to config folder +echo " if [ -d "/etc/${NAME}/" ]; then" >> postinst +echo " chown -R ${USERNAMEGROUP}:${USERNAMEGROUP} /etc/${NAME}/" >> postinst +echo " fi" >> postinst +echo "" >> postinst -if [ -f "logrotate-$NAME" ]; then - echo " touch /var/log/${NAME}.log" >> postinst - echo " chown ${NAME}bot:${NAME}bot /var/log/${NAME}.log" >> postinst - echo " chmod 644 /var/log/${NAME}.log" >> postinst - echo "" >> postinst +# Create Logfile +if [ -n "${LOGFILE}" ]; then + echo " mkdir -p \$(dirname \"${LOGFILE}\")" >> postinst + echo " touch ${LOGFILE}" >> postinst + echo " chown ${USERNAMEGROUP}:${USERNAMEGROUP} ${LOGFILE}" >> postinst + echo " chmod 644 ${LOGFILE}" >> postinst + echo "" >> postinst fi -if [[ -n "$DATADIR" ]]; then - echo " mkdir -p ${DATADIR}" >> postinst - echo " chown -R ${NAME}bot:${NAME}bot ${DATADIR}" >> postinst - echo "" >> postinst +# Create datadir +if [ -n "${DATADIR}" ]; then + echo " mkdir -p ${DATADIR}" >> postinst + echo " chown -R ${USERNAMEGROUP}:${USERNAMEGROUP} ${DATADIR}" >> postinst + echo "" >> postinst fi -echo "fi" >> postinst +echo "fi" >> postinst +echo "" >> postinst -echo "systemctl enable ${NAME}" >> postinst -echo "systemctl daemon-reload" >> postinst -echo "" >> postinst +# Enable service +echo "systemctl enable ${NAME}" >> postinst +echo "systemctl daemon-reload" >> postinst +echo "" >> postinst +# Start Service if it was running +echo "if [ -f /tmp/${NAME}_service_runner ]; then" >> postinst +echo " service ${NAME} start" >> postinst +echo " rm /tmp/${NAME}_service_runner" >> postinst +echo "fi" >> postinst - - - - - -echo "if [ -f /tmp/${NAME}_service_runner ]; then" >> postinst -echo " service ${NAME} start" >> postinst -echo " rm /tmp/${NAME}_service_runner" >> postinst -echo "fi" >> postinst - -echo "#!/bin/bash" > prerm -echo "" >> prerm -echo "if [[ \$(systemctl is-active ${NAME} || true) == \"active\" ]]" >> prerm -echo "then" >> prerm -echo " touch /tmp/${NAME}_service_runner" >> prerm -echo " service ${NAME} stop" >> prerm -echo "fi" >> prerm \ No newline at end of file +################### PRERM ################### +echo "#!/bin/bash" > prerm +echo "" >> prerm +echo "if [[ \$(systemctl is-active ${NAME} || true) == \"active\" ]]" >> prerm +echo "then" >> prerm +echo " touch /tmp/${NAME}_service_runner" >> prerm +echo " service ${NAME} stop" >> prerm +echo "fi" >> prerm \ No newline at end of file