0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-01-06 22:40:14 -05:00
ghost/core/cli/repl.js

33 lines
1.1 KiB
JavaScript
Raw Normal View History

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);
}
};