#!/usr/bin/env bash set -euo pipefail if [ ! -d "$HOME/GitProjects" ]; then mkdir "$HOME/GitProjects" fi WORKPATH="$HOME/GitProjects" readarray -t dirs < <(find "$WORKPATH" -mindepth 1 -maxdepth 1 -type d -printf '%P\n') for dir in "${dirs[@]}"; do # go into GitProjects directory cd "$WORKPATH" # output directory you're currently working on printf "Working on ${dir}\n" # change into that directory cd "$dir" # try to check out master or main branch git checkout -q master \ || git checkout -q main git fetch --all git pull done exit 0