#!/usr/bin/env bash set -euo pipefail # Append a structured entry to docs/NETGESCON-MODIFICHE.md # Used by Filament page: /admin-filament/supporto/modifiche DATE_VALUE="$(date +%d/%m/%Y)" VERSION_VALUE="0.8.x-dev" AREA_VALUE="" DESC_VALUE="" TYPE_VALUE="U" FILE_PATH="docs/NETGESCON-MODIFICHE.md" usage() { cat <<'EOF' Usage: bash scripts/ops/netgescon-add-modifica.sh --area "Area" --desc "Descrizione" [options] Options: --date DD/MM/YYYY Override date (default: today) --version VERSION Version label (default: 0.8.x-dev) --area TEXT Functional area (required) --desc TEXT Description (required) --type U|P|E|E! Change tag (default: U) --file PATH Changelog file (default: docs/NETGESCON-MODIFICHE.md) Examples: bash scripts/ops/netgescon-add-modifica.sh \ --area "Filament / Ticket" \ --desc "Fix upload allegati e validazione priorita" \ --type U EOF } while [[ $# -gt 0 ]]; do case "$1" in --date) DATE_VALUE="$2"; shift 2 ;; --version) VERSION_VALUE="$2"; shift 2 ;; --area) AREA_VALUE="$2"; shift 2 ;; --desc) DESC_VALUE="$2"; shift 2 ;; --type) TYPE_VALUE="$2"; shift 2 ;; --file) FILE_PATH="$2"; shift 2 ;; -h|--help) usage; exit 0 ;; *) echo "Unknown option: $1" >&2; usage; exit 1 ;; esac done [[ -n "$AREA_VALUE" ]] || { echo "Missing --area" >&2; exit 1; } [[ -n "$DESC_VALUE" ]] || { echo "Missing --desc" >&2; exit 1; } [[ "$TYPE_VALUE" =~ ^(U|P|E|E!)$ ]] || { echo "Invalid --type: $TYPE_VALUE" >&2; exit 1; } [[ -f "$FILE_PATH" ]] || { echo "File not found: $FILE_PATH" >&2; exit 1; } entry="| ${DATE_VALUE} | ${VERSION_VALUE} | ${AREA_VALUE} | ${DESC_VALUE} | [${TYPE_VALUE}] |" printf '%s\n' "$entry" >> "$FILE_PATH" echo "OK" echo "APPENDED: $entry" echo "FILE: $FILE_PATH"