summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rwxr-xr-xutil/build.sh49
1 files changed, 49 insertions, 0 deletions
diff --git a/util/build.sh b/util/build.sh
new file mode 100755
index 0000000..e296cce
--- /dev/null
+++ b/util/build.sh
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+# --- Configuration: package name and version ---
+PKG_NAME="kel-lbm"
+PKG_VERSION="0.0.2"
+
+# --- Ensure we're in the Git root ---
+if ! GIT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null); then
+ echo "Error: Not inside a git repository."
+ exit 1
+fi
+cd "$GIT_ROOT"
+
+# --- Ensure default.nix exists ---
+if [[ ! -f default.nix ]]; then
+ echo "Error: no default.nix in Git root ($GIT_ROOT)"
+ exit 1
+fi
+
+# --- Run build + packaging inside container ---
+podman run --rm -it \
+ -v "$GIT_ROOT":/workspace \
+ -w /workspace \
+ -e USER=nix \
+ -e PKG_NAME="$PKG_NAME" \
+ -e PKG_VERSION="$PKG_VERSION" \
+ docker.io/nixos/nix:latest \
+ nix-shell -p bash --run "
+ set -euo pipefail
+
+ # Build the derivation
+ nix-build default.nix --out-link result
+
+ # Install fpm if missing
+ if ! command -v fpm >/dev/null 2>&1; then
+ nix-shell -p rubyPackages.fpm --run 'true'
+ fi
+
+ # Create .deb package
+ nix-shell -p rubyPackages.fpm --run \"fpm -s dir -t deb -n \$PKG_NAME -v \$PKG_VERSION -C result --prefix /usr/local .\"
+
+ # Create .rpm package
+ nix-shell -p rubyPackages.fpm --run \"fpm -s dir -t rpm -n \$PKG_NAME -v \$PKG_VERSION -C result --prefix /usr/local .\"
+ "
+
+echo "✅ Build complete!"
+echo " - result -> $GIT_ROOT/result"
+echo " - ${PKG_NAME}_${PKG_VERSION}.deb and ${PKG_NAME}-${PKG_VERSION}.rpm are in $GIT_ROOT"