From 62449e63e938c89e756bffe8757dc52a5c30fcb1 Mon Sep 17 00:00:00 2001 From: "dylan.araps@gmail.com" Date: Thu, 4 Jul 2019 14:43:10 +0000 Subject: kiss: Added install dependency check. FossilOrigin-Name: f4b65a471032eb435b0fae40b64dc9c347b7fd161885ec71cb6a4d7f214a370e --- kiss | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/kiss b/kiss index e6ece91..7c924c4 100755 --- a/kiss +++ b/kiss @@ -576,7 +576,7 @@ pkg_remove() { # Check each depends file for the package and if it's # a run-time dependency, append to the $required_by string. grep -q "^$1$" "$file/depends" 2>/dev/null && - required_by="$required_by${file##*/}, " + required_by="$required_by'${file##*/}', " done [ "$required_by" ] && @@ -644,6 +644,20 @@ pkg_install() { tar pxf "$tar_file" -C "$tar_dir/" || die "[$pkg_name]: Failed to extract tar-ball." + log "[$pkg_name]: Checking that all dependencies are installed..." + + # Make sure that all run-time dependencies are installed prior to + # installing the package. + [ -f "$tar_dir/var/db/kiss/$pkg_name/depends" ] && + while read -r dep dep_type; do + [ "$dep_type" ] || pkg_list "$dep" >/dev/null || + required_install="$required_install'$dep', " + done < "$tar_dir/var/db/kiss/$pkg_name/depends" + + [ "$required_install" ] && + die "[$1]: Package requires ${required_install%, }." \ + "[$1]: Aborting here..." + # Create a backup of 'mv', 'mkdir' and 'find' so they aren't removed # during package removal. This ensures that an upgrade to 'busybox' or # your core utilities of choice doesn't break the package manager. -- cgit v1.2.3