netgescon-day0/scripts/ops/netgescon-add-modifica.sh

59 lines
1.8 KiB
Bash
Executable File

#!/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"