diff options
| author | Himanshu Sardana <himanshusardana2005@gmail.com> | 2026-03-25 09:21:19 +0000 |
|---|---|---|
| committer | Himanshu Sardana <himanshusardana2005@gmail.com> | 2026-03-25 09:21:19 +0000 |
| commit | af0332e7d805f7a4cb1086b66f61ad706a082768 (patch) | |
| tree | 24622ad88fa1edf636e5c7fac5ac3f5d8e002e6d /cmd/main.go | |
| parent | 7cfdc43226930b21bae2e02581672a338a9c0789 (diff) | |
refactor: split into cmd/internal
Diffstat (limited to 'cmd/main.go')
| -rw-r--r-- | cmd/main.go | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/cmd/main.go b/cmd/main.go new file mode 100644 index 0000000..afef7bb --- /dev/null +++ b/cmd/main.go @@ -0,0 +1,82 @@ +package main + +import ( + "fmt" + "io" + "log" + "net/http" + "os" + "path/filepath" + + internal "github.com/HimanshuSardana/kite/internal/build" +) + +var themeName = "gruvbox" + +func copyFile(src, dst string) error { + in, err := os.Open(src) + if err != nil { + return err + } + defer in.Close() + + if err := os.MkdirAll(filepath.Dir(dst), os.ModePerm); err != nil { + return err + } + + out, err := os.Create(dst) + if err != nil { + return err + } + defer out.Close() + + _, err = io.Copy(out, in) + return err +} + +func main() { + args := os.Args + if len(args) > 1 { + switch args[1] { + case "serve": + copyFile("./themes/"+themeName+"/style.css", "./output/style.css") + + fs := http.FileServer(http.Dir("./output/")) + http.Handle("/", fs) + + log.Println("Serving on http://localhost:8000") + + err := http.ListenAndServe(":8000", nil) + if err != nil { + log.Fatalf("Error occured %s\n", err) + } + case "build": + internal.Build() + case "list-themes": + themeList := make([]string, 0) + themes, err := os.ReadDir("../themes/") + if err != nil { + log.Fatal("Error:", err) + } + for _, theme := range themes { + if theme.IsDir() { + themeList = append(themeList, string(theme.Name())) + } + } + default: + showHelpMessage() + } + } else { + showHelpMessage() + } +} + +func showHelpMessage() { + fmt.Println(` +Usage: kite <SUBCOMMAND> + +SUBCOMMANDS: +build +serve +`) +} |
