Files
hda-cms/tasks.sh
2025-03-19 13:25:09 +01:00

61 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env zsh
CMDNAME=$0
SUBMODULES=("Apps/Directus CMS")
exit_with_msg() {
local msg=$1 code=$2
echo $msg >&2
exit $code
}
is_clean_git_workspace() {
git diff-index --quiet HEAD
}
commit_submodule_changes() {
# REQUIRES submodule to be a valid variable.
git add .
git commit -m "chore(${submodule:t}): Pull remote changes"
}
update_submodules() {
local submodule
for submodule in ${SUBMODULES}; do
[[ ! -d $submodule ]] && continue
echo ">> Updating submodule ${submodule}"
pushd -q $submodule
git pull --rebase
popd -q
is_clean_git_workspace && continue
commit_submodule_changes
done
}
show_help() {
cat <<- HELPMSG
$CMDNAME [command]
Task manager for HDA - CMS monorepo.
Commands
start: Run daily chores like pulling upstream changes and updating
submodules.
HELPMSG
}
main() {
local CMD=$1
case $CMD in
start)
is_clean_git_workspace || exit_with_msg "Please clean workspace before running command" 10
update_submodules
;;
*)
show_help
;;
esac
}
main $*