From af0332e7d805f7a4cb1086b66f61ad706a082768 Mon Sep 17 00:00:00 2001 From: Himanshu Sardana Date: Wed, 25 Mar 2026 09:21:19 +0000 Subject: refactor: split into cmd/internal --- cmd/main.go | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 cmd/main.go (limited to 'cmd/main.go') 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 + +SUBCOMMANDS: +build +serve +`) +} -- cgit v1.3.1