Projects/update.sh
2020-09-16 16:23:19 +02:00

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