#!/bin/sh set -e CONTROL_FILE=$(ls -1 *.control 2>/dev/null | head -n 1) if [ -z "$CONTROL_FILE" ]; then echo "Fout: Geen .control bestand gevonden in $(pwd)" >&2 exit 1 fi PACKAGE_NAME=$(awk '/^Package: /{print $NF}' "$CONTROL_FILE") DETECTED_VERSION=$(awk '/^Version: /{print $NF}' "$CONTROL_FILE") # Version resolution: CLI arg > ENV var > .control version > default 0.1.0 if [ -n "$1" ]; then VERSION="$1" elif [ -n "$PACKAGE_VERSION" ]; then VERSION="$PACKAGE_VERSION" elif [ -n "$VERSION" ]; then VERSION="$VERSION" elif [ "$DETECTED_VERSION" != "{VERSION}" ] && [ -n "$DETECTED_VERSION" ]; then VERSION="$DETECTED_VERSION" else VERSION="0.1.0" fi mkdir -p "packaging/$PACKAGE_NAME/DEBIAN" sed "s/{VERSION}/${VERSION}/" "$CONTROL_FILE" > "packaging/$PACKAGE_NAME/DEBIAN/control" ARCH=$(awk '/^Architecture: /{print $NF}' "packaging/$PACKAGE_NAME/DEBIAN/control") ARCH="${ARCH:-all}" DEB_FILENAME="${PACKAGE_NAME}-${VERSION}_${ARCH}.deb" echo "Building package: $PACKAGE_NAME ($VERSION) [$ARCH] -> $DEB_FILENAME" # Ensure correct Debian directory permissions find "packaging/$PACKAGE_NAME" -type d -exec chmod 755 {} + find "packaging/$PACKAGE_NAME" -type f -exec chmod 644 {} + find "packaging/$PACKAGE_NAME/DEBIAN" -type f -exec chmod 755 {} + 2>/dev/null || true # Build debian binary package dpkg-deb --build "packaging/$PACKAGE_NAME" "$DEB_FILENAME" # Cleanup temporary control file rm -f "packaging/$PACKAGE_NAME/DEBIAN/control" echo "Succesvol gebouwd: $DEB_FILENAME"