39 lines
838 B
Bash
39 lines
838 B
Bash
#!/bin/bash
|
|
|
|
function look_for_update() {
|
|
if [[ $1 == ./.git ]] || [[ $1 == "." ]]; then
|
|
echo "Ignore $1"
|
|
return
|
|
fi
|
|
WithoutPrefix=$(echo -n $1 | cut -c 2-)
|
|
if grep -qx "$WithoutPrefix" .gitignore; then
|
|
echo "Ignore $1, because it's in .gitignore"
|
|
return
|
|
fi
|
|
printf -v FolderNameEscaped '%q' "$1"
|
|
if [[ -f $1/update.sh ]]; then
|
|
echo "Switch to subdir $1 and run update.sh"
|
|
cd "$1"
|
|
git pull
|
|
bash -c "./update.sh nobreak"
|
|
else
|
|
if [[ -f $1/.git ]]
|
|
then
|
|
echo "Pull $1"
|
|
cd "$1"
|
|
git pull
|
|
else
|
|
echo "Checkout master for $1"
|
|
git submodule update --init -- "$1"
|
|
cd "$1"
|
|
git checkout master
|
|
fi
|
|
fi
|
|
}
|
|
|
|
export -f look_for_update
|
|
find . -maxdepth 1 -type d -exec bash -c 'look_for_update "$0"' {} \;
|
|
|
|
if [ -z $1 ]; then
|
|
read -p "Press return"
|
|
fi |