From f7514bebbfdefdc7e04e06851eaaf1ac810b8d53 Mon Sep 17 00:00:00 2001 From: spacewander Date: Mon, 7 May 2018 15:18:28 +0800 Subject: [PATCH] git-sed: fix previous bsd sed workaround --- bin/git-sed | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/bin/git-sed b/bin/git-sed index bcbea9c..98a431a 100755 --- a/bin/git-sed +++ b/bin/git-sed @@ -83,10 +83,13 @@ case "$all" in esac r=$(xargs -r false < /dev/null > /dev/null 2>&1 && echo r) -ext=$(sed -i s/hello/world/ "$(git_extra_mktemp)" > /dev/null 2>&1 || echo '""') +need_bak=$(sed -i s/hello/world/ "$(git_extra_mktemp)" > /dev/null 2>&1 || echo true) -command="git grep -lz '$search' | xargs -0$r sed -i $ext 's$sep$search$sep$replacement$sep$flags'" -# $ext need to be unquoted -# shellcheck disable=SC2086 -git grep -lz "$search" | xargs -0"$r" sed -i $ext "s$sep$search$sep$replacement$sep$flags" +if [ "$need_bak" ]; then + command="git grep -lz '$search' | xargs -0$r sed -i '' 's$sep$search$sep$replacement$sep$flags'" + git grep -lz "$search" | xargs -0"$r" sed -i '' "s$sep$search$sep$replacement$sep$flags" +else + command="git grep -lz '$search' | xargs -0$r sed -i 's$sep$search$sep$replacement$sep$flags'" + git grep -lz "$search" | xargs -0"$r" sed -i "s$sep$search$sep$replacement$sep$flags" +fi do_commit