Skip to content

Commit 4ebef6d

Browse files
committed
Make generated fetch_packages script more robust and friendly.
1 parent 24206b8 commit 4ebef6d

File tree

1 file changed

+40
-8
lines changed

1 file changed

+40
-8
lines changed

build-rootfs.sh

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -145,17 +145,49 @@ chmod +x "$__RootfsDir/package_extract.sh"
145145
cat >"$__RootfsDir/fetch_packages.sh" <<EOF
146146
#!/usr/bin/env bash
147147
148+
found_packages=()
149+
missing_packages=()
150+
148151
for package in "\$@" ; do
149-
json='{"name":"'"\$package"'","repositorySourceCode":"haikuports_x86_64","versionType":"LATEST","naturalLanguageCode":"en"}'
150-
echo "Getting download URL for \$package..."
151-
url=\$(wget -qO- --post-data="\$json" --header='Content-Type:application/json' 'https://depot.haiku-os.org/__api/v2/pkg/get-pkg' | jq -r '.result.versions[].hpkgDownloadURL')
152-
echo "Downloading \$package..."
153-
wget -q "\$url"
154-
echo "Extracting \$package..."
155-
"$__RootfsDir/package_extract.sh" \$package*.hpkg
152+
json='{"name":"'"\$package"'","repositorySourceCode":"haikuports_$__BuildArch","versionType":"LATEST","naturalLanguageCode":"en"}'
153+
echo "Getting download URL for \$package..."
154+
url=\$(wget -qO- --post-data="\$json" --header='Content-Type:application/json' 'https://depot.haiku-os.org/__api/v2/pkg/get-pkg' | jq -r '.result.versions[].hpkgDownloadURL' 2>/dev/null)
155+
if [ \$? -eq 0 ]; then
156+
echo "Downloading \$package at \$url..."
157+
wget -q "\$url"
158+
if [ \$? -eq 0 ]; then
159+
echo "Extracting \$package..."
160+
"$__RootfsDir/package_extract.sh" \$package*.hpkg
161+
rm \$package*.hpkg
162+
found_packages+=("\$package")
163+
continue
164+
fi
165+
166+
echo "Unable to download \$package"
167+
else
168+
echo "Unable to locate \$package for downloading"
169+
fi
170+
missing_packages+=("\$package")
156171
done
157172
158-
echo "Downloaded and extracted all packages"
173+
echo ""
174+
175+
if [ \${#missing_packages[@]} -ne 0 ]; then
176+
echo "Missing Packages:"
177+
for package in \${missing_packages[@]}; do
178+
echo " - \$package"
179+
done
180+
echo ""
181+
fi
182+
183+
if [ \${#found_packages[@]} -ne 0 ]; then
184+
echo "Installed Packages:"
185+
for package in \${found_packages[@]}; do
186+
echo " - \$package"
187+
done
188+
else
189+
echo "NO packages installed"
190+
fi
159191
EOF
160192
chmod +x "$__RootfsDir/fetch_packages.sh"
161193

0 commit comments

Comments
 (0)