summaryrefslogtreecommitdiff
path: root/pkg/themes/themes.go
diff options
context:
space:
mode:
authorHimanshu Sardana <himanshusardana2005@gmail.com>2026-03-26 21:26:35 +0000
committerHimanshu Sardana <himanshusardana2005@gmail.com>2026-03-26 21:26:35 +0000
commit103e84d847262830bbaa550b37218e9ca8b317d3 (patch)
treee19d3bfd6594600fb28be1ccac1a3869207bc49c /pkg/themes/themes.go
parent5c631f0cdb8ee3238ff054d171dd8babd158047b (diff)
refactor: split into cmd, pkg
Diffstat (limited to 'pkg/themes/themes.go')
-rw-r--r--pkg/themes/themes.go40
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()
+}