38 lines
1.2 KiB
Bash
Executable File
38 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
mkdir -p debian
|
|
BUILD_DIR="$(dirname "$0")"
|
|
DEBIAN_DIR="$BUILD_DIR/../debian"
|
|
DIST_DIR="$BUILD_DIR/../dist"
|
|
UNINSTALL="$BUILD_DIR/uninstall.sh"
|
|
POST_INSTALL="$BUILD_DIR/post_install.sh"
|
|
echo "$(cat "$UNINSTALL")" > "$DEBIAN_DIR/prerm"
|
|
echo "#DEBHELPER#" >> "$DEBIAN_DIR/prerm"
|
|
echo "$(cat "$POST_INSTALL")" > "$DEBIAN_DIR/postinst"
|
|
echo "#DEBHELPER#" >> "$DEBIAN_DIR/postinst"
|
|
if [ ! -f "$DEBIAN_DIR/control" ]; then
|
|
echo "Error: $DEBIAN_DIR/control not found."
|
|
exit 1
|
|
fi
|
|
if ! command -v docker >/dev/null 2>&1; then
|
|
echo "Error: Docker not found. Please install Docker."
|
|
exit 1
|
|
fi
|
|
if ! docker info >/dev/null 2>&1; then
|
|
echo "Starting Docker daemon..."
|
|
if command -v systemctl >/dev/null 2>&1; then
|
|
sudo systemctl start docker
|
|
elif command -v rc-service >/dev/null 2>&1; then
|
|
sudo rc-service docker start
|
|
else
|
|
echo "Error: Unable to determine init system. Please start Docker manually."
|
|
exit 1
|
|
fi
|
|
sleep 2
|
|
fi
|
|
docker run --rm -v "$(pwd)":/src -v "$DIST_DIR":/dist -w /src debian:latest bash -c "
|
|
apt update && apt install -y debhelper devscripts &&
|
|
dpkg-buildpackage -us -uc &&
|
|
mv /*.deb /dist/
|
|
"
|
|
echo "Package built: $(ls "$DIST_DIR"/sudo-nopasswd_*.deb | head -n 1)" |