From 32fb9d3f1990059f186d98e597ff4fcc17663230 Mon Sep 17 00:00:00 2001 From: "dylan.araps@gmail.com" Date: Tue, 28 Jan 2020 15:00:29 +0000 Subject: kiss: Make alternatives opt in FossilOrigin-Name: 01828dc7d2aa4bc8a78bc23a35d104953f744258add9011fefae769cf58acbaf --- kiss | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'kiss') diff --git a/kiss b/kiss index 214a037..66daefd 100755 --- a/kiss +++ b/kiss @@ -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() { -- cgit v1.2.3