49 lines
997 B
Go
49 lines
997 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
|
|
"a301_server/internal/auth"
|
|
"a301_server/pkg/config"
|
|
"a301_server/pkg/database"
|
|
"golang.org/x/crypto/bcrypt"
|
|
)
|
|
|
|
func main() {
|
|
config.Load()
|
|
|
|
if err := database.ConnectMySQL(); err != nil {
|
|
log.Fatalf("MySQL 연결 실패: %v", err)
|
|
}
|
|
|
|
username := getArg(1, "admin")
|
|
password := getArg(2, "admin1234")
|
|
|
|
hash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
|
|
if err != nil {
|
|
log.Fatalf("비밀번호 해시 실패: %v", err)
|
|
}
|
|
|
|
user := auth.User{
|
|
Username: username,
|
|
PasswordHash: string(hash),
|
|
Role: auth.RoleAdmin,
|
|
}
|
|
|
|
repo := auth.NewRepository(database.DB)
|
|
if err := repo.Create(&user); err != nil {
|
|
log.Fatalf("관리자 계정 생성 실패: %v", err)
|
|
}
|
|
|
|
fmt.Printf("관리자 계정 생성 완료\n 아이디: %s\n 비밀번호: %s\n", username, password)
|
|
}
|
|
|
|
func getArg(index int, fallback string) string {
|
|
if len(os.Args) > index {
|
|
return os.Args[index]
|
|
}
|
|
return fallback
|
|
}
|