Skip to content

Commit

Permalink
freebsd-pkg: Adapt to .tzst
Browse files Browse the repository at this point in the history
  • Loading branch information
taoky committed Feb 23, 2025
1 parent b6cc8d8 commit 8330468
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions freebsd-pkg/sync.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ channel_sync() {
# get meta-data
export remote_url=$baseurl
export local_dir=$tmpdir
enable_mtime=true fail_to_exit=false download <<<"$(echo digests.txz meta.txz meta.conf meta.pkg packagesite.pkg data.pkg data.txz | tr ' ' '\n')"
enable_mtime=true fail_to_exit=true download <<<"$(echo meta packagesite.txz | tr ' ' '\n')"
enable_mtime=true fail_to_exit=false download <<<"$(echo digests.txz meta.txz meta.conf meta.pkg packagesite.txz packagesite.tzst data.pkg data.txz data.tzst | tr ' ' '\n')"
enable_mtime=true fail_to_exit=true download <<<"$(echo meta packagesite.pkg | tr ' ' '\n')"

if [[ $? -ne 0 ]]; then
echo "[FATAL] download meta-data failed."
Expand All @@ -49,11 +49,15 @@ channel_sync() {
enable_mtime=true fail_to_exit=false download <<<"$(echo Latest/{pkg-devel.pkg,pkg.pkg,pkg.pkg.sig} | tr ' ' '\n')"

# get packages
tar -C $tmpdir -xJf $tmpdir/packagesite.txz packagesite.yaml
tar -C $tmpdir -xJf $tmpdir/packagesite.pkg packagesite.yaml
if [[ $? -ne 0 ]]; then
echo '[FATAL] unzip packagesite.txz failed.'
EXIT_CODE=$((EXIT_CODE + 1))
return 1
echo '[WARN] xz failed, trying zstd...'
tar -C $tmpdir --zstd -xf $tmpdir/packagesite.pkg packagesite.yaml
if [[ $? -ne 0 ]]; then
echo '[FATAL] zstd packagesite.pkg failed.'
EXIT_CODE=$((EXIT_CODE + 1))
return 1
fi
fi
jq -r '"\(.sum) \(.repopath)"' $tmpdir/packagesite.yaml | sort -k2 > $meta
rm -f $tmpdir/packagesite.yaml
Expand Down Expand Up @@ -89,7 +93,7 @@ while read platform; do
channels=$($CURL_WRAP -sSL $FBSD_PKG_UPSTREAM/$platform | grep -oP 'latest|quarterly|base_[a-z0-9_]+|kmods_[a-z0-9_]+' | sort -t : -rnk 2 | uniq)
echo $channels
for channel in $channels; do
if $CURL_WRAP -sLIf -o /dev/null $FBSD_PKG_UPSTREAM/$platform/$channel/packagesite.txz; then
if $CURL_WRAP -sLIf -o /dev/null $FBSD_PKG_UPSTREAM/$platform/$channel/packagesite.pkg; then
channel_sync $FBSD_PKG_UPSTREAM/$platform/$channel $TO/$platform/$channel
fi
done
Expand Down

0 comments on commit 8330468

Please sign in to comment.