49 lines
2.0 KiB
Bash
Executable File
49 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
branchges=$(git br -a | grep remotes | grep -v "remotes/origin/HEAD" | wc -l)
|
|
branchcounter=0
|
|
activebranch="$(git branch | grep "\*" | awk '{print $2}')"
|
|
|
|
PUT(){ echo -en "\033[${1};${2}H";}
|
|
DRAW(){ echo -en "\033%";echo -en "\033(0";}
|
|
WRITE(){ echo -en "\033(B";}
|
|
HIDECURSOR(){ echo -en "\033[?25l";}
|
|
NORM(){ echo -en "\033[?12l\033[?25h";}
|
|
function showBar {
|
|
percDone=$(echo 'scale=2;'$1/$2*100 | bc)
|
|
halfDone=$(echo $percDone/2 | bc) #I prefer a half sized bar graph
|
|
barLen=$(echo ${percDone%'.00'})
|
|
halfDone=`expr $halfDone + 6`
|
|
tput bold
|
|
PUT 6 28; printf "%4.4s " $barLen% #Print the percentage
|
|
PUT 5 $halfDone; echo -e "\033[7m \033[0m" #Draw the bar
|
|
PUT 4 15; printf "%8.8s " "$3" #Print the percentage
|
|
PUT 4 40; printf "%8.8s " "$4" #Print the percentage
|
|
tput sgr0
|
|
}
|
|
# Start Script
|
|
clear
|
|
HIDECURSOR
|
|
echo -e ""
|
|
echo -e ""
|
|
echo -e " GIT UPDATE BRANCHES IS RUNNING"
|
|
DRAW #magic starts here - must use caps in draw mode
|
|
echo -e " lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk"
|
|
echo -e " x x"
|
|
echo -e " mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj"
|
|
WRITE
|
|
|
|
for f in $(git br -a | grep remotes | grep -v "remotes/origin/HEAD" | awk '{print $1}' | cut -f3 -d\/)
|
|
do
|
|
#echo "Updateing[${branchcounter}/${branchges}]: ${f}"
|
|
showBar ${branchcounter} ${branchges} ${f} "[$((${branchcounter} + 1))/${branchges}]" #Call bar drawing function "showBar"
|
|
git checkout "${f}" --quiet && git pull --rebase origin "${f}" --quiet >/dev/null 2>&1
|
|
branchcounter=$((${branchcounter} + 1))
|
|
#showBar ${branchcounter} ${branchges} ${f} "[$((${branchcounter} + 1))/${branchges}]" #Call bar drawing function "showBar"
|
|
done
|
|
showBar ${branchcounter} ${branchges} ${f} "[${branchcounter}/${branchges}]" #Call bar drawing function "showBar"
|
|
git checkout "${activebranch}" --quiet
|
|
|
|
PUT 10 12
|
|
echo -e ""
|
|
NORM
|