From 712c19c9cba23facfe696aff5396fce3955bff58 Mon Sep 17 00:00:00 2001 From: Luke Murphy Date: Wed, 4 Nov 2020 01:44:24 +0100 Subject: [PATCH] Get working search/replace logic --- scripts/replace.sh | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/scripts/replace.sh b/scripts/replace.sh index 8f7873e..902fd1a 100755 --- a/scripts/replace.sh +++ b/scripts/replace.sh @@ -1,23 +1,37 @@ #!/usr/bin/env bash -GIT=/usr/bin/git +# Usage: ./replace.sh FOO BAR SEARCH_PATTERN="$1" REPLACE_PATTERN="$2" -grep -l -R "$SEARCH_PATTERN" "$HOME/.abra/apps" | xargs \ - sed -i "s/$SEARCH_PATTERN/$REPLACE_PATTERN/g" +if [ -z "$SEARCH_PATTERN" ]; then + echo "missing SEARCH_PATTERN argument" + exit 1 +fi + +if [ -z "$REPLACE_PATTERN" ]; then + echo "missing REPLACE_PATTERN argument" + exit 1 +fi + +grep -l -R "$SEARCH_PATTERN" "$HOME/.abra/apps" \ + | xargs sed -i "s/$SEARCH_PATTERN/$REPLACE_PATTERN/g" \ + > /dev/null 2>&1 for d in $(ls "$HOME/.abra/apps/"); do - PATH="$HOME/.abra/apps/$d" - - cd "$PATH" - - if ! "$GIT" diff-index --quiet HEAD --; then - "$GIT" add . - "$GIT" commit -m "Gardening: s/$SEARCH_PATTERN/$REPLACE_PATTERN/g" - "$GIT" push $(git rev-parse --symbolic-full-name --abbrev-ref HEAD) # current branch, git... + cd "$HOME/.abra/apps/$d" + if ! git diff --quiet --exit-code; then + git diff + git status -sb + read -rp "Commit changes for $d? (y/[n])? " choice + case "$choice" in + y|Y ) ;; + n|N ) continue;; + * ) continue;; + esac + git add . + git commit -m "Gardening: s/$SEARCH_PATTERN/$REPLACE_PATTERN/g" + git push origin $(git branch --quiet | cut -d' ' -f2-) fi - - cd - done