Get working search/replace logic
This commit is contained in:
parent
3c51bd89ad
commit
712c19c9cb
|
@ -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
|
||||
|
|
Reference in New Issue