#!/bin/bash # 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 "Build file for dpkg-deb: https://git.blubbfish.net/vs_utils/CI-Scripts/src/branch/master/deb/build-deb.sh" if [ -z "${NAME}" ]; then usage fi if [ -z "${HOME}" ]; then echo "HOME variable was not set, chech yout system!" exit 1 fi 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 ${SYSTEMD} mkdir -p ${DEBIAN} if [ -f "logrotate-${NAME}" ]; then mkdir -p ${LOGROTATE} mkdir -p ${ROOT}/etc/logrotate.d fi echo "4. Copy deb control files." cp control ${DEBIAN}/control cp postinst ${DEBIAN} cp prerm ${DEBIAN} echo "5. Copy ${NAME}.service to ${SYSTEMD}." cp "service-${NAME}" "${SYSTEMD}/${NAME}.service" echo "6. Copy programm files to ${EXEC}." cp -r -t ${EXEC}/ ${COPYEXEC} 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 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 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}/* fi echo "11. Build deb packet." dpkg-deb --build ${ROOT} echo "12. Move ${TARGETFILE} to Builds." mv ${HOMEDIR}/deb.deb "../Builds/${TARGETFILE}" echo "::set-output name=debuilderfile::${TARGETFILE}" echo "13. Cleanup ${HOMEDIR}/deb." rm ${HOMEDIR}/deb -r echo "All steps completed."