From 2329aa737786aa7f5d99df0d1ba835069b8abd9c Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 8 Jul 2025 23:56:52 +0200 Subject: [PATCH] =?UTF-8?q?miyag-convert.sh=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- miyag-convert.sh | 107 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 miyag-convert.sh diff --git a/miyag-convert.sh b/miyag-convert.sh new file mode 100644 index 0000000..a10f6b3 --- /dev/null +++ b/miyag-convert.sh @@ -0,0 +1,107 @@ +#!/bin/bash +set -euo pipefail +IFS=$'\n\t' + +log() { + echo "[INFO] $*" +} + +error_exit() { + echo "[ERROR] $*" >&2 + exit 1 +} + +sanitize_value() { + echo "$1" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' +} + +load_config() { + local config_file="$1" + if [[ ! -f "$config_file" ]]; then + error_exit "Konfigurationsdatei nicht gefunden: $config_file" + fi + + log "Lade und bereinige Konfigurationsdatei: $config_file" + while IFS='=' read -r key value; do + # nur gültige Variablennamen parsen + if [[ "$key" =~ ^[A-Za-z_][A-Za-z0-9_]*$ ]]; then + # Kommentar nach Wert entfernen + value="${value%%#*}" + value="$(sanitize_value "$value")" + # Variable setzen (für den write_new_config Zugriff) + eval "$key=\"$value\"" + fi + done < "$config_file" +} + +write_new_config() { + local out_file="$1" + cat > "$out_file" <" + exit 1 +fi + +ORIGINAL="$1" + +read -rp "Soll die aktuelle Datei als Backup gesichert werden (umbenennen)? (ja/nein): " RESPONSE +RESPONSE="${RESPONSE,,}" + +if [[ "$RESPONSE" == "ja" || "$RESPONSE" == "j" ]]; then + BACKUPFILE="${ORIGINAL}.bak" + mv "$ORIGINAL" "$BACKUPFILE" + log "Originaldatei wurde umbenannt in: $BACKUPFILE" + CONFIG_TO_READ="$BACKUPFILE" +else + log "Keine Sicherung der Originaldatei durchgeführt. Original bleibt unverändert." + CONFIG_TO_READ="$ORIGINAL" +fi + +NEWFILE="${ORIGINAL}.convert" +load_config "$CONFIG_TO_READ" +write_new_config "$NEWFILE" +log "Neue Konfiguration geschrieben in: $NEWFILE"