aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorGabriel A. Giovanini <mail@gabrielgio.me>2024-10-02 15:55:38 +0200
committerGabriel A. Giovanini <mail@gabrielgio.me>2024-10-02 15:55:38 +0200
commit3a1359b3ad03b2fdb3b9dc0df8629834f7419a08 (patch)
tree1cf4e1730677fa74cbfaa8199747a624901dac91 /main.go
parent0991b46a360f40c833142bd0153253ec54f90c2a (diff)
downloadcerrado-3a1359b3ad03b2fdb3b9dc0df8629834f7419a08.tar.gz
cerrado-3a1359b3ad03b2fdb3b9dc0df8629834f7419a08.tar.bz2
cerrado-3a1359b3ad03b2fdb3b9dc0df8629834f7419a08.zip
feat: Add command to generate user passphrase
Diffstat (limited to 'main.go')
-rw-r--r--main.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/main.go b/main.go
index 18b73ff..b891c88 100644
--- a/main.go
+++ b/main.go
@@ -3,11 +3,14 @@ package main
import (
"context"
"flag"
+ "fmt"
"log/slog"
"os"
"os/signal"
"time"
+ "golang.org/x/crypto/bcrypt"
+
"git.gabrielgio.me/cerrado/pkg/config"
"git.gabrielgio.me/cerrado/pkg/handler"
"git.gabrielgio.me/cerrado/pkg/service"
@@ -17,12 +20,32 @@ import (
func main() {
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, os.Kill)
defer stop()
+
+ if len(os.Args) == 4 && os.Args[1] == "hash" {
+ err := hash(os.Args[2], os.Args[3])
+ if err != nil {
+ slog.Error("Error", "error", err)
+ os.Exit(1)
+ }
+ return
+ }
+
if err := run(ctx); err != nil {
slog.Error("Error", "error", err)
os.Exit(1)
}
}
+func hash(username string, password string) error {
+ passphrase := fmt.Sprintf("%s:%s", username, password)
+ bytes, err := bcrypt.GenerateFromPassword([]byte(passphrase), 14)
+ if err != nil {
+ return err
+ }
+ fmt.Println(string(bytes))
+ return nil
+}
+
func run(ctx context.Context) error {
var (
configPath = flag.String("config", "/etc/cerrado.scfg", "File path for the configuration file")