🎨 refactor(main): Extract sortMapKeys func
This commit is contained in:
parent
97929aa589
commit
b4c80068bf
2 changed files with 32 additions and 20 deletions
24
main.go
24
main.go
|
@ -26,13 +26,15 @@ type menu struct {
|
||||||
quitting bool
|
quitting bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const softwareInstructionsFile = "/Users/marley/hackin/install.fairie/software-custom.yml"
|
||||||
|
|
||||||
func initialModel() menu {
|
func initialModel() menu {
|
||||||
s := spinner.New()
|
s := spinner.New()
|
||||||
s.Spinner = spinner.MiniDot
|
s.Spinner = spinner.MiniDot
|
||||||
s.Style = gloss.NewStyle().Foreground(gloss.Color("3"))
|
s.Style = gloss.NewStyle().Foreground(gloss.Color("3"))
|
||||||
|
|
||||||
return menu{
|
return menu{
|
||||||
current: 3,
|
current: 0,
|
||||||
keys: keys,
|
keys: keys,
|
||||||
help: help.New(),
|
help: help.New(),
|
||||||
spinner: s,
|
spinner: s,
|
||||||
|
@ -70,7 +72,7 @@ type errMsg struct{ err error }
|
||||||
func (e errMsg) Error() string { return e.err.Error() }
|
func (e errMsg) Error() string { return e.err.Error() }
|
||||||
|
|
||||||
func (m menu) Init() tea.Cmd {
|
func (m menu) Init() tea.Cmd {
|
||||||
return tea.Batch(readYaml, m.spinner.Tick)
|
return tea.Batch(readYaml(softwareInstructionsFile), m.spinner.Tick)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m menu) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
func (m menu) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
|
@ -123,11 +125,7 @@ func (m menu) View() string {
|
||||||
|
|
||||||
software := list.New().Enumerator(softwareListEnumerator)
|
software := list.New().Enumerator(softwareListEnumerator)
|
||||||
|
|
||||||
keys := make([]string, 0, len(m.order))
|
keys := sortMapKeys(m.order)
|
||||||
for k := range m.order {
|
|
||||||
keys = append(keys, k)
|
|
||||||
}
|
|
||||||
sort.Strings(keys)
|
|
||||||
|
|
||||||
for _, k := range keys {
|
for _, k := range keys {
|
||||||
software.Item(m.order[k].Name)
|
software.Item(m.order[k].Name)
|
||||||
|
@ -161,3 +159,15 @@ func main() {
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func sortMapKeys(m SoftwarePackages) []string {
|
||||||
|
keys := make([]string, 0, len(m))
|
||||||
|
|
||||||
|
for k := range m {
|
||||||
|
keys = append(keys, k)
|
||||||
|
}
|
||||||
|
|
||||||
|
sort.Strings(keys)
|
||||||
|
|
||||||
|
return keys
|
||||||
|
}
|
||||||
|
|
28
yaml.go
28
yaml.go
|
@ -71,18 +71,20 @@ type osNames struct {
|
||||||
Windows *string `yaml:"windows"`
|
Windows *string `yaml:"windows"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func readYaml() tea.Msg {
|
func readYaml(file string) tea.Cmd {
|
||||||
fileData, fileErr := os.ReadFile("/Users/marley/hackin/install.fairie/software-custom.yml")
|
return func() tea.Msg {
|
||||||
if fileErr != nil {
|
fileData, fileErr := os.ReadFile(file)
|
||||||
return errMsg{fileErr}
|
if fileErr != nil {
|
||||||
|
return errMsg{fileErr}
|
||||||
|
}
|
||||||
|
|
||||||
|
var parsedYaml YamlStructure
|
||||||
|
|
||||||
|
yamlErr := yaml.Unmarshal(fileData, &parsedYaml)
|
||||||
|
if yamlErr != nil {
|
||||||
|
return errMsg{yamlErr}
|
||||||
|
}
|
||||||
|
|
||||||
|
return yamlMsg(parsedYaml)
|
||||||
}
|
}
|
||||||
|
|
||||||
var parsedYaml YamlStructure
|
|
||||||
|
|
||||||
yamlErr := yaml.Unmarshal(fileData, &parsedYaml)
|
|
||||||
if yamlErr != nil {
|
|
||||||
return errMsg{yamlErr}
|
|
||||||
}
|
|
||||||
|
|
||||||
return yamlMsg(parsedYaml)
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue