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) }