feat: first working version

This commit is contained in:
nihonium 2026-01-14 12:55:21 +03:00
parent a67e208d6e
commit 1029563cb1
11 changed files with 585 additions and 0 deletions

45
cmd/add_user/main.go Normal file
View 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)
}