Fixup to abort more gracefully when wanted package is missing from the repository.
authorRalph Ronnquist <rrq@rrq.au>
Wed, 18 Sep 2024 00:49:41 +0000 (10:49 +1000)
committerRalph Ronnquist <rrq@rrq.au>
Wed, 18 Sep 2024 00:49:41 +0000 (10:49 +1000)
build-installer-functions.sh

index b26f23efea34fc939e0c577a606ce2ff8697ad81..7d50e4dc56ccc9822d0304caca71d49bf73cc41c 100644 (file)
@@ -10,7 +10,7 @@ typeset -A DEBURL DEBDIR PROVIDER PKGS
 # die() simply prints its arguments as a message to stderr and then
 # calls exit(1). This is only used at bailout points when something
 # seems badly wrong.
-die() { echo "$*" >&1 ; exit 1 ; }
+die() { echo "$*" >&2 ; exit 1 ; }
 
 # deb_url_map() reduces a Packages file (argument $1) into a series of
 # mappings of the form "package=filename".
@@ -133,7 +133,7 @@ download() {
        [ "$QUIET" = yes ] || echo "DOWNLOAD $P" >&2
        local URI="${DEBURL["$P"]}"
        [ "$QUIET" = yes ] || echo "DOWNLOAD URI=$URI" >&2
-       [ -z "$URI" ] && die "** Cannot find package $P in the sources!!"
+       [ -z "$URI" ] && die '** ' "Cannot find package $P in the sources!!"
        local F="${DEBDIR["$1"]}/${URI##*/}"
        [ "$QUIET" = yes ] || echo "DOWNLOAD F=$F" >&2
        [ -f "$F" ] && continue # alread y downloaded
@@ -185,7 +185,8 @@ executable() {
 # to run (see inline comments)
 # etc/debconf.conf -- telling where databases are
 target_dpkg() {
-    local HERE=$(pwd)
+    local HERE=$(pwd) X=( ${@##-*} )
+    [ -z "$X" ] && die "** Aborting"
     cd $INITRD
     if [ ! -f etc/debconf.conf ] ; then
        cat /etc/debconf.conf | heredoc etc/debconf.conf