mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-08 06:25:37 -05:00
switch hto monorepo structure
This commit is contained in:
92
backend/internal/tui/views_gentoo_use_flags.go
Normal file
92
backend/internal/tui/views_gentoo_use_flags.go
Normal file
@@ -0,0 +1,92 @@
|
||||
package tui
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/AvengeMedia/DankMaterialShell/backend/internal/distros"
|
||||
tea "github.com/charmbracelet/bubbletea"
|
||||
)
|
||||
|
||||
func (m Model) viewGentooUseFlags() string {
|
||||
var b strings.Builder
|
||||
|
||||
b.WriteString(m.renderBanner())
|
||||
b.WriteString("\n")
|
||||
|
||||
title := m.styles.Title.Render("Gentoo Global USE Flags")
|
||||
b.WriteString(title)
|
||||
b.WriteString("\n\n")
|
||||
|
||||
info := m.styles.Normal.Render("The following global USE flags will be enabled in /etc/portage/make.conf:")
|
||||
b.WriteString(info)
|
||||
b.WriteString("\n\n")
|
||||
|
||||
for _, flag := range distros.GentooGlobalUseFlags {
|
||||
flagLine := m.styles.Success.Render(fmt.Sprintf(" • %s", flag))
|
||||
b.WriteString(flagLine)
|
||||
b.WriteString("\n")
|
||||
}
|
||||
|
||||
b.WriteString("\n")
|
||||
note := m.styles.Subtle.Render("These flags ensure proper Qt6, Wayland, and compositor support.")
|
||||
b.WriteString(note)
|
||||
b.WriteString("\n\n")
|
||||
|
||||
var toggleLine string
|
||||
if m.skipGentooUseFlags {
|
||||
toggleLine = "▶ [✗] Skip adding global USE flags (will use existing configuration)"
|
||||
toggleLine = m.styles.Warning.Render(toggleLine)
|
||||
} else {
|
||||
toggleLine = " [ ] Skip adding global USE flags (will use existing configuration)"
|
||||
toggleLine = m.styles.Subtle.Render(toggleLine)
|
||||
}
|
||||
b.WriteString(toggleLine)
|
||||
b.WriteString("\n\n")
|
||||
|
||||
help := m.styles.Subtle.Render("Space: Toggle skip, Enter: Continue, Esc: Go back")
|
||||
b.WriteString(help)
|
||||
|
||||
return b.String()
|
||||
}
|
||||
|
||||
func (m Model) updateGentooUseFlagsState(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
if gccMsg, ok := msg.(gccVersionCheckMsg); ok {
|
||||
if gccMsg.err != nil || gccMsg.major < 15 {
|
||||
m.state = StateGentooGCCCheck
|
||||
return m, nil
|
||||
}
|
||||
if checkFingerprintEnabled() {
|
||||
m.state = StateAuthMethodChoice
|
||||
m.selectedConfig = 0
|
||||
} else {
|
||||
m.state = StatePasswordPrompt
|
||||
m.passwordInput.Focus()
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
if keyMsg, ok := msg.(tea.KeyMsg); ok {
|
||||
switch keyMsg.String() {
|
||||
case " ":
|
||||
m.skipGentooUseFlags = !m.skipGentooUseFlags
|
||||
return m, nil
|
||||
case "enter":
|
||||
if m.selectedWM == 1 {
|
||||
return m, m.checkGCCVersion()
|
||||
}
|
||||
if checkFingerprintEnabled() {
|
||||
m.state = StateAuthMethodChoice
|
||||
m.selectedConfig = 0
|
||||
} else {
|
||||
m.state = StatePasswordPrompt
|
||||
m.passwordInput.Focus()
|
||||
}
|
||||
return m, nil
|
||||
case "esc":
|
||||
m.state = StateDependencyReview
|
||||
return m, nil
|
||||
}
|
||||
}
|
||||
return m, m.listenForLogs()
|
||||
}
|
||||
Reference in New Issue
Block a user