-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinit-submodules.sh
executable file
·61 lines (51 loc) · 1.48 KB
/
init-submodules.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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#! /bin/bash
submodules=($(git submodule--helper list | awk '{$1=$2=$3=""; print substr($0,4)}'))
private_submodules=(
bsp
pex-kernel
pex-firmware
)
usage () {
echo "Usage: ./init-submodules.sh [-h] [-p]"
echo " -h: Display this help message"
echo " -p: Clone additional private modules, which include"
echo " ${private_submodules[@]}"
}
clone_private=false
while getopts ":hp" opt; do
case "${opt}" in
p)
clone_private=true
;;
h)
usage && exit 0
;;
?)
usage && exit 1
;;
esac
done
echo ${submodules[@]}
echo ${private_submodules[@]}
if [ $clone_private = false ]; then
for module in ${private_submodules[@]}; do
echo "Disabling access to $module"
git config --local submodule."$module".update none
done
else
for module in ${private_submodules[@]}; do
echo "Enabling access to $module"
git config --local --unset submodule."$module".update
done
fi
# do some extra steps in the riscv-openocd submodule
# to deal with the upstream repo using a submodule we can't access
GIT_SSL_NO_VERIFY=1 git submodule update --init riscv-openocd
cd riscv-openocd
GIT_SSL_NO_VERIFY=1 git submodule update --init openocd
cd openocd
# modify the .gitmodule of the openocd to be able to download libjaylink
sed -i 's/gitlab.zapb.de\/libjaylink/github.com\/syntacore/' .gitmodules
cd ../..
# now that we've fixed that submodule url, we can clone submodules as normal
GIT_SSL_NO_VERIFY=1 git submodule update --init --recursive