upd: check if working tree is dirty

This commit is contained in:
PowerUser64 2022-10-04 17:53:42 -07:00
parent a0d65d64fd
commit 0f2eae6e63

View file

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
set -e set -eu
# Check for git # Check for git
if ! command -v git > /dev/null; then if ! command -v git > /dev/null; then
@ -10,25 +10,36 @@ fi
# Set colors # Set colors
if command -v tput > /dev/null; then if command -v tput > /dev/null; then
YELLOW="$(tput setaf 3)"
GREEN="$(tput setaf 2)" GREEN="$(tput setaf 2)"
NC="$(tput sgr0)" NC="$(tput sgr0)"
elif [ -n "$TERMUX_VERSION" ]; then elif [ -n "$TERMUX_VERSION" ]; then
YELLOW=""
GREEN="" GREEN=""
NC="(B" NC="(B"
fi fi
# Avoiding copy pasting this over and over
g() { git -C "$REPO" "$@"; }
# shellcheck disable=SC2016
REPO_ABBR='echo ${REPO/"$HOME"/"~"}'
# `git pull` everything mentioned in the REPOS_TO_UPDATE variable # `git pull` everything mentioned in the REPOS_TO_UPDATE variable
IFS=: read -ra REPOS_TO_UPDATE_ARR <<< "$REPOS_TO_UPDATE:$DOCS_DIR:$HOME/bin" IFS=: read -ra REPOS_TO_UPDATE_ARR <<< "${REPOS_TO_UPDATE:-}:$DOCS_DIR:$HOME/bin"
for REPO in "${REPOS_TO_UPDATE_ARR[@]}"; do for REPO in "${REPOS_TO_UPDATE_ARR[@]}"; do
if [ -n "$REPO" ]; then if [ -n "$REPO" ]; then
if git -C "$REPO" rev-parse > /dev/null 2>&1; then if g rev-parse > /dev/null 2>&1; then
echo " ${GREEN}Pulling ${REPO/"$HOME"/"~"}‥${NC}" echo " ${GREEN}Pulling $(eval "$REPO_ABBR")‥${NC}"
git -C "$REPO" pull g pull
g diff --quiet || echo "${YELLOW}Warning: Working tree for $(eval "$REPO_ABBR") is dirty${NC}"
fi fi
fi fi
UPDATED_STUFF=true
done done
# check for dotfiles updates # check for dotfiles updates
echo ${UPDATED_STUFF:-false} && echo
echo " ${GREEN}Updating dotfiles…${NC}" echo " ${GREEN}Updating dotfiles…${NC}"
dotfiles pull dotfiles pull
dotfiles diff --quiet || echo "${YELLOW}Warning: Working tree for dotfiles is dirty${NC}"