feat: added stater script
parent
df4c383c3f
commit
058c2daa48
@ -0,0 +1,90 @@
|
||||
#!/bin/bash
|
||||
|
||||
blue='\033[0;34m'
|
||||
cyan='\033[0;36m'
|
||||
nc="\033[0m" # no color
|
||||
|
||||
HELP=$(
|
||||
cat <<EOF
|
||||
|
||||
This script helps one check if the remotes have had any changes and do something about it.
|
||||
Useful if one has a bunch of repos.
|
||||
|
||||
Usages:
|
||||
#0: ${0} <flag(s)>
|
||||
Arguments:
|
||||
-h,--help,-?,? See this message.
|
||||
-v,--verbose Print verbose output in case remotes have had changes.
|
||||
-p,--pull Pull all changes from all remotes (if any).
|
||||
-f,--resources Copies general resources like images.
|
||||
EOF
|
||||
)
|
||||
|
||||
function parse_args() {
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "${1}" in
|
||||
-v | --verbose)
|
||||
verbose=true
|
||||
shift 1
|
||||
;;
|
||||
-p | --pull)
|
||||
pull=true
|
||||
shift 1
|
||||
;;
|
||||
-f | --force)
|
||||
force=true
|
||||
shift 1
|
||||
;;
|
||||
-h | --help | -? | ?)
|
||||
printf "%s\n" "$HELP"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
printf "Try '%s --help' for more information\n" "${0}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
function perform() {
|
||||
for file in *; do
|
||||
[[ -d ${file} ]] && {
|
||||
printf "${blue}Checking ${cyan}%s${nc}...\t\t" "${file}"
|
||||
diff_sum="$(git -C ${file} diff --compact-summary origin/main)"
|
||||
|
||||
[[ ${?} == 0 ]] && {
|
||||
state="🟢"
|
||||
if [[ ${diff_sum} != "" ]]; then
|
||||
state="🔴"
|
||||
if [[ ${verbose} == "true" ]]; then state="\\n${diff_sum}"; fi
|
||||
fi
|
||||
|
||||
printf "${state}\n"
|
||||
|
||||
[[ ${pull} == "true" ]] && {
|
||||
if [[ $(git -C ${file} status --porcelain) ]]; then
|
||||
if [[ "force" == "true" ]]; then
|
||||
printf "\n-->Force pulling updates...\n"
|
||||
git -C "${file}" fetch --all
|
||||
git -C "${file}" reset --hard
|
||||
else
|
||||
printf "\n-->Pulling updates...\n"
|
||||
git -C "${file}" pull --all
|
||||
fi
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
done
|
||||
}
|
||||
|
||||
main() {
|
||||
if [[ "$#" -gt 0 ]]; then
|
||||
parse_args "$@"
|
||||
fi
|
||||
perform
|
||||
}
|
||||
|
||||
main "$@"
|
Loading…
Reference in New Issue