Gitfed
bastien-mrq/gitfed / cmd / gitfed-install / screens_finish.go
package main

import "strings"

func (m model) viewVerify() string {
	if !m.verifyDone {
		return stylePanel.Render(m.spin.View() + " " + styleBody.Render("Vérification finale…"))
	}
	var b strings.Builder
	for _, v := range m.verify {
		g := glyph(statusWarn)
		if v.OK {
			g = glyph(statusOK)
		}
		b.WriteString(row(g, v.Label, v.Detail) + "\n")
	}

	switch {
	case !m.ctlInstallDone:
		b.WriteString(row(m.spin.View(), "gitfed-ctl (mises à jour futures)", "installation…") + "\n")
	case m.ctlInstallErr != nil:
		b.WriteString(row(glyph(statusWarn), "gitfed-ctl (mises à jour futures)", "échec — voir INSTALL.md") + "\n")
	default:
		b.WriteString(row(glyph(statusOK), "gitfed-ctl (mises à jour futures)", "installé") + "\n")
	}

	return stylePanel.Render(b.String())
}

func (m model) viewAccount() string {
	var b strings.Builder
	b.WriteString(styleBody.Render(
		"Il n'y a aucun compte au démarrage, et pas d'auto-inscription — c'est volontaire.\n"+
			"On va lancer l'outil d'administration existant, directement contre le pod, pour\n"+
			"que tu crées ton premier compte en interactif (nom, clé SSH publique, mot de\n"+
			"passe, puis répondre "+styleBold.Render("y")+" à la question admin).") + "\n\n")

	b.WriteString(styleMuted.Render("La commande qui va s'exécuter :") + "\n")
	b.WriteString(styleAccent.Render(
		"kubectl -n gitfed exec -it deployment/gitfed -c server -- \\\n"+
			"  gitfed-tui -config /etc/gitfed/gitfed.json") + "\n\n")

	b.WriteString(styleBody.Render("Cet assistant se met en pause pendant ce temps — tu reviens ici en quittant gitfed-tui."))
	return stylePanel.Render(b.String())
}

func (m model) viewSuccess() string {
	domain := m.domainInput.Value()
	var b strings.Builder
	b.WriteString(styleOK.Render("✓ gitfed est en ligne") + "\n\n")
	b.WriteString(row("", "Interface web", "https://"+domain) + "\n")
	b.WriteString(row("", "Connexion", "https://"+domain+"/login") + "\n")
	b.WriteString(row("", "Clone SSH", "git clone ssh://git@"+domain+":2222/<utilisateur>/<dépôt>") + "\n\n")

	updateHint := "sudo gitfed-ctl depuis ce checkout"
	if m.ctlInstallErr != nil {
		updateHint = "deploy/update.sh (l'installation de gitfed-ctl a échoué — voir INSTALL.md)"
	}
	b.WriteString(styleMuted.Render(
		"Suggéré pour la suite : sauvegardes régulières (deploy/backup.sh), mises à jour\n" +
			"(" + updateHint + "), et la page /security de ta propre instance pour le détail\n" +
			"du modèle de confiance."))
	return stylePanel.Render(b.String())
}