diff options
| author | Himanshu Sardana <himanshusardana2005@gmail.com> | 2026-03-26 21:26:35 +0000 |
|---|---|---|
| committer | Himanshu Sardana <himanshusardana2005@gmail.com> | 2026-03-26 21:26:35 +0000 |
| commit | 103e84d847262830bbaa550b37218e9ca8b317d3 (patch) | |
| tree | e19d3bfd6594600fb28be1ccac1a3869207bc49c /pkg/themes/themes.go | |
| parent | 5c631f0cdb8ee3238ff054d171dd8babd158047b (diff) | |
refactor: split into cmd, pkg
Diffstat (limited to 'pkg/themes/themes.go')
| -rw-r--r-- | pkg/themes/themes.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/pkg/themes/themes.go b/pkg/themes/themes.go new file mode 100644 index 0000000..a8af863 --- /dev/null +++ b/pkg/themes/themes.go @@ -0,0 +1,40 @@ +package themes + +import ( + "os" + "path/filepath" +) + +type Theme struct { + Name string + Path string +} + +func List(themesDir string) ([]Theme, error) { + entries, err := os.ReadDir(themesDir) + if err != nil { + return nil, err + } + + var themes []Theme + for _, entry := range entries { + if entry.IsDir() { + themes = append(themes, Theme{ + Name: entry.Name(), + Path: filepath.Join(themesDir, entry.Name()), + }) + } + } + + return themes, nil +} + +func GetThemePath(themesDir, themeName string) string { + return filepath.Join(themesDir, themeName) +} + +func ThemeExists(themesDir, themeName string) bool { + path := GetThemePath(themesDir, themeName) + info, err := os.Stat(path) + return err == nil && info.IsDir() +} |
