feat: first working version
This commit is contained in:
parent
a67e208d6e
commit
1029563cb1
11 changed files with 585 additions and 0 deletions
45
cmd/add_user/main.go
Normal file
45
cmd/add_user/main.go
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"linux-auth/internal/db"
|
||||
"linux-auth/internal/utils"
|
||||
)
|
||||
|
||||
/**
|
||||
* @brief CLI утилита для добавления нового пользователя в базу
|
||||
*
|
||||
* Позволяет добавлять пользователей интерактивно или через аргументы.
|
||||
*/
|
||||
func main() {
|
||||
// ---------- Аргументы ----------
|
||||
username := flag.String("username", "", "Логин нового пользователя")
|
||||
password := flag.String("password", "", "Пароль нового пользователя")
|
||||
dbPath := flag.String("db", "./data/users.db", "Путь к файлу базы данных")
|
||||
flag.Parse()
|
||||
|
||||
// ---------- Проверка аргументов ----------
|
||||
if *username == "" || *password == "" {
|
||||
fmt.Println("Использование: go run cmd/add_user/main.go -username USER -password PASS [-db ./data/users.db]")
|
||||
return
|
||||
}
|
||||
|
||||
// ---------- Инициализация БД ----------
|
||||
err := db.Init(*dbPath)
|
||||
if err != nil {
|
||||
log.Fatalf("Ошибка инициализации БД: %v\n", err)
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
// ---------- Создание пользователя ----------
|
||||
hash := utils.HashPassword(*password)
|
||||
err = db.CreateUser(*username, hash)
|
||||
if err != nil {
|
||||
log.Fatalf("Не удалось создать пользователя %s: %v\n", *username, err)
|
||||
}
|
||||
|
||||
fmt.Printf("Пользователь %s успешно добавлен.\n", *username)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue