42 lines
775 B
Bash
42 lines
775 B
Bash
|
#!/bin/bash
|
||
|
|
||
|
# Update all git directories below current directory or specified directory
|
||
|
|
||
|
# Skips directories that contain a file called .ignore
|
||
|
|
||
|
HIGHLIGHT="\e[01;34m"
|
||
|
NORMAL='\e[00m'
|
||
|
|
||
|
function update {
|
||
|
local d="$1"
|
||
|
if [ -d "$d" ]; then
|
||
|
if [ -e "$d/.ignore" ]; then
|
||
|
echo -e "\n${HIGHLIGHT}Ignoring $d${NORMAL}"
|
||
|
else
|
||
|
cd $d > /dev/null
|
||
|
if [ -d ".git" ]; then
|
||
|
echo -e "\n${HIGHLIGHT}Updating pwd$NORMAL"
|
||
|
git add .
|
||
|
git stash
|
||
|
git pull
|
||
|
else
|
||
|
scan *
|
||
|
fi
|
||
|
cd .. > /dev/null
|
||
|
fi
|
||
|
fi
|
||
|
#echo "Exiting update: pwd=pwd"
|
||
|
}
|
||
|
|
||
|
function scan {
|
||
|
#echo "pwd"
|
||
|
for x in $*; do
|
||
|
update "$x"
|
||
|
done
|
||
|
}
|
||
|
|
||
|
if [ "$1" != "" ]; then cd $1 > /dev/null; fi
|
||
|
|
||
|
echo -e "${HIGHLIGHT}Scanning ${PWD}${NORMAL}"
|
||
|
scan *
|