diff options
| -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") | 
