pomodoro/bin/create-roles.js
2016-08-14 19:18:09 +02:00

48 lines
1.1 KiB
JavaScript
Executable File

#!/bin/env node
'use strict';
const p = require('path');
const chalk = require('chalk');
const MongoClient = require('mongodb').MongoClient;
const successPrefix = '[' + chalk.green('SUCCESS') + '] ';
const errorPrefix = '[' + chalk.red('ERROR') + '] ';
global.PWD = p.dirname(__dirname);
global.ENV = process.env.NODE_ENV || 'development';
console.log(PWD);
function _mongo(collection, cb) {
const mongoConfig = require(p.join(PWD, 'server/config/mongo'));
MongoClient.connect(mongoConfig.uri, function (err, db) {
if (err) {
console.error(errorPrefix);
console.error(err);
process.exit(1);
}
cb(db.collection(collection), db);
});
}
function createRoles(roles) {
const roleNames = (roles ? roles.split(',') : [ 'user', 'admin' ]);
_mongo('roles', function (roles, db) {
roles.insert(roleNames.map(function (role) { return { name: role }; }), function (err) {
db.close();
if (err) {
console.error(errorPrefix);
console.error(err);
process.exit(1);
} else {
console.log(successPrefix + 'Created roles: ' + roleNames.join(', '));
process.exit(0);
}
});
});
}
createRoles();