Get working search/replace logic

This commit is contained in:
Luke Murphy 2020-11-04 01:44:24 +01:00
parent 3c51bd89ad
commit 712c19c9cb
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC
1 changed files with 27 additions and 13 deletions

View File

@ -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