#!/bin/sh home=$(echo $HOME | sed 's/\//\\\//g') repos="$(grep -v '#' | sed "s/\~/$home/")" << REPOS blr|~/.local/src/programs/blr dmenu|~/.local/src/programs/dmenu dotconfig|~/.config scripts|~/.local/bin st|~/.local/src/programs/st timmywm|~/.local/src/programs/timmywm REPOS #echo "$repos" | cut -f1 # Colors BOLD="\033[1m" NORM="\033[0m" CYN="\033[0;36m" RED="\033[0;31m" GRN="\033[0;32m" MAG="\033[0;35m" for repo in $repos; do name=$(echo $repo | cut -d'|' -f1) dir=$(echo $repo | cut -d'|' -f2) if cd $dir 2>/dev/null; then if git diff --quiet HEAD $REF -- $DIR; then echo "$GRN[Repo $name is unchanged!]$NORM" else echo "$CYN[Repo $name has changed:]$NORM" git status | grep -v '(use' read -p "Would you like to view the changes? [y/n]: " viewchange case $viewchange in y|yes|Y|Yes) git diff HEAD $REF -- $DIR ;; esac read -p "Would you like to push these changes? [y/n]: " pushchange case $pushchange in y|yes|Y|Yes) while [ -z "$commitmsg" ]; do read -p "Enter a commit message: " commitmsg done git add . && git commit -m "$commitmsg" && git push \ && echo "$GRN[Changes to repo $name successfully pushed!]$NORM" \ || echo "$RED[An error occured while pushing changes to repo $name!]$NORM" ;; esac fi else echo "$BOLD$RED[Repo $name does not exist at $dir!]$NORM" fi done