#!/bin/bash
# Copyright (c) 2025 fithwum
# All rights reserved
set -e

# Alpine version
ALPINE_VERSION="v3.20"
BUILD_DIR="/mnt/alpine-rootfs"  # <--- use safe path NOT in bind mount
OUTPUT_TAR="alpine-base.tar.gz"
PACKAGES="bash curl ca-certificates nano"

echo "[INFO] Downloading alpine-make-rootfs if needed..."
if [ ! -f ./alpine-make-rootfs ]; then
    wget https://raw.githubusercontent.com/alpinelinux/alpine-make-rootfs/master/alpine-make-rootfs
    chmod +x alpine-make-rootfs
fi

echo "[INFO] Creating Alpine rootfs with selected packages..."
sudo ./alpine-make-rootfs \
    --branch "$ALPINE_VERSION" \
    --mirror http://dl-cdn.alpinelinux.org/alpine \
    --packages "$PACKAGES" \
    "$BUILD_DIR"

echo "[INFO] Binding system directories for chroot..."
sudo mount --bind /dev "$BUILD_DIR/dev"
sudo mount --bind /proc "$BUILD_DIR/proc"
sudo mount --bind /sys "$BUILD_DIR/sys"

echo "[INFO] Copying part 2 script into chroot..."
sudo cp base-image-script/alpine-base_pt2.sh "$BUILD_DIR/alpine-base_pt2.sh"
sudo chmod +x "$BUILD_DIR/alpine-base_pt2.sh"

echo "[INFO] Entering chroot. Run 'exit' when done."
sudo chroot "$BUILD_DIR" /alpine-base_pt2.sh

echo "[INFO] Continuing with packaging after chroot..."
bash base-image-script/alpine-base_pt3.sh "$BUILD_DIR" "$OUTPUT_TAR"
