dotfiles/bin/move_bazel_rule.sh

32 lines
875 B
Bash
Executable file

#!/bin/bash
set -e
if [ -z "$1" ]; then
cat << EOF
Usages:
$0 NEW_BAZEL_FILE
Search for BUILD targets with these names in the git repo
$0 NEW_BAZEL_FILE FIXUP_BAZEL_FILE
Find instances of the BUILD targets in the to-be-fixed-file
$0 NEW_BAZEL_FILE FIXUP_BAZEL_FILE PREFIX
Find instances of that BUILD target with an old prefix (eg: '//:')
$0 NEW_BAZEL_FILE FIXUP_BAZEL_FILE PREFIX NEW_PREFIX
Apply the NEW_PREFIX (eg, a package move) in place of the PREFIX in the FIXUP file.
EOF
exit
fi
INCOMING_SET=$(grep "name" $1 | cut -d '"' -f 2)
TO_CHANGE=$2
PREVIOUS_PATH=$3
NEW_PATH=$4
for TARGET in $INCOMING_SET; do
if [ -n "$TO_CHANGE" ]; then
grep ${PREVIOUS_PATH}${TARGET} $TO_CHANGE
if [ -n "$NEW_PATH" ]; then
sed -i "s^${PREVIOUS_PATH}${TARGET}^${NEW_PATH}${TARGET}^g" $TO_CHANGE
fi
else
git grep ${TARGET}
fi
done