6caba6fee1
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
24 lines
869 B
JavaScript
24 lines
869 B
JavaScript
import Database from 'better-sqlite3';
|
|
import bcrypt from 'bcryptjs';
|
|
import { mkdirSync } from 'node:fs';
|
|
import { dirname } from 'node:path';
|
|
|
|
const [, , username, password] = process.argv;
|
|
if (!username || !password) {
|
|
console.error('Uso: npm run create-user -- <username> <password>');
|
|
process.exit(1);
|
|
}
|
|
const path = process.env.DB_PATH ?? 'data/insanitylab.db';
|
|
mkdirSync(dirname(path), { recursive: true });
|
|
const db = new Database(path);
|
|
db.exec(`CREATE TABLE IF NOT EXISTS users (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
username TEXT NOT NULL UNIQUE,
|
|
password_hash TEXT NOT NULL
|
|
);`);
|
|
db.prepare(
|
|
`INSERT INTO users (username, password_hash) VALUES (?, ?)
|
|
ON CONFLICT(username) DO UPDATE SET password_hash = excluded.password_hash`
|
|
).run(username, bcrypt.hashSync(password, 12));
|
|
console.log(`Utente "${username}" creato/aggiornato in ${path}`);
|