cpt

[ARCHIVED] Carbs Packaging Tools
git clone git://git.ckyln.com/~cem/cpt.git
Log | Files | Refs | README | LICENSE

commit 5cd52ccd1bb4b5187c4cae1aac7c29fe69044c8d
parent 5e7341cb6a8a31743ced6889c0c3c59f63621c08
Author: Dylan Araps <dylan.araps@gmail.com>
Date:   Wed,  6 May 2020 22:31:54 +0300

kiss: Faster conflict resolution.

Diffstat:
Mkiss | 14+++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/kiss b/kiss @@ -828,17 +828,21 @@ pkg_conflicts() { # with the installation. [ "$1" ] && [ -f "$1" ] || return 0 + # Store the list of found conflicts in a file as we will be using the + # information multiple times. Storing it in the cache dir allows us + # to be lazy as they'll be automatically removed on script end. + "$grep" -Fxf "$cac_dir/$pid-m" -- "$@" > "$cac_dir/$pid-c" ||: + + # Enable alternatives automatically if it is safe to do so. # This checks to see that the package that is about to be installed # doesn't overwrite anything it shouldn't in '/var/db/kiss/installed'. - "$grep" -Fxf "$cac_dir/$pid-m" -- "$@" | - "$grep" -q ":/var/db/kiss/installed/" || choice_auto=1 + "$grep" -q ":/var/db/kiss/installed/" "$cac_dir/$pid-c" || choice_auto=1 # Use 'grep' to list matching lines between the to # be installed package's manifest and the above filtered # list. if [ "$KISS_CHOICE" != 0 ] && [ "$choice_auto" = 1 ]; then - "$grep" -Fxf "$cac_dir/$pid-m" -- "$@" | # This is a novel way of offering an "alternatives" system. # It is entirely dynamic and all "choices" are created and @@ -883,13 +887,13 @@ pkg_conflicts() { log "this must be fixed in $p_name. Contact the maintainer" die "by checking 'git log' or by running 'kiss-maintainer'" } - done + done < "$cac_dir/$pid-c" # Rewrite the package's manifest to update its location # to its new spot (and name) in the choices directory. pkg_manifest "$p_name" "$tar_dir" 2>/dev/null - elif "$grep" -Fxf "$cac_dir/$pid-m" -- "$@"; then + elif [ -s "$cac_dir/$pid-c" ]; then log "Package '$p_name' conflicts with another package" "" "!>" log "Run 'KISS_CHOICE=1 kiss i $p_name' to add conflicts" "" "!>" die "as alternatives."