mirror of
https://github.com/DeBrosOfficial/network.git
synced 2026-01-30 09:53:03 +00:00
79 lines
1.9 KiB
Go
79 lines
1.9 KiB
Go
package steps
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/charmbracelet/lipgloss"
|
|
)
|
|
|
|
// Confirm step for reviewing and confirming installation
|
|
type Confirm struct {
|
|
VpsIP string
|
|
Domain string
|
|
Branch string
|
|
NoPull bool
|
|
IsFirstNode bool
|
|
PeerDomain string
|
|
JoinAddress string
|
|
Peers []string
|
|
ClusterSecret string
|
|
SwarmKeyHex string
|
|
IPFSPeerID string
|
|
SNIWarning string
|
|
}
|
|
|
|
// View renders the confirmation step
|
|
func (c *Confirm) View() string {
|
|
var s strings.Builder
|
|
s.WriteString(titleStyle.Render("Confirm Installation") + "\n\n")
|
|
|
|
noPullStr := "Pull latest"
|
|
if c.NoPull {
|
|
noPullStr = "Skip git pull"
|
|
}
|
|
|
|
config := fmt.Sprintf(
|
|
" VPS IP: %s\n"+
|
|
" Domain: %s\n"+
|
|
" Branch: %s\n"+
|
|
" Git Pull: %s\n"+
|
|
" Node Type: %s\n",
|
|
c.VpsIP,
|
|
c.Domain,
|
|
c.Branch,
|
|
noPullStr,
|
|
map[bool]string{true: "First node (new cluster)", false: "Join existing cluster"}[c.IsFirstNode],
|
|
)
|
|
|
|
if !c.IsFirstNode {
|
|
config += fmt.Sprintf(" Peer Node: %s\n", c.PeerDomain)
|
|
config += fmt.Sprintf(" Join Addr: %s\n", c.JoinAddress)
|
|
if len(c.Peers) > 0 {
|
|
config += fmt.Sprintf(" Bootstrap: %s...\n", c.Peers[0][:40])
|
|
}
|
|
if len(c.ClusterSecret) >= 8 {
|
|
config += fmt.Sprintf(" Secret: %s...\n", c.ClusterSecret[:8])
|
|
}
|
|
if len(c.SwarmKeyHex) >= 8 {
|
|
config += fmt.Sprintf(" Swarm Key: %s...\n", c.SwarmKeyHex[:8])
|
|
}
|
|
if c.IPFSPeerID != "" {
|
|
config += fmt.Sprintf(" IPFS Peer: %s...\n", c.IPFSPeerID[:16])
|
|
}
|
|
}
|
|
|
|
s.WriteString(boxStyle.Render(config))
|
|
|
|
// Show SNI DNS warning if present
|
|
if c.SNIWarning != "" {
|
|
s.WriteString("\n\n")
|
|
warningStyle := lipgloss.NewStyle().Foreground(lipgloss.Color("#FFA500"))
|
|
s.WriteString(warningStyle.Render(c.SNIWarning))
|
|
}
|
|
|
|
s.WriteString("\n\n")
|
|
s.WriteString(helpStyle.Render("Press Enter to install • Esc to go back"))
|
|
return s.String()
|
|
}
|