40 lines
943 B
Bash
Executable file
40 lines
943 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
. utils
|
|
|
|
START_DIR=$(pwd)
|
|
|
|
while IFS= read -r -d '' dir
|
|
do
|
|
cd "$dir" || exit 1
|
|
cd .. || exit 1
|
|
print_section "Checking $(pwd)"
|
|
|
|
if [ -z "$(git status --porcelain)" ]
|
|
then
|
|
print_log "No pending changes"
|
|
print_log "Updating submodules"
|
|
git pl > /dev/null 2>&1
|
|
|
|
# Check if any changes are available
|
|
if [ -z "$(git status --porcelain)" ]
|
|
then
|
|
print_log "No updates found"
|
|
else
|
|
print_log "Updates found"
|
|
print_log "Creating commit"
|
|
git a > /dev/null 2>&1
|
|
git c -m "Update submodules" > /dev/null 2>&1
|
|
print_log "Pushing commit"
|
|
git p > /dev/null 2>&1
|
|
print_log "Commit was pushed"
|
|
fi
|
|
else
|
|
print_log "Pending changes. Ignoring"
|
|
fi
|
|
|
|
echo -e ""
|
|
|
|
cd "${START_DIR}" || exit 1
|
|
|
|
done < <(find . -name .git -type d -prune -print0)
|