diff --git a/scripts/image-builder.sh b/scripts/image-builder.sh index 3ea82ac..6bc4339 100755 --- a/scripts/image-builder.sh +++ b/scripts/image-builder.sh @@ -324,7 +324,7 @@ change_project_setting() { sed -i "s|^$key=.*|$key=$new_value|" "$config_file" } -# Editor aus global config auslesen +# Aktuellen Editor aus global/config.json holen get_editor_cmd() { if [[ -f "$GLOBAL_CONFIG" ]]; then jq -r '.editor // "nano"' "$GLOBAL_CONFIG" @@ -337,39 +337,28 @@ get_editor_cmd() { edit_project_files() { local project=$1 local project_dir="$PROJECTS_DIR/$project" - [ ! -d "$project_dir" ] && { whiptail --msgbox "Projektordner nicht gefunden." 10 60; return; } - # Datei auswählen - file=$(whiptail --title "Datei auswählen" --fselect "$project_dir/" 20 70 3>&1 1>&2 2>&3) || return + if [[ ! -d "$project_dir" ]]; then + whiptail --msgbox "Projektordner nicht gefunden." 10 60 + return + fi - # Editor aus globaler config laden - EDITOR_CMD=$(get_editor_cmd) + # Datei auswählen (Abbrechen = zurück ins Menü, Script stürzt nicht ab) + if ! file=$(whiptail --title "Datei auswählen" \ + --fselect "$project_dir/" 20 70 \ + 3>&1 1>&2 2>&3); then + return + fi + + # Wenn kein File gewählt, zurück + [[ -z "$file" ]] && return + + # Editor aus globaler Config holen + local editor_cmd + editor_cmd=$(get_editor_cmd) # Datei im gewählten Editor öffnen - $EDITOR_CMD "$file" -} - -edit_project_registries() { - local config_file=$1 - # vorhandene registries aus Config - local current=$(grep "^registry=" "$config_file" | cut -d= -f2 | tr ',' ' ') - - # alle bekannten Registries aus Registry-Verwaltung - local all_registries=$(ls "$REGISTRY_CONFIG_DIR" 2>/dev/null) - - menu_list=() - for r in $all_registries; do - if [[ " $current " =~ " $r " ]]; then - menu_list+=("$r" "$r" ON) - else - menu_list+=("$r" "$r" OFF) - fi - done - - selected=$(whiptail --title "Registries auswählen" --checklist "Mehrere auswählen" 20 70 10 "${menu_list[@]}" 3>&1 1>&2 2>&3) || return - # whiptail gibt " " separierte Liste zurück, entfernen von Anführungszeichen - selected=$(echo $selected | tr -d '"') - sed -i "s|^registry=.*|registry=$selected|" "$config_file" + "$editor_cmd" "$file" } edit_project_architectures() {