46 lines
1.4 KiB
Bash
Executable File
46 lines
1.4 KiB
Bash
Executable File
#!/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/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"
|