diff options
author | Gabriel A. Giovanini <mail@gabrielgio.me> | 2024-05-26 00:05:31 +0200 |
---|---|---|
committer | Gabriel A. Giovanini <mail@gabrielgio.me> | 2024-05-26 14:41:21 +0200 |
commit | 349a3d1ff36a436261b1b65b870f8f262f06584f (patch) | |
tree | 25c4d6933c49f818e520ce662ffa15e040877f4d /main.go | |
parent | c06945c189c1d8ef3cedeb51e416ba0fec36368f (diff) | |
download | cerrado-349a3d1ff36a436261b1b65b870f8f262f06584f.tar.gz cerrado-349a3d1ff36a436261b1b65b870f8f262f06584f.tar.bz2 cerrado-349a3d1ff36a436261b1b65b870f8f262f06584f.zip |
feat: Add bare bones project list
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 65 |
1 files changed, 10 insertions, 55 deletions
@@ -1,25 +1,17 @@ package main import ( - "bytes" "context" - "encoding/json" "flag" - "io/fs" "log/slog" "net/http" "os" "os/signal" "time" - "github.com/alecthomas/chroma/v2/formatters/html" - "github.com/alecthomas/chroma/v2/lexers" - "github.com/alecthomas/chroma/v2/styles" - - "git.gabrielgio.me/cerrado/pkg/config" + "git.gabrielgio.me/cerrado/pkg/handler" + "git.gabrielgio.me/cerrado/pkg/service" "git.gabrielgio.me/cerrado/pkg/worker" - "git.gabrielgio.me/cerrado/static" - "git.gabrielgio.me/cerrado/templates" ) func main() { @@ -41,57 +33,20 @@ func run(ctx context.Context) error { mux := http.NewServeMux() - staticFs, err := fs.Sub(static.Static, ".") + staticHandler, err := handler.NewStaticHander("/static/") if err != nil { return err } - mux.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.FS(staticFs)))) - mux.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) { - slog.Info("Handling index") - - f, err := os.Open(*configPath) - if err != nil { - slog.Error("Error openning config file json", "error", err, "path", *configPath) - return - } - - c, err := config.Parse(f) - if err != nil { - slog.Error("Error parsing config", "error", err, "path", *configPath) - return - } - - b, err := json.MarshalIndent(c, "", " ") - if err != nil { - slog.Error("Error parsing json", "error", err) - return - } - - lexer := lexers.Get("json") - style := styles.Get("monokailight") - formatter := html.New( - html.WithLineNumbers(true), - ) - iterator, err := lexer.Tokenise(nil, string(b)) - if err != nil { - slog.Error("Error tokenise", "error", err) - return - } - - var code bytes.Buffer - err = formatter.Format(&code, style, iterator) - if err != nil { - slog.Error("Error format", "error", err) - return - } + // services + gitService := service.NewGitService() - hello := &templates.HelloPage{ - Body: code.String(), - } + //handlers + gitHandler := handler.NewGitHandler(gitService) - templates.WritePageTemplate(w, hello) - }) + mux.Handle("/static/", staticHandler) + mux.HandleFunc("/config", handler.ConfigFile(*configPath)) + mux.HandleFunc("/", gitHandler.List) serverTask := worker.NewServerTask(&http.Server{Handler: mux, Addr: "0.0.0.0:8080"}) pool := worker.NewTaskPool() |