34 lines
864 B
JavaScript
34 lines
864 B
JavaScript
const User = require('../src/db/models/User');
|
|
const { Model } = require('objection');
|
|
const Knex = require('knex');
|
|
const knexConfig = require('../src/config/database');
|
|
const knex = Knex(knexConfig.development);
|
|
Model.knex(knex);
|
|
const crypto = require('crypto');
|
|
|
|
const email = process.argv[2];
|
|
let password = process.argv[3];
|
|
const isAdmin = process.argv[4] === 'true';
|
|
|
|
if (!email && !password) {
|
|
console.error('Usage: node make_user.js <email> [password] [isAdmin]');
|
|
process.exit(1);
|
|
}
|
|
|
|
async function main() {
|
|
if (!password) {
|
|
password = crypto.randomBytes(16).toString('hex');
|
|
}
|
|
|
|
const user = await User.query().insert({
|
|
email: email,
|
|
password: password,
|
|
is_admin: isAdmin
|
|
});
|
|
console.log(`User created: ${user.email}`);
|
|
console.log(`Password: ${password}`);
|
|
process.exit(0);
|
|
}
|
|
|
|
main();
|