summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorHimanshu Sardana <himanshusardana2005@gmail.com>2026-03-25 09:21:19 +0000
committerHimanshu Sardana <himanshusardana2005@gmail.com>2026-03-25 09:21:19 +0000
commitaf0332e7d805f7a4cb1086b66f61ad706a082768 (patch)
tree24622ad88fa1edf636e5c7fac5ac3f5d8e002e6d /cmd
parent7cfdc43226930b21bae2e02581672a338a9c0789 (diff)
refactor: split into cmd/internal
Diffstat (limited to 'cmd')
-rw-r--r--cmd/main.go82
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
+`)
+}