diff options
| author | Gabriel A. Giovanini <mail@gabrielgio.me> | 2024-10-02 15:55:38 +0200 | 
|---|---|---|
| committer | Gabriel A. Giovanini <mail@gabrielgio.me> | 2024-10-02 15:55:38 +0200 | 
| commit | 3a1359b3ad03b2fdb3b9dc0df8629834f7419a08 (patch) | |
| tree | 1cf4e1730677fa74cbfaa8199747a624901dac91 | |
| parent | 0991b46a360f40c833142bd0153253ec54f90c2a (diff) | |
| download | cerrado-3a1359b3ad03b2fdb3b9dc0df8629834f7419a08.tar.gz cerrado-3a1359b3ad03b2fdb3b9dc0df8629834f7419a08.tar.bz2 cerrado-3a1359b3ad03b2fdb3b9dc0df8629834f7419a08.zip | |
feat: Add command to generate user passphrase
| -rw-r--r-- | main.go | 23 | 
1 files changed, 23 insertions, 0 deletions
| @@ -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") | 
