From 8bf2a805b2f8494485d8edc7bbcde345cbbd26c5 Mon Sep 17 00:00:00 2001 From: "dylan.araps@gmail.com" Date: Tue, 28 Jan 2020 21:06:19 +0000 Subject: kiss: avoid sed -i FossilOrigin-Name: 37f917404e7bfc5a6ce0c7173bbd91d6db7a9815f04369ecceb6cc29c78dfceb --- kiss | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/kiss b/kiss index 52a2252..c5ec626 100755 --- a/kiss +++ b/kiss @@ -826,11 +826,12 @@ pkg_conflicts() { "$tar_dir/$p_name/$cho_dir/$p_name$con_name" regex_escape "$con" "/$cho_dir/$p_name$con_name" + mani=$tar_dir/$p_name/$pkg_db/$p_name/manifest # Rewrite the package's manifest to update its location # to its new spot (and name) in the choices directory. - sed -i "s/^$sea\$/$rep/" \ - "$tar_dir/$p_name/$pkg_db/$p_name/manifest" + sed "s/^$sea\$/$rep/" "$mani" > "$mani.1" + mv -f "$mani.1" "$mani" done else if "$grep" -Fxf "$cac_dir/$pid-m" -- "$@"; then @@ -872,19 +873,23 @@ pkg_swap() { log "Swapping '$2' from '$pkg_owns' to '$1'" regex_escape "$2" "$PWD/$pkg_owns>${alt#*>}" + mani=${PWD%/*}/installed/$pkg_owns/manifest # Convert the current owner to an alternative and rewrite # its manifest file to reflect this. dosu cp -f "'$2'" "'$pkg_owns>${alt#*>}'" - dosu sed -i "'s/^$sea\$/$rep/'" "'../installed/$pkg_owns/manifest'" + dosu sed "'s/^$sea\$/$rep/'" \ + "'$mani' > '$mani.1' && mv -f '$mani.1' '$mani'" fi regex_escape "$PWD/$alt" "$2" + mani=${PWD%/*}/installed/$1/manifest # Convert the desired alternative to a real file and rewrite # the manifest file to reflect this. The reverse of above. dosu mv -f "'$alt'" "'$2'" - dosu sed -i "'s/^$sea\$/$rep/'" "'../installed/$1/manifest'" + dosu sed "'s/^$sea\$/$rep/'" \ + "'$mani' > '$mani.1' && mv -f '$mani.1' '$mani'" } pkg_remove() { -- cgit v1.2.3