#!/bin/bash #value=`cat config.txt` #echo "$value" WORKSPACE="$HOME/workspace/projects" if [ ! -e $WORKSPACE ]; then mkdir -p $WORKSPACE fi saveIFS="$IFS" IFS=$'\n' GRPS=($(<~/.git_groups)) IFS="$saveIFS" for GRP in "${GRPS[@]}"; do if [ ! -e $WORKSPACE/$GRP ]; then mkdir $WORKSPACE/$GRP elif [ -f $WORKSPACE/$GRP ]; then echo -e "[\e[31mX\e[0m] Group directory already exists as file: $WORKSPACE/$GRP" exit 1 fi if [ -e ~/.git_group_$GRP ]; then saveIFS="$IFS" IFS=$'\n' REPOS=($(<~/.git_group_$GRP)) IFS="$saveIFS" for REPO in "${REPOS[@]}"; do cd $WORKSPACE/$GRP REPODIR=$(basename "$REPO") #extension="${filename##*.}" REPODIR="${REPODIR%.*}" if [ -e $REPODIR ]; then cd $REPODIR #git diff --quiet || echo "[c] skipping" git diff --quiet if [ $? > 0 ]; then echo -e "[\e[31mX\e[0m] $GRP/$REPODIR changed - $WORKSPACE/$GRP/$REPO" else echo -e "[\e[32mU\e[0m] $GRP/$REPODIR" #git pull fi else #git clone $REPO echo -e "[\e[33mC\e[0m] $GRP/$REPODIR" fi done else echo -e "[\e[31mX\e[0m] Group config file ~/.git_group_$GRP not found" fi done