package linuxmodules import ( "fmt" "rubric/utils" "strings" ) // Module описывает один раздел справочника Linux type Module struct { Key string Aliases []string Title string Description string Run func() } // All — список всех модулей в порядке меню var All = []Module{ IntroModule, FilesModule, StreamsModule, BashModule, ProcessesModule, UsersModule, KernelModule, DisksModule, ScriptsModule, BootModule, LogsModule, BackupModule, NetworkModule, SecurityModule, PackagesModule, PerformanceModule, SysconfigModule, NetfsModule, ToolsModule, } // Find ищет модуль по ключу или алиасу func Find(key string) (Module, bool) { key = strings.ToLower(strings.TrimSpace(key)) for _, m := range All { if m.Key == key { return m, true } for _, a := range m.Aliases { if a == key { return m, true } } } return Module{}, false } // ListModules выводит краткий список модулей func ListModules() { fmt.Printf("\n%s%sРазделы справочника Linux:%s\n\n", utils.ColorBold, utils.ColorCyan, utils.ColorReset) for i, m := range All { fmt.Printf(" %s%d.%s %-12s — %s\n", utils.ColorDim, i+1, utils.ColorReset, utils.ColorYellow+utils.ColorBold+m.Key+utils.ColorReset, m.Title, ) } fmt.Println() }