Add adduser CLI command for creating users from the command line
Build and Deploy / build-and-deploy (push) Successful in 1m19s

This commit is contained in:
2026-07-08 21:32:03 -04:00
parent 1ffe1b4fd6
commit 3ae28b1f20
+39
View File
@@ -8,6 +8,8 @@ import (
"net/http"
"os"
"golang.org/x/crypto/bcrypt"
"podstalk/handler"
"podstalk/store"
)
@@ -19,6 +21,11 @@ var templateFS embed.FS
var staticFS embed.FS
func main() {
if len(os.Args) > 1 && os.Args[1] == "adduser" {
runAddUser()
return
}
dbPath := os.Getenv("PODSTALK_DB")
if dbPath == "" {
dbPath = "podstalk.db"
@@ -93,6 +100,38 @@ func main() {
log.Fatal(http.ListenAndServe(addr, nil))
}
func runAddUser() {
if len(os.Args) != 4 {
log.Fatalf("Usage: podstalk adduser <email> <password>")
}
email := os.Args[2]
password := os.Args[3]
dbPath := os.Getenv("PODSTALK_DB")
if dbPath == "" {
dbPath = "podstalk.db"
}
st, err := store.New(dbPath)
if err != nil {
log.Fatalf("failed to open database: %v", err)
}
defer st.Close()
hash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
if err != nil {
log.Fatalf("failed to hash password: %v", err)
}
userID, err := st.CreateUser(email, string(hash))
if err != nil {
log.Fatalf("failed to create user: %v", err)
}
log.Printf("User created (id=%d)", userID)
}
func envOrDefault(key, def string) string {
if v := os.Getenv(key); v != "" {
return v