2015-07-15 03:22:02 +00:00
|
|
|
import mongoose from 'mongoose';
|
2019-10-08 14:57:10 +00:00
|
|
|
import nconf from 'nconf';
|
|
|
|
|
import repl from 'repl';
|
|
|
|
|
import gulp from 'gulp';
|
2020-07-14 16:55:47 +00:00
|
|
|
import {
|
|
|
|
|
getDevelopmentConnectionUrl,
|
|
|
|
|
getDefaultConnectionOptions,
|
|
|
|
|
} from '../website/server/libs/mongodb';
|
2015-07-15 03:22:02 +00:00
|
|
|
|
|
|
|
|
// Add additional properties to the repl's context
|
2019-10-08 14:57:10 +00:00
|
|
|
const improveRepl = context => {
|
2015-07-15 03:22:02 +00:00
|
|
|
// Let "exit" and "quit" terminate the console
|
2019-10-08 14:57:10 +00:00
|
|
|
['exit', 'quit'].forEach(term => {
|
|
|
|
|
Object.defineProperty(context, term, {
|
|
|
|
|
get () { // eslint-disable-line getter-return
|
|
|
|
|
process.exit();
|
|
|
|
|
},
|
|
|
|
|
});
|
2015-07-15 03:22:02 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// "clear" clears the screen
|
2019-10-08 14:57:10 +00:00
|
|
|
Object.defineProperty(context, 'clear', {
|
|
|
|
|
get () { // eslint-disable-line getter-return
|
|
|
|
|
process.stdout.write('\u001B[2J\u001B[0;0f');
|
|
|
|
|
},
|
|
|
|
|
});
|
2015-07-15 03:22:02 +00:00
|
|
|
|
2017-10-25 08:45:03 +00:00
|
|
|
context.Challenge = require('../website/server/models/challenge').model; // eslint-disable-line global-require
|
2019-10-08 14:57:10 +00:00
|
|
|
context.Group = require('../website/server/models/group').model; // eslint-disable-line global-require
|
|
|
|
|
context.User = require('../website/server/models/user').model; // eslint-disable-line global-require
|
2015-07-15 03:22:02 +00:00
|
|
|
|
2020-07-14 16:55:47 +00:00
|
|
|
const IS_PROD = nconf.get('NODE_ENV') === 'production';
|
|
|
|
|
const NODE_DB_URI = nconf.get('NODE_DB_URI');
|
|
|
|
|
|
|
|
|
|
const mongooseOptions = getDefaultConnectionOptions();
|
|
|
|
|
const connectionUrl = IS_PROD ? NODE_DB_URI : getDevelopmentConnectionUrl(NODE_DB_URI);
|
|
|
|
|
|
2018-02-02 15:37:36 +00:00
|
|
|
mongoose.connect(
|
2020-07-14 16:55:47 +00:00
|
|
|
connectionUrl,
|
2018-02-02 15:37:36 +00:00
|
|
|
mongooseOptions,
|
2015-07-15 03:22:02 +00:00
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
2019-10-08 14:57:10 +00:00
|
|
|
gulp.task('console', done => {
|
2015-07-15 03:22:02 +00:00
|
|
|
improveRepl(repl.start({
|
2016-09-18 19:51:20 +00:00
|
|
|
prompt: 'Habitica > ',
|
2015-07-15 03:22:02 +00:00
|
|
|
}).context);
|
2018-02-04 17:18:10 +00:00
|
|
|
done();
|
2015-07-15 03:22:02 +00:00
|
|
|
});
|