@@ -92,6 +92,8 @@ HAIKU_ADDITIONAL_PACKAGES=${HAIKU_ADDITIONAL_PACKAGES//,/ }
92
92
HAIKU_SYSPACKAGES+=" $HAIKU_ADDITIONAL_SYSPACKAGES "
93
93
HAIKU_PACKAGES+=" $HAIKU_ADDITIONAL_PACKAGES "
94
94
95
+ CURL_RETRY_COUNT=${CURL_RETRY_COUNT:- " 16" }
96
+
95
97
mkdir -p $HPREFIX_PACKAGES
96
98
97
99
if pidof -q hyclone_server; then
124
126
125
127
echo " Downloading Haiku packages"
126
128
read -ra array <<< " $HAIKU_SYSPACKAGES"
127
- HAIKU_SYSPACKAGES_HREV=$( curl -Ls $HAIKU_HPKG_BASE_URL | sed -n ' s/^.*version: "\([^"]*\)".*$/\1/p' )
129
+ HAIKU_SYSPACKAGES_HREV=$( curl --retry $CURL_RETRY_COUNT --retry-all-errors - Ls $HAIKU_HPKG_BASE_URL | sed -n ' s/^.*version: "\([^"]*\)".*$/\1/p' )
128
130
for package in " ${array[@]} " ; do
129
131
# Check if package already exists
130
132
if [ " $HPKG_FORCE " == " 0" ] && [ -f " $HPREFIX_PACKAGES /$package -$HAIKU_SYSPACKAGES_HREV -1-$HAIKU_ARCH .hpkg" ]; then
@@ -135,14 +137,17 @@ for package in "${array[@]}"; do
135
137
rm -fv $HPREFIX_PACKAGES /$package -* -$HAIKU_ARCH .hpkg
136
138
fi
137
139
echo " Downloading $package -$HAIKU_SYSPACKAGES_HREV -1-$HAIKU_ARCH .hpkg"
138
- curl -Lo " $HPREFIX_PACKAGES /$package -$HAIKU_SYSPACKAGES_HREV -1-$HAIKU_ARCH .hpkg" " $HAIKU_HPKG_BASE_URL /packages/$package -$HAIKU_SYSPACKAGES_HREV -1-$HAIKU_ARCH .hpkg"
140
+ curl --retry $CURL_RETRY_COUNT --retry-all-errors \
141
+ -Lo " $HPREFIX_PACKAGES /$package -$HAIKU_SYSPACKAGES_HREV -1-$HAIKU_ARCH .hpkg" \
142
+ " $HAIKU_HPKG_BASE_URL /packages/$package -$HAIKU_SYSPACKAGES_HREV -1-$HAIKU_ARCH .hpkg"
139
143
fi
140
144
done
141
145
read -ra array <<< " $HAIKU_PACKAGES"
142
146
for package in " ${array[@]} " ; do
143
147
# API documented here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L60
144
148
# The schema here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L598
145
- hpkgDownloadUrl=" $( curl -Ls --request POST --data ' {"name":"' " $package " ' ","repositorySourceCode":"haikuports_' $HAIKU_ARCH ' ","versionType":"LATEST","naturalLanguageCode":"en"}' \
149
+ hpkgDownloadUrl=" $( curl --retry $CURL_RETRY_COUNT --retry-all-errors -Ls --request POST \
150
+ --data ' {"name":"' " $package " ' ","repositorySourceCode":"haikuports_' $HAIKU_ARCH ' ","versionType":"LATEST","naturalLanguageCode":"en"}' \
146
151
--header ' Content-Type:application/json' " $HAIKU_DEPOT_BASE_URL " | sed -n ' s/^.*hpkgDownloadURL":"\([^"]*\)".*$/\1/p' ) "
147
152
hpkgVersion=" $( echo " $hpkgDownloadUrl " | sed -n ' s/^.*\/[^\/]*-\([^-]*\-[^-]*\)-[^-]*\.hpkg$/\1/p' ) "
148
153
if [ " $HPKG_FORCE " == " 0" ] && [ -f " $HPREFIX_PACKAGES /$package -$hpkgVersion -$HAIKU_ARCH .hpkg" ]; then
@@ -153,7 +158,8 @@ for package in "${array[@]}"; do
153
158
rm -fv $HPREFIX_PACKAGES /$package -* -$HAIKU_ARCH .hpkg
154
159
fi
155
160
echo " Downloading $package -$hpkgVersion -$HAIKU_ARCH .hpkg"
156
- curl -Lo " $HPREFIX_PACKAGES /$package -$hpkgVersion -$HAIKU_ARCH .hpkg" " $hpkgDownloadUrl "
161
+ curl --retry $CURL_RETRY_COUNT --retry-all-errors \
162
+ -Lo " $HPREFIX_PACKAGES /$package -$hpkgVersion -$HAIKU_ARCH .hpkg" " $hpkgDownloadUrl "
157
163
fi
158
164
done
159
165
0 commit comments