#!/usr/bin/env bash # Prüft und verpackt alle Skills (oder nur den angegebenen) als dist/-v.zip. # Im ZIP liegt der Ordner / auf oberster Ebene. # README.md und CHANGELOG.md werden nicht mitverpackt. # Aufruf: scripts/package.sh [] set -euo pipefail source "$(dirname "$0")/lib.sh" bash "$(dirname "$0")/validate.sh" "${1:-}" if [[ $# -gt 0 && -n "$1" ]]; then names=("$1") else mapfile -t names < <(skill_names) fi mkdir -p "$DIST_DIR" for name in "${names[@]}"; do version="$(skill_version "$SKILLS_DIR/$name")" zip_path="$DIST_DIR/$name-v$version.zip" rm -f "$zip_path" tmp="$(mktemp -d)" mkdir "$tmp/$name" (cd "$SKILLS_DIR/$name" && tar cf - --exclude=CHANGELOG.md --exclude=README.md --exclude=.DS_Store --exclude=Thumbs.db --exclude=extension .) \ | (cd "$tmp/$name" && tar xf -) (cd "$tmp" && zip -qrX "$zip_path" "$name") rm -rf "$tmp" echo echo "dist/$name-v$version.zip" unzip -l "$zip_path" done