Add submodule_update.sh

Signed-off-by: Severin Kaderli <severin.kaderli@gmail.com>
This commit is contained in:
Severin Kaderli 2018-12-20 00:28:41 +01:00
parent 0d3fdb8737
commit d5ce061fa9
2 changed files with 64 additions and 1 deletions

52
system/bin/submodule_update.sh Executable file
View file

@ -0,0 +1,52 @@
#!/bin/bash
#
# SCRIPT NAME:
# submodule_update.sh
#
# AUTHOR:
# Severin Kaderli <severin.kaderli@gmail.com>
#
# DESCRIPTION:
# Updates the submodules in all Git repositories in this folder and creates a
# new commit and pushes it. Only when there are no staged changes pending.
#
# USAGE:
# ./submodule_update.sh
. utils.sh
START_DIR=$(pwd)
for dir in $(find . -name .git -type d -prune)
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

View file

@ -43,12 +43,23 @@ function print_header() {
# Function to print a info message with the current time and to send
# a notification using notify-send.
# USAGE: print_info TITLE MESSAGE
# USAGE: print_log TITLE MESSAGE
function print_log() {
notify-send "${1}" "${2}"
echo -e "${YELLOW}[$(date "+%H:%M:%S")] ${1} ${2}${RESET}"
}
# Prints a section title.
# USAGE: print_section TITLE
function print_section() {
echo -e "${YELLOW}${1}"
echo -e "----------------------------------------${RESET}"
}
function print_log() {
echo -e "- $1"
}
# Creates the given directory in the home directory
# USAGE: create_directory DIRECTORY
function create_directory() {