53 lines
1.4 KiB
Bash
Executable File
53 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
VERSION="$(cat "$ROOT_DIR/VERSION")"
|
|
if [[ "$VERSION" == VERSION=* ]]; then
|
|
VERSION="${VERSION#VERSION=}"
|
|
fi
|
|
|
|
if [ ! -d "$ROOT_DIR/vendor" ]; then
|
|
echo "vendor directory missing. Run composer install before building the package." >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d "$ROOT_DIR/public/build" ]; then
|
|
echo "public/build missing. Run npm install && npm run build before building the package." >&2
|
|
exit 1
|
|
fi
|
|
|
|
BUILD_DIR="$(mktemp -d)"
|
|
PKG_DIR="$BUILD_DIR/jabali-panel"
|
|
APP_DIR="$PKG_DIR/var/www/jabali"
|
|
|
|
mkdir -p "$PKG_DIR/DEBIAN" "$APP_DIR"
|
|
|
|
cp -a "$ROOT_DIR/packaging/jabali-panel/DEBIAN/." "$PKG_DIR/DEBIAN/"
|
|
|
|
sed -i "s/^Version:.*/Version: ${VERSION}/" "$PKG_DIR/DEBIAN/control"
|
|
|
|
tar --exclude='.git' \
|
|
--exclude='.env' \
|
|
--exclude='.phpunit.result.cache' \
|
|
--exclude='.git-credentials' \
|
|
--exclude='.claude' \
|
|
--exclude='node_modules' \
|
|
--exclude='storage' \
|
|
--exclude='database/database.sqlite' \
|
|
--exclude='packaging' \
|
|
--exclude='scripts' \
|
|
--exclude='tests' \
|
|
-C "$ROOT_DIR" -cf - . | tar -C "$APP_DIR" -xf -
|
|
|
|
if [ -d "$ROOT_DIR/packaging/jabali-panel/etc" ]; then
|
|
cp -a "$ROOT_DIR/packaging/jabali-panel/etc" "$PKG_DIR/"
|
|
fi
|
|
|
|
chmod 0755 "$PKG_DIR/DEBIAN/postinst" "$PKG_DIR/DEBIAN/prerm" "$PKG_DIR/DEBIAN/postrm"
|
|
|
|
OUTPUT="$ROOT_DIR/jabali-panel_${VERSION}_all.deb"
|
|
dpkg-deb --build "$PKG_DIR" "$OUTPUT"
|
|
|
|
echo "Built: $OUTPUT"
|