-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.sh
More file actions
executable file
·92 lines (84 loc) · 2.35 KB
/
script.sh
File metadata and controls
executable file
·92 lines (84 loc) · 2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/bin/bash
function load_white_list(){
ramas=""
if [ $(git config --get $1.lista.blanca)!="" ]; then
ramas=$(git config --get $1.lista.blanca)
fi
echo $ramas
}
function load_black_list(){
ramas=""
if [ $(git config --get $1.lista.negra)!="" ]; then
ramas=$(git config --get $1.lista.negra)
fi
echo $ramas
}
function update_all_branchs(){
echo "Updating all branchs from remote..."
git remote update --prune
#Pull from all remote branches
for brname in `git branch -r | grep -v HEAD `; do
echo "Updating ${brname/\// }..."
CBRANCH=`echo $brname | sed -e 's/.*\///g'`
git checkout $CBRANCH
git pull ${brname/\// }
done
git checkout $BRANCH
}
function update_branchs(){
echo $1 $2 $3 $4
if [ "$1" = "pullall" ]; then
for brname in `git branch -r | grep -v HEAD `; do
CBRANCH=`echo $brname | sed -e 's/.*\///g'`
echo $CBRANCH
i=2
#while [ $i -lt $# ]; do
for i in "$@"; do
echo "entra $CBRANCH $i $#"
if [ "$CBRANCH" == "$i" ]; then
echo "Pulling from ${brname/\// }..."
git checkout $CBRANCH
git pull $brname $i
fi
((i++))
done
done
fi
}
lista_def[0]=""
declare -a blanca
if [ $(git config --get pullall.default)=="" ];then
lista_blanca=$(load_white_list pullall)
lista_negra=$(load_black_list pullall)
if [ "$lista_blanca" = "" ] && [ "$lista_negra" = "" ]; then
update_all_branchs
exit 1
elif [ "$lista_blanca" != "" ] && [ "$lista_negra" != "" ]; then
b=1
condicion_blanca=$(echo $lista_blanca| cut -d "," -f$b)
while [ "$condicion_blanca" != "" ]; do
blanca[$b]=$condicion_blanca
((b++))
condicion_blanca=$(echo $lista_blanca| cut -d "," -f$b)
done
for i in "${blanca[@]}"; do
echo $i
done
elif [ "$lista_blanca" != "" ] && ["$lista_negra" = "" ]; then
lista_def=$lista_blanca
elif [ "$lista_negra" != "" ] && [ $lista_blanca = "" ]; then
for rama in `git branch -r | grep -v HEAD|cut -d "/" -f2`; do
i=1
final=$(echo $lista_negra| cut -d "," -f$i)
while [ "$rama" != $final ]; do
lista_def=" $rama"
((i++))
final=$(echo $lista_negra| cut -d "," -f$i)
done
done
fi
echo ${#blanca[*]}
update_branchs pullall ${blanca[@]}
else
echo "fwefew"
fi