diff --git a/usr/bin/rakuos-appstream-sync b/usr/bin/rakuos-appstream-sync index 66d0b91..0feb015 100755 --- a/usr/bin/rakuos-appstream-sync +++ b/usr/bin/rakuos-appstream-sync @@ -2,40 +2,69 @@ set -e -BASE_URL="https://repo.rakuos.org/dists/rakuos" -SUITE="rakuos" +BASE_URL="https://repo.rakuos.org/dists" COMPONENTS=(main contrib non-free) ARCH=$(dpkg --print-architecture) - APT_LIST_DIR="/var/lib/apt/lists" -for comp in ${COMPONENTS[@]}; do - COMP_URL="$BASE_URL/$comp/dep11" +# Fetch list of suites from server +SUITES=$(wget -qO- "$BASE_URL/" | grep -oP '(?<=href=")[^"/]+(?=/")') - YAML_FILE="$COMP_URL/Components-$ARCH.yml.gz" - ICON_FILE48="$COMP_URL/icons-48x48.tar.gz" - ICON_FILE64="$COMP_URL/icons-64x64.tar.gz" - ICON_FILE128="$COMP_URL/icons-128x128.tar.gz" +if [[ -z "$SUITES" ]]; then + echo "Error: No suites found at $BASE_URL" + exit 1 +fi - # download yaml - if wget -q -O "$APT_LIST_DIR/repo.rakuos.org_dists_${SUITE}_${comp}_dep11_Components-${ARCH}.yml.gz" "$YAML_FILE"; then - echo "Fetched DEP11 YAML for $comp" - fi - # download 48 Icons - if wget -q -O "$APT_LIST_DIR/repo.rakuos.org_dists_${SUITE}_${comp}_dep11_icons-48x48.tar.gz" "$ICON_FILE48"; then - echo "Fetched DEP11 48x48 icons for $comp" - fi - # download 64 Icons - if wget -q -O "$APT_LIST_DIR/repo.rakuos.org_dists_${SUITE}_${comp}_dep11_icons-64x64.tar.gz" "$ICON_FILE64"; then - echo "Fetched DEP11 64x64 icons for $comp" - fi - # download 128 Icons - if wget -q -O "$APT_LIST_DIR/repo.rakuos.org_dists_${SUITE}_${comp}_dep11_icons-128x128.tar.gz" "$ICON_FILE128"; then - echo "Fetched DEP11 128 icons for $comp" - fi +echo "Detected suites: $SUITES" +echo + +for SUITE in $SUITES; do + echo "=== Processing suite: $SUITE ===" + + for comp in "${COMPONENTS[@]}"; do + COMP_URL="$BASE_URL/$SUITE/$comp/dep11" + + YAML_FILE="$COMP_URL/Components-$ARCH.yml.gz" + ICON_FILE48="$COMP_URL/icons-48x48.tar.gz" + ICON_FILE64="$COMP_URL/icons-64x64.tar.gz" + ICON_FILE128="$COMP_URL/icons-128x128.tar.gz" + + # DEP-11 YAML + if wget -q -O \ + "$APT_LIST_DIR/repo.rakuos.org_dists_${SUITE}_${comp}_dep11_Components-${ARCH}.yml.gz" \ + "$YAML_FILE"; then + echo "Fetched DEP11 YAML for $SUITE / $comp" + fi + + # 48px icons + if wget -q -O \ + "$APT_LIST_DIR/repo.rakuos.org_dists_${SUITE}_${comp}_dep11_icons-48x48.tar.gz" \ + "$ICON_FILE48"; then + echo "Fetched 48x48 icons for $SUITE / $comp" + fi + + # 64px icons + if wget -q -O \ + "$APT_LIST_DIR/repo.rakuos.org_dists_${SUITE}_${comp}_dep11_icons-64x64.tar.gz" \ + "$ICON_FILE64"; then + echo "Fetched 64x64 icons for $SUITE / $comp" + fi + + # 128px icons + if wget -q -O \ + "$APT_LIST_DIR/repo.rakuos.org_dists_${SUITE}_${comp}_dep11_icons-128x128.tar.gz" \ + "$ICON_FILE128"; then + echo "Fetched 128x128 icons for $SUITE / $comp" + fi + + echo + done done -# Refresh AppStream manually +# Refresh AppStream cache if command -v appstreamcli >/dev/null; then + echo "Refreshing AppStream..." appstreamcli refresh --source=os >/dev/null 2>&1 || true fi + +echo "All suites processed."