Add submodule_update.sh
Signed-off-by: Severin Kaderli <severin.kaderli@gmail.com>
This commit is contained in:
parent
0d3fdb8737
commit
d5ce061fa9
2 changed files with 64 additions and 1 deletions
52
system/bin/submodule_update.sh
Executable file
52
system/bin/submodule_update.sh
Executable 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
|
|
@ -43,12 +43,23 @@ function print_header() {
|
||||||
|
|
||||||
# Function to print a info message with the current time and to send
|
# Function to print a info message with the current time and to send
|
||||||
# a notification using notify-send.
|
# a notification using notify-send.
|
||||||
# USAGE: print_info TITLE MESSAGE
|
# USAGE: print_log TITLE MESSAGE
|
||||||
function print_log() {
|
function print_log() {
|
||||||
notify-send "${1}" "${2}"
|
notify-send "${1}" "${2}"
|
||||||
echo -e "${YELLOW}[$(date "+%H:%M:%S")] ${1} ${2}${RESET}"
|
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
|
# Creates the given directory in the home directory
|
||||||
# USAGE: create_directory DIRECTORY
|
# USAGE: create_directory DIRECTORY
|
||||||
function create_directory() {
|
function create_directory() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue