kiss: Make alternatives opt in

This commit is contained in:
Dylan Araps 2020-01-28 17:00:29 +02:00
parent 2eaafc78b0
commit 0a1791ca47
No known key found for this signature in database
GPG Key ID: 46D62DD9F1DE636E
1 changed files with 11 additions and 3 deletions

14
kiss
View File

@ -771,15 +771,17 @@ pkg_conflicts() {
shift "$(($# ? 1 : 0))"
[ "$p_name" != "$i_name" ] || continue
[ "$p_name" = "$i_name" ] && continue
set -- "$@" "$pkg"
done
[ -s "$cac_dir/$pid-m" ] || return 0
# Use 'grep' to list matching lines between the to
# be installed package's manifest and the above filtered
# list.
[ -s "$cac_dir/$pid-m" ] && {
if [ "$KISS_CHOICE" ]; then
"$grep" -Fxf "$cac_dir/$pid-m" -- "$@" |
# This is a novel way of offering an "alternatives" system.
@ -826,7 +828,13 @@ pkg_conflicts() {
sed -i "s/$sea/$rep/" \
"$tar_dir/$p_name/$pkg_db/$p_name/manifest"
done
}
else
if "$grep" -Fxf "$cac_dir/$pid-m" -- "$@"; then
log "Package '$p_name' conflicts with another package" "" "!>"
log "Run 'KISS_CHOICE=1 kiss i $p_name' to add conflicts" "" "!>"
die "as alternatives."
fi
fi
}
pkg_swap() {