Skip to content

feat(ui): coloration thématique dynamique par étape et amélioration de l'interface terminal - #5

Merged
NicoBOD merged 4 commits into
mainfrom
feat/terminal-colors-step-by-step
Aug 2, 2026
Merged

feat(ui): coloration thématique dynamique par étape et amélioration de l'interface terminal#5
NicoBOD merged 4 commits into
mainfrom
feat/terminal-colors-step-by-step

Conversation

@NicoBOD

@NicoBOD NicoBOD commented Aug 2, 2026

Copy link
Copy Markdown
Member

Description des modifications

Cette PR apporte une refonte visuelle de l'expérience utilisateur dans le terminal lors de l'exécution du script de post-installation Debian 13.

🎨 Identité visuelle & Couleurs par étape

Chaque étape du script (1 à 8 + Bilan final) possède désormais sa propre couleur thématique ANSI distincte :

  • Étape 1 (Coloration syntaxique) : Cyan Fluo / Turquoise
  • Étape 2 (Mise à jour du système) : Bleu Ciel / Steel Blue
  • Étape 3 (Configuration du clavier) : Vert Émeraude
  • Étape 4 (Configuration du hostname) : Jaune Ambre / Gold
  • Étape 5 (Configuration réseau / IP fixe) : Violet / Magenta Vif
  • Étape 6 (Utilisateur standard) : Bleu Lagon / Teal
  • Étape 7 (Sécurisation SSH) : Orange Brillant
  • Étape 8 (Authentification par clé SSH) : Mauve / Violet Pastel
  • Récapitulatif & Bilan : Or / Jaune Soleil

✨ Améliorations de présentation

  • Bannières en boîtes arrondies (╭─, , ╰─) adaptées dynamiquement à la couleur de l'étape courante.
  • Accents de couleur sur les invites interactives (?, [O/n], [o/N], options de menu 1., 2., 3.).
  • Support universel TTY/Non-TTY : la coloration s'active automatiquement en mode interactif TTY tout en restant totalement neutre si la sortie est redirigée.

🧪 Tests & Validation

  • Syntaxe Shell vérifiée via bash -n.
  • Tests unitaires validés (138 tests, 0 échec).

Copilot AI review requested due to automatic review settings August 2, 2026 00:56
@NicoBOD
NicoBOD merged commit b4c8b7d into main Aug 2, 2026
2 checks passed
@NicoBOD
NicoBOD deleted the feat/terminal-colors-step-by-step branch August 2, 2026 00:58

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Cette PR améliore l’UI terminal du script de post-installation Debian 13 en ajoutant une identité visuelle colorée et cohérente, avec une couleur thématique par étape et des bannières/prompt plus lisibles, tout en préservant un mode neutre lorsque la sortie n’est pas en TTY.

Changes:

  • Ajout d’un système de couleurs ANSI (statuts + palette par étape 1→8, intro et bilan) activé conditionnellement en TTY.
  • Refonte des bannières en boîtes arrondies et adaptation automatique de la couleur au contexte (étape/bilan).
  • Mise en couleur des invites interactives et de certains éléments de menus.
Suppressed comments (5)

script-de-personnalisation-post-installation-pour-debian-13.sh:283

  • Les echo -e dans banner() interprètent les séquences d’échappement (backslashes) présentes dans les variables (ex: un titre contenant \n ou \c), ce qui peut corrompre l’affichage. Préférer printf avec %b uniquement pour les couleurs et %s pour le titre.
  echo ""
  echo -e "${color}╭${line}╮${C_RESET}"
  echo -e "${color}│${spaces_left}${C_BOLD}${title}${C_RESET}${color}${spaces_right}│${C_RESET}"

script-de-personnalisation-post-installation-pour-debian-13.sh:355

  • ask_yes_no() construit le prompt via echo -e, ce qui interprète les backslashes potentiellement présents dans la question (et crée un sous-shell inutile). Utiliser printf -v avec %b pour les couleurs et %s pour le texte utilisateur évite l’interprétation indésirable.
    script-de-personnalisation-post-installation-pour-debian-13.sh:397
  • ask_input() utilise echo -e pour fabriquer l’invite, ce qui interprète les séquences d’échappement présentes dans prompt/default. Construire la chaîne avec printf -v (%b pour les couleurs, %s pour les données) évite les effets de bord.
  while true; do
    if [[ -n "$default" ]]; then
      shown="$(echo -e "${CURRENT_STEP_COLOR}?${C_RESET} ${prompt} ${C_DIM}[${default}]${C_RESET} : ")"
    else
      shown="$(echo -e "${CURRENT_STEP_COLOR}?${C_RESET} ${prompt} : ")"

script-de-personnalisation-post-installation-pour-debian-13.sh:3623

  • Ici read -p "$(echo -e ...)" interprète les séquences d’échappement via echo -e et ajoute un sous-shell. printf permet d’injecter les codes couleur sans interpréter d’éventuels backslashes dans le texte.
    echo ""

script-de-personnalisation-post-installation-pour-debian-13.sh:4418

  • Même problème ici : echo -e dans la substitution de commande peut interpréter des séquences d’échappement et crée un sous-shell. Préférer printf pour générer l’invite colorée.
    echo ""

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +263 to +265
local clean_title
clean_title="$(echo "$title" | sed 's/\x1b\[[0-9;]*m//g')"
local len=${#clean_title}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants