#!/bin/bash -e

# ucmpkg

# Initialize variables
maintainer="Sam Watkins <sam@ucm.dev>"
X=$(readlink -f "$0")
XB=$(basename "$X")
XD=$(dirname "$X")
PATH="$XD/lib:$XD:$PATH"

# Iterate through each command-line argument (P)
for P; do
	A=$(readlink -f "$P")
	B=$(basename "$A")
	D=$(dirname "$A")
	W="$D/.make.ucm-install.$B"
	package=${B%_*}
	version="0.1"
	mkdir -p "$W"
	cd "$W"
	ln -sf "$A" deps
	ln -sf "$XD/control.base" template
	make -e -f"${XD}/ucmpkg.mk"
	cd "$D"
	ln -sf "$W/${package}_${version}_all.deb" "${B}_all.deb"
done

# Install the built packages with apt-get
sudo -E apt-get -y -f install

# lecho function
lecho() {
	# lecho: echo each argument on a separate line
	printf "%s\n" "$@"
}

# Read packages from local/ucm-packages
PKGS=$(HOME)/local/ucm-packages

if [ -e "$PKGS" ]; then
	while read P; do
		D=${P}_all.deb
		if [ ! -e "$D" -o "$P" -nt "$D" ]; then
			./ucm-install "$P"
		fi
	done <"$PKGS"
fi

# Concatenate contents of all listed packages
allfile="$XD/all"
cat "$PKGS" | lecho | while read pkg; do
	cat "$pkg"
done | perl -ne 's/#.*//; s/\s*\z//; s/\s+/\n/g; /\S/ and print "$$_\n";' | sort -u > "$allfile"
