aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go71
1 files changed, 62 insertions, 9 deletions
diff --git a/main.go b/main.go
index 18b73ff..797ebea 100644
--- a/main.go
+++ b/main.go
@@ -3,11 +3,14 @@ package main
import (
"context"
"flag"
+ "fmt"
"log/slog"
"os"
"os/signal"
"time"
+ "github.com/alecthomas/chroma/v2/styles"
+
"git.gabrielgio.me/cerrado/pkg/config"
"git.gabrielgio.me/cerrado/pkg/handler"
"git.gabrielgio.me/cerrado/pkg/service"
@@ -15,18 +18,53 @@ import (
)
func main() {
- ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, os.Kill)
- defer stop()
- if err := run(ctx); err != nil {
- slog.Error("Error", "error", err)
+ if len(os.Args) == 4 && os.Args[1] == "hash" {
+ err := hash(os.Args[2], os.Args[3])
+ if err != nil {
+ slog.Error("Hash", "error", err)
+ os.Exit(1)
+ }
+ return
+ }
+
+ if len(os.Args) == 2 && os.Args[1] == "key" {
+ err := key()
+ if err != nil {
+ slog.Error("Key", "error", err)
+ os.Exit(1)
+ }
+ return
+ }
+
+ if err := run(); err != nil {
+ slog.Error("Server", "error", err)
os.Exit(1)
}
}
-func run(ctx context.Context) error {
- var (
- configPath = flag.String("config", "/etc/cerrado.scfg", "File path for the configuration file")
- )
+func hash(username string, password string) error {
+ hash, err := service.GenerateHash(username, password)
+ if err != nil {
+ return err
+ }
+ fmt.Println(hash)
+ return nil
+}
+
+func key() error {
+ en, err := service.GenerateAesKey()
+ if err != nil {
+ return err
+ }
+ fmt.Println(en)
+ return nil
+}
+
+func run() error {
+ ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, os.Kill)
+ defer stop()
+
+ configPath := flag.String("config", "/etc/cerrado.scfg", "File path for the configuration file")
flag.Parse()
@@ -36,10 +74,25 @@ func run(ctx context.Context) error {
return err
}
+ // checking chroma configuration
+ if _, ok := styles.Registry[configRepo.GetSyntaxHighlight()]; !ok {
+ slog.Warn(
+ "Invalid Syntax highlight selected",
+ "invalid-style", configRepo.GetSyntaxHighlight(),
+ "using", "monokailight",
+ )
+ styles.Fallback = styles.Registry["monokailight"]
+ }
+
// services
gitService := service.NewGitService(configRepo)
+ authService := service.NewAuthService(configRepo)
- handler, err := handler.MountHandler(gitService, configRepo)
+ handler, err := handler.MountHandler(
+ gitService,
+ authService,
+ configRepo,
+ )
if err != nil {
return err
}