#!/bin/sh
# distro/build - assemble a distro tarball

set -eu

DISTRO_DIR=$(pwd)
PROJECT_DIR="$DISTRO_DIR/.."
PACKAGES_DIR="$PROJECT_DIR/packages"

DISTRO_NAME=$(basename "$DISTRO_DIR")
DISTRO_VERSION=$(cat "$DISTRO_DIR/VERSION")
DISTNAME="$DISTRO_NAME-$DISTRO_VERSION"
BUILD_DIR="$DISTRO_DIR/$DISTNAME"

# Clean staging dir
rm -rf "$BUILD_DIR"
mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR"

# Loop through packages
while read -r pkg; do
    [ -z "$pkg" ] && continue  # skip blank lines
    echo ""
    echo "*********** Building and installing $pkg ***********"

    cd "$PACKAGES_DIR/$pkg"
    ./clean
    ./build
    PKG_VERSION=$(cat VERSION)
    PKG_TARBALL="$PACKAGES_DIR/$pkg/$pkg-$PKG_VERSION.txz"

    echo "EXECUTABLE $PACKAGES_DIR/fpkg/bin/fpkginstall"
    echo "SOURCE $PKG_TARBALL"
    echo "TARGET $BUILD_DIR"

    cd "$BUILD_DIR"
    "$PACKAGES_DIR/fpkg/bin/fpkginstall" "$PKG_TARBALL" "$BUILD_DIR"
done < "$DISTRO_DIR/PACKAGES"

# Create final distro tarball
cd "$DISTRO_DIR"
tar --create --xz --file="$DISTNAME.txz" "$DISTNAME"

rm -rf "$BUILD_DIR"

# echo "Built $DISTRO_DIR/$DISTNAME.txz"
