#!/bin/bash -e # ucmpkg # Initialize variables maintainer="Sam Watkins " 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"