#!/bin/bash # Copyright (c) 2025 fithwum # All rights reserved set -e # Auto-detect a single debian-* directory if not passed if [ -n "$1" ]; then ROOTFS_DIR="$1" else ROOTFS_DIR=$(find . -maxdepth 1 -type d -name "debian-*" | sed 's|^\./||' | head -n 1) if [ -z "$ROOTFS_DIR" ]; then echo "[ERROR] No debian-* rootfs directory found!" exit 1 fi fi VERSION_NAME="${ROOTFS_DIR#debian-}" TARBALL_NAME="rootfs-${VERSION_NAME}.tar.bz2" TARBALL_PATH="/output/${VERSION_NAME}/${TARBALL_NAME}" CHECKSUM_PATH="/output/${VERSION_NAME}/sha256sums.txt" echo "[INFO] Unmounting system directories (ignore errors)..." for dir in sys proc dev/pts dev; do umount -lf "$ROOTFS_DIR/$dir" 2>/dev/null || true done echo "[INFO] Removing chroot script..." rm -f "$ROOTFS_DIR/root/"*.sh 2>/dev/null || true echo "[INFO] Rootfs size:" du -sh "$ROOTFS_DIR" echo "[INFO] Creating compressed base image..." mkdir -p "$(dirname "$TARBALL_PATH")" tar -cjf "$TARBALL_PATH" -C "$ROOTFS_DIR" . echo "[INFO] Image archive size:" du -sh "$TARBALL_PATH" echo "[INFO] Calculating SHA256 checksum..." sha256sum "$TARBALL_PATH" > "$CHECKSUM_PATH" echo "[INFO] Tarball ready at: $TARBALL_PATH" echo "[INFO] Checksum written to: $CHECKSUM_PATH" # #!/bin/bash # # Copyright (c) 2025 fithwum # # All rights reserved # set -e # # Auto-detect a single debian-* directory if not passed # if [ -n "$1" ]; then # ROOTFS_DIR="$1" # else # ROOTFS_DIR=$(find . -maxdepth 1 -type d -name "debian-*" | sed 's|^\./||' | head -n 1) # if [ -z "$ROOTFS_DIR" ]; then # echo "[ERROR] No debian-* rootfs directory found!" # exit 1 # fi # fi # TARBALL="/output/${ROOTFS_DIR}.tar.bz2" # echo "[INFO] Unmounting system directories (ignore errors)..." # for dir in sys proc dev/pts dev; do # umount -lf "$ROOTFS_DIR/$dir" 2>/dev/null || true # done # echo "[INFO] Removing chroot script..." # rm -f "$ROOTFS_DIR/root/${ROOTFS_DIR}_pt2.sh" 2>/dev/null || true # echo "[INFO] Rootfs size:" # du -sh "$ROOTFS_DIR" # echo "[INFO] Creating compressed base image..." # tar -cjf "$TARBALL" -C "$ROOTFS_DIR" . # echo "[INFO] Image archive size:" # du -sh "$TARBALL" # echo "[INFO] Tarball ready for CI to upload: $TARBALL"