-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupdate.sh
46 lines (41 loc) · 1.23 KB
/
update.sh
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
#!/bin/sh
if [ ! -f "update.txt" ]
then
echo "The file update.txt does not exists."
echo "Make sure setup.sh has been run and the file is checked in into git."
exit -1
fi
readarray -n 2 -t update < update.txt
remote=${update[0]}
branch=${update[1]}
template_remote=$(git remote | grep template-origin)
if [ -z "$template_remote" ]
then
echo "Add remote for the template."
git remote add template-origin "${update[0]}"
else
old_remote=$(git remote get-url template-origin)
if [ $old_remote != $remote ]
then
echo "The remote for the template changed, updating it."
git remote remove template-origin
git remote add template-origin "${update[0]}"
fi
fi
# Check if remote exists
if ! git ls-remote "$remote" &> /dev/null
then
echo "The remote '$remote' is not a valid git repository."
echo "Please update the first line in 'update.txt'."
exit -1
fi
# Check if remote branch exists
if ! git ls-remote --exit-code --heads "$remote" "$branch" &> /dev/null
then
echo "The branch '$branch' does not exist on the remote repository."
echo "Please update the second line in 'update.txt'."
exit -2
fi
git fetch template-origin $branch
git merge template-origin/$branch
echo "Done!"