#!/usr/bin/env bash set -euo pipefail # Pubblica manifest update e package per canale free/licensed. # Uso: # scripts/ops/netgescon-publish-manifest.sh \ # --channel free \ # --version 0.8.1 \ # --package /var/www/netgescon/storage/app/distribution/free/netgescon-0.8.1.zip \ # --base-url https://updates.netgescon.it CHANNEL="free" VERSION="" PACKAGE="" BASE_URL="" MIGRATE_REQUIRED="true" STORAGE_ROOT="/var/www/netgescon/storage/app/distribution" while [[ $# -gt 0 ]]; do case "$1" in --channel) CHANNEL="$2" shift 2 ;; --version) VERSION="$2" shift 2 ;; --package) PACKAGE="$2" shift 2 ;; --base-url) BASE_URL="$2" shift 2 ;; --migrate-required) MIGRATE_REQUIRED="$2" shift 2 ;; --storage-root) STORAGE_ROOT="$2" shift 2 ;; *) echo "Unknown option: $1" exit 1 ;; esac done if [[ -z "$VERSION" || -z "$PACKAGE" || -z "$BASE_URL" ]]; then echo "Usage: $0 --channel --version --package --base-url " exit 1 fi if [[ ! -f "$PACKAGE" ]]; then echo "Package non trovato: $PACKAGE" exit 1 fi TARGET_DIR="$STORAGE_ROOT/$CHANNEL" mkdir -p "$TARGET_DIR" PKG_NAME="$(basename "$PACKAGE")" cp "$PACKAGE" "$TARGET_DIR/$PKG_NAME" SHA="$(sha256sum "$TARGET_DIR/$PKG_NAME" | awk '{print $1}')" DATE_UTC="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" cat > "$TARGET_DIR/manifest.json" <