From 1cac0fc4205b78995d5fff32fa4a002c4232be5d Mon Sep 17 00:00:00 2001
From: merakor <cem@ckyln.com>
Date: Fri, 8 May 2020 20:56:20 +0000
Subject: kiss: sort manifest during pkg_swap

Issues may arise during package removal, and there may be leftover
files if we don't reverse sort the manifest when we are swapping
files around.

FossilOrigin-Name: a43039025ea2c6f0cf1989fd2a683cf3916926aa2396fc00a44c824679188632
---
 kiss | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/kiss b/kiss
index 91e28b3..7305269 100755
--- a/kiss
+++ b/kiss
@@ -928,21 +928,19 @@ pkg_swap() {
         log "Swapping '$2' from '$pkg_owns' to '$1'"
 
         # Convert the current owner to an alternative and rewrite
-        # its manifest file to reflect this.
+        # its manifest file to reflect this. We then resort this file
+        # so no issues arise when removing packages.
         cp  -Pf "$2" "$pkg_owns>${alt#*>}"
         sed "$(esc "$2" "$PWD/$pkg_owns>${alt#*>}")" \
-            "../installed/$pkg_owns/manifest" > \
-            "../installed/$pkg_owns/manifest.tmp"
-        mv -f "../installed/$pkg_owns/manifest.tmp" \
-            "../installed/$pkg_owns/manifest"
+            "../installed/$pkg_owns/manifest" |
+            sort -r -o "../installed/$pkg_owns/manifest"
     fi
 
     # Convert the desired alternative to a real file and rewrite
     # the manifest file to reflect this. The reverse of above.
     mv  -f "$alt" "$2"
-    sed "$(esc "$PWD/$alt" "$2")" "../installed/$1/manifest" > \
-        "../installed/$1/manifest.tmp"
-    mv -f "../installed/$1/manifest.tmp" "../installed/$1/manifest"
+    sed "$(esc "$PWD/$alt" "$2")" "../installed/$1/manifest" |
+        sort -r -o "../installed/$pkg_owns/manifest"
 }
 
 pkg_etc() {
-- 
cgit v1.2.3