mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-06 22:40:14 -05:00
33 lines
1.1 KiB
JavaScript
33 lines
1.1 KiB
JavaScript
|
const Command = require('./command');
|
||
|
const chalk = require('chalk');
|
||
|
|
||
|
module.exports = class REPL extends Command {
|
||
|
setup() {
|
||
|
this.help('Launches a REPL environment with access to a configured db instance and models');
|
||
|
// this is only here to demo how to set a default value for an arg :)
|
||
|
this.argument('--color', {type: 'string', defaultValue: 'yellow', hidden: true});
|
||
|
}
|
||
|
|
||
|
initializeContext(context) {
|
||
|
const models = require('../server/models');
|
||
|
const knex = require('../server/data/db/connection');
|
||
|
|
||
|
models.init();
|
||
|
|
||
|
context.models = models;
|
||
|
context.m = models;
|
||
|
context.knex = knex;
|
||
|
context.k = knex;
|
||
|
}
|
||
|
|
||
|
async handle(argv = {}) {
|
||
|
this.debug(chalk[argv.color]('== Ghost development REPL =='));
|
||
|
this.info(`a knex database instance is available as ${chalk.magenta('knex')}`);
|
||
|
this.info(`bookshelf models are available as ${chalk.magenta('models')}`);
|
||
|
const repl = require('repl');
|
||
|
const cli = repl.start('> ');
|
||
|
this.initializeContext(cli.context);
|
||
|
cli.on('reset', this.initializeContext);
|
||
|
}
|
||
|
};
|