From 9ad8bbc55527c8d5eb10f7b3f88326a8b6c1a018 Mon Sep 17 00:00:00 2001 From: "dylan.araps@gmail.com" Date: Thu, 6 Feb 2020 12:20:01 +0000 Subject: kiss: simplify install FossilOrigin-Name: 2190250a56fec429dfa8e7bc4b4eb4b6cfdba2c3d36396d2a16e2ad2be930a87 --- kiss | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) (limited to 'kiss') diff --git a/kiss b/kiss index 4c717b2..7554f2c 100755 --- a/kiss +++ b/kiss @@ -939,7 +939,7 @@ pkg_install() { # If the package is already installed (and this is an upgrade) make a # backup of the manifest file. - old_manifest=$(cat "$sys_db/$pkg_name/manifest" 2>/dev/null ||:) + cp -f "$sys_db/$pkg_name/manifest" "$mak_dir/m" 2>/dev/null ||: # This is repeated multiple times. Better to make it a function. pkg_rsync() { @@ -987,35 +987,30 @@ pkg_install() { ) # Remove any leftover files if this is an upgrade. - [ "$old_manifest" ] && { - printf '%s\n' "$old_manifest" | - "$grep" -vFxf "$sys_db/$pkg_name/manifest" - | - - while read -r file; do - # Skip deleting some leftover files. - case $file in - /etc/*|*bin/rm|*bin/busybox|*bin/rsync) continue - esac + "$grep" -vFxf "$sys_db/$pkg_name/manifest" "$mak_dir/m" 2>/dev/null | - file=$KISS_ROOT/$file + while read -r file; do + file=$KISS_ROOT/$file - # Remove files. - if [ -f "$file" ] && [ ! -L "$file" ]; then - rm -f "$file" + # Skip deleting some leftover files. + case $file in /etc/*) continue; esac - # Remove file symlinks. - elif [ -L "$file" ] && [ ! -d "$file" ]; then - unlink "$file" ||: + # Remove files. + if [ -f "$file" ] && [ ! -L "$file" ]; then + rm -f "$file" - # Skip directory symlinks. - elif [ -L "$file" ] && [ -d "$file" ]; then : + # Remove file symlinks. + elif [ -L "$file" ] && [ ! -d "$file" ]; then + unlink "$file" ||: - # Remove directories if empty. - elif [ -d "$file" ]; then - rmdir "$file" 2>/dev/null ||: - fi - done ||: - } + # Skip directory symlinks. + elif [ -L "$file" ] && [ -d "$file" ]; then : + + # Remove directories if empty. + elif [ -d "$file" ]; then + rmdir "$file" 2>/dev/null ||: + fi + done ||: # Install the package again to fix any non-leftover files being # removed above. -- cgit v1.2.3