aboutsummaryrefslogtreecommitdiff
path: root/kiss
diff options
context:
space:
mode:
authordylan.araps@gmail.com <dylan.araps@gmail.com>2019-07-04 14:43:10 +0000
committerdylan.araps@gmail.com <dylan.araps@gmail.com>2019-07-04 14:43:10 +0000
commit62449e63e938c89e756bffe8757dc52a5c30fcb1 (patch)
treefc63c5a35a50962aa215a95ed1ea1bf07701f416 /kiss
parenta5aa2aa71398d24b6c41461d9b67d7b3ecca2d82 (diff)
downloadcpt-62449e63e938c89e756bffe8757dc52a5c30fcb1.tar.gz
kiss: Added install dependency check.
FossilOrigin-Name: f4b65a471032eb435b0fae40b64dc9c347b7fd161885ec71cb6a4d7f214a370e
Diffstat (limited to 'kiss')
-rwxr-xr-xkiss16
1 files changed, 15 insertions, 1 deletions
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.