From 84ee052d718313d3c192b70d4bbdbcd55b51ad4d Mon Sep 17 00:00:00 2001 From: Joachim Friberg Date: Wed, 18 Mar 2026 21:58:27 +0100 Subject: [PATCH] Updated appstore --- dist/phirna-appstore.zip | Bin 0 -> 49475 bytes scripts/build-appstore-zip.sh | 113 ++++++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 dist/phirna-appstore.zip create mode 100755 scripts/build-appstore-zip.sh diff --git a/dist/phirna-appstore.zip b/dist/phirna-appstore.zip new file mode 100644 index 0000000000000000000000000000000000000000..e1e496492199aea3e42424055ce91b0ae7b659ee GIT binary patch literal 49475 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 z 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/dev/null 2>&1; then + echo "ERROR: 'zip' command not found" + exit 1 +fi + +required_root_files=( + "category-list.json" + "recommend-list.json" + "featured-apps.json" +) + +for file in "${required_root_files[@]}"; do + if [[ ! -f "$repo_root/$file" ]]; then + echo "ERROR: missing required file: $file" + exit 1 + fi +done + +if [[ ! -d "$repo_root/Apps" ]]; then + echo "ERROR: missing required directory: Apps" + exit 1 +fi + +is_git_repo=0 +if git -C "$repo_root" rev-parse --is-inside-work-tree >/dev/null 2>&1; then + is_git_repo=1 +fi + +tmp_dir="$(mktemp -d)" +staging_dir="$tmp_dir/appstore" +cleanup() { + rm -rf "$tmp_dir" +} +trap cleanup EXIT + +mkdir -p "$staging_dir/Apps" + +copy_file() { + local rel="$1" + mkdir -p "$staging_dir/$(dirname "$rel")" + cp "$repo_root/$rel" "$staging_dir/$rel" +} + +if [[ "$is_git_repo" -eq 1 ]]; then + # Build from tracked files only so accidental local files are excluded. + while IFS= read -r rel; do + [[ -z "$rel" ]] && continue + + case "$rel" in + Apps/*|category-list.json|recommend-list.json|featured-apps.json) + if [[ -f "$repo_root/$rel" ]]; then + copy_file "$rel" + fi + ;; + esac + done < <(git -C "$repo_root" ls-files) +else + cp -R "$repo_root/Apps" "$staging_dir/" + for file in "${required_root_files[@]}"; do + copy_file "$file" + done +fi + +# Export compatibility: source uses .yaml, AppStore tooling often expects .yml +while IFS= read -r compose_yaml; do + compose_yml="${compose_yaml%.yaml}.yml" + cp "$compose_yaml" "$compose_yml" + rm -f "$compose_yaml" +done < <(find "$staging_dir/Apps" -type f -name 'docker-compose.yaml' | sort) + +if ! find "$staging_dir/Apps" -type f -name 'docker-compose.yml' | grep -q .; then + echo "ERROR: no docker-compose.yml files found in exported Apps" + exit 1 +fi + +mkdir -p "$output_dir" +zip_path="$(cd "$output_dir" && pwd)/$zip_name" + +( + cd "$staging_dir" + zip -rq "$zip_path" . -x "*.DS_Store" "__MACOSX/*" +) + +if command -v shasum >/dev/null 2>&1; then + checksum="$(shasum -a 256 "$zip_path" | awk '{print $1}')" + echo "ZIP created: $zip_path" + echo "SHA256: $checksum" +else + echo "ZIP created: $zip_path" +fi