From e625bd09004dd161263b152df750db7a584ad36e Mon Sep 17 00:00:00 2001 From: BlubbFish Date: Wed, 19 Jan 2022 22:49:53 +0100 Subject: [PATCH] =?UTF-8?q?=E2=80=9Edeb/build-deb.sh=E2=80=9C=20=C3=A4nder?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deb/build-deb.sh | 137 ++++++++++++++++++++++++++++++----------------- 1 file changed, 87 insertions(+), 50 deletions(-) diff --git a/deb/build-deb.sh b/deb/build-deb.sh index 3db32b8..69e5614 100644 --- a/deb/build-deb.sh +++ b/deb/build-deb.sh @@ -1,90 +1,127 @@ #!/bin/bash -echo "Build file for dpkg-deb: https://github.com/linksmart/ci-scripts/blob/master/deb/build-deb.sh" +# EXAMPLES +usage() { + echo "usage: " \ + "NAME=app " \ + "COPYCONFIG=../build/sample-config/*.conf " \ + "VERSION=1.2-3 " \ + "PLATFORM=amd64 " \ + "COPYEXEC=../build/release/app " \ + "sh build-deb.sh" + exit 1 +} -echo "1. Catch all paths together for $NAME." +echo "Build file for dpkg-deb: https://git.blubbfish.net/vs_utils/CI-Scripts/src/branch/master/deb/build-deb.sh" -HOMEDIR=$HOME -ROOT="$HOMEDIR/deb" -OUTPUT="../bin/Release/netcoreapp3.0" +if [ -z "${NAME}" ]; then + usage +fi -EXEC="$ROOT/usr/local/bin/$NAME" -CONFIG="$ROOT/etc/$NAME" -SHARE="$ROOT/usr/share/$NAME" -SYSTEMD="$ROOT/lib/systemd/system" -LOGROTATE="$ROOT/etc/logrotate.d" -DEBIAN="$ROOT/DEBIAN" +if [ -z "${HOME}" ]; then + echo "HOME variable was not set, chech yout system!" + exit 1 +fi -echo "2. Versionsumber and Arch: $VERSION, $PLATFORM." +if [ -z "${COPYCONFIG}" ]; then + usage +fi + +if [ -z "${VERSION}" ]; then + usage +fi + +if [ -z "${PLATFORM}" ]; then + usage +fi + +if [ -z "${COPYEXEC}" ]; then + usage +fi + +echo "1. Catch all paths together for ${NAME}." + +HOMEDIR=${HOME} +ROOT="${HOMEDIR}/deb" + +EXEC="${ROOT}/usr/local/bin/${NAME}" +CONFIG="${ROOT}/etc/${NAME}" +SHARE="${ROOT}/usr/share/${NAME}" +SYSTEMD="${ROOT}/lib/systemd/system" +DEBIAN="${ROOT}/DEBIAN" +LOGROTATE="${SHARE}/logrotate.d" +TARGETFILE="${NAME}_${VERSION}_${PLATFORM}.deb" + +echo "2. Versionsumber and Arch: ${VERSION}, ${PLATFORM}." echo "3. Create directorys." -mkdir -p $EXEC -mkdir -p $CONFIG -mkdir -p $SHARE/etc -mkdir -p $DEBIAN -mkdir -p $SYSTEMD -if [ -f "logrotate-$NAME" ]; then - mkdir -p $LOGROTATE +mkdir -p ${EXEC} +mkdir -p ${CONFIG} +mkdir -p ${SHARE}/etc +mkdir -p ${SYSTEMD} +mkdir -p ${DEBIAN} +if [ -f "logrotate-${NAME}" ]; then + mkdir -p ${LOGROTATE} fi echo "4. Copy deb control files." -cp control $DEBIAN/control -cp postinst $DEBIAN -cp prerm $DEBIAN +cp control ${DEBIAN}/control +cp postinst ${DEBIAN} +cp prerm ${DEBIAN} -echo "5. Copy $NAME.service to $SYSTEMD." +echo "5. Copy ${NAME}.service to ${SYSTEMD}." -cp "service-$NAME" "$SYSTEMD/$NAME.service" +cp "service-${NAME}" "${SYSTEMD}/${NAME}.service" -echo "6. Copy programm files to $EXEC." +echo "6. Copy programm files to ${EXEC}." -cp -r -t $EXEC/ $COPYEXEC +cp -r -t ${EXEC}/ ${COPYEXEC} -echo "7. Copy example-conf to $SHARE/etc." +echo "7. Copy example-conf to ${SHARE}/etc." -cp -t $SHARE/etc/ $COPYCONFIG -touch $DEBIAN/conffiles -find $SHARE/etc -type f -printf "/usr/share/$NAME/etc/%P\n" > $DEBIAN/conffiles +cp -t ${SHARE}/etc/ ${COPYCONFIG} +touch ${DEBIAN}/conffiles +find ${SHARE}/etc -type f -printf "/usr/share/${NAME}/etc/%P\n" > ${DEBIAN}/conffiles -echo "8. Copy $NAME.conf to $LOGROTATE." -if [ -f "logrotate-$NAME" ]; then - cp "logrotate-$NAME" "$LOGROTATE/$NAME.conf" +echo "8. Copy ${NAME}.conf to ${LOGROTATE}." +if [ -f "logrotate-${NAME}" ]; then + cp "logrotate-${NAME}" "${LOGROTATE}/${NAME}.conf" + echo "/usr/share/${NAME}/logrotate.d/${NAME}.conf" >> ${DEBIAN}/conffiles else echo "No logrotate found" fi echo "9. Creating md5sum" -touch $DEBIAN/md5sums -pushd $ROOT >> /dev/null -find . -path ./DEBIAN -prune -o -type f -exec md5sum {} \; | sed "s-./--" >> $DEBIAN/md5sums +touch ${DEBIAN}/md5sums +pushd ${ROOT} >> /dev/null +find . -path ./{DEBIAN} -prune -o -type f -exec md5sum {} \; | sed "s-./--" >> ${DEBIAN}/md5sums popd >> /dev/null echo "10. Setting permissions" -chmod -R 755 $DEBIAN -chmod 644 $SYSTEMD/"$NAME.service" -chmod -R 755 $EXEC -chmod 644 $SHARE/etc/* -chmod 755 $CONFIG -if [ -f "logrotate-$NAME" ]; then - chmod 644 $LOGROTATE/* +chmod -R 755 ${DEBIAN} +chmod 644 ${SYSTEMD}/"${NAME}.service" +chmod -R 755 ${EXEC} +chmod 644 ${SHARE}/etc/* +chmod 755 ${CONFIG} +if [ -f "logrotate-${NAME}" ]; then + chmod 644 ${LOGROTATE}/* fi echo "11. Build deb packet." -dpkg-deb --build $ROOT +dpkg-deb --build ${ROOT} -echo "12. Move $TARGETFILE to Builds." +echo "12. Move ${TARGETFILE} to Builds." -TARGETFILE="${NAME}_${VERSION}_${PLATFORM}.deb" -mv $HOMEDIR/deb.deb "../Builds/$TARGETFILE" -echo "::set-output name=debuilderfile::$TARGETFILE" +mv ${HOMEDIR}/deb.deb "../Builds/${TARGETFILE}" +echo "::set-output name=debuilderfile::${TARGETFILE}" -echo "13. Cleanup $HOMEDIR/deb." +echo "13. Cleanup ${HOMEDIR}/deb." -rm $HOMEDIR/deb -r +rm ${HOMEDIR}/deb -r echo "All steps completed." \ No newline at end of file