#!@bash@/bin/bash eval "$(pass show work/shell-scripts/secrets)" LIST_PROJECTS="/_apis/projects?api-version=7.1-preview.4" AUTH_HEADER="Authorization: Basic $WORK_AZDO_GIT_AUTH" LIST_REPOSITORIES="/_apis/git/repositories?api-version=7.1-preview.1" GIT_DIR="$HOME/projects/" if [ ! -d $GIT_DIR ]; then mkdir -p $GIT_DIR fi MAX_REPOS=20 COUNT=$(find "$GIT_DIR" -mindepth 1 -maxdepth 1 -type d | wc -l) if [ "$COUNT" -gt "$MAX_REPOS" ] then STALE=$(( COUNT - MAX_REPOS )) OLDEST=$(find "$GIT_DIR" -mindepth 1 -maxdepth 1 -type d -printf '%T@ %p\n' 2>/dev/null \ | sort -n | head -n$STALE | cut -d' ' -f2) for dir in $OLDEST do rm -i -r $dir done fi echo "curl -s -H \"$AUTH_HEADER\" $WORK_AZDO_GIT_ORG_URL$LIST_PROJECTS" PROJECT=$(curl -s -H "$AUTH_HEADER" $WORK_AZDO_GIT_ORG_URL$LIST_PROJECTS \ | jq ' .value[].name ' \ | xargs -I{} bash -c " curl -s -H '$AUTH_HEADER' $WORK_AZDO_GIT_ORG_URL/{}$LIST_REPOSITORIES \ | jq ' .value[].name ' \ | awk '{ gsub(/\"/, \"\", \$1); printf \"{}/_git/%s\\n\", \$1 }' " \ | fzf) DEST_DIR="$GIT_DIR/$(echo $PROJECT | cut -d '/' -f3)" if [ ! -d $DEST_DIR ] then git clone $WORK_AZDO_GIT_ORG_URL/$PROJECT $DEST_DIR fi cd $DEST_DIR $EDITOR