Skip to content

Commit 8330468

Browse files
committed
freebsd-pkg: Adapt to .tzst
Related: ustclug/discussions#488
1 parent b6cc8d8 commit 8330468

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

freebsd-pkg/sync.sh

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ channel_sync() {
3535
# get meta-data
3636
export remote_url=$baseurl
3737
export local_dir=$tmpdir
38-
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')"
39-
enable_mtime=true fail_to_exit=true download <<<"$(echo meta packagesite.txz | tr ' ' '\n')"
38+
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')"
39+
enable_mtime=true fail_to_exit=true download <<<"$(echo meta packagesite.pkg | tr ' ' '\n')"
4040

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

5151
# get packages
52-
tar -C $tmpdir -xJf $tmpdir/packagesite.txz packagesite.yaml
52+
tar -C $tmpdir -xJf $tmpdir/packagesite.pkg packagesite.yaml
5353
if [[ $? -ne 0 ]]; then
54-
echo '[FATAL] unzip packagesite.txz failed.'
55-
EXIT_CODE=$((EXIT_CODE + 1))
56-
return 1
54+
echo '[WARN] xz failed, trying zstd...'
55+
tar -C $tmpdir --zstd -xf $tmpdir/packagesite.pkg packagesite.yaml
56+
if [[ $? -ne 0 ]]; then
57+
echo '[FATAL] zstd packagesite.pkg failed.'
58+
EXIT_CODE=$((EXIT_CODE + 1))
59+
return 1
60+
fi
5761
fi
5862
jq -r '"\(.sum) \(.repopath)"' $tmpdir/packagesite.yaml | sort -k2 > $meta
5963
rm -f $tmpdir/packagesite.yaml
@@ -89,7 +93,7 @@ while read platform; do
8993
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)
9094
echo $channels
9195
for channel in $channels; do
92-
if $CURL_WRAP -sLIf -o /dev/null $FBSD_PKG_UPSTREAM/$platform/$channel/packagesite.txz; then
96+
if $CURL_WRAP -sLIf -o /dev/null $FBSD_PKG_UPSTREAM/$platform/$channel/packagesite.pkg; then
9397
channel_sync $FBSD_PKG_UPSTREAM/$platform/$channel $TO/$platform/$channel
9498
fi
9599
done

0 commit comments

Comments
 (0)