Select Git revision
CommanderApp.ts
CommanderApp.ts 1.19 KiB
import { Command } from 'commander';
import Config from '../config/Config';
import EnonceCommand from './enonce/EnonceCommand';
import SessionCommand from './session/SessionCommand';
import ExerciceCommand from './exercice/ExerciceCommand';
class CommanderApp {
program: Command = new Command();
constructor() {
this.program
.name('dojo')
.description('CLI for the Dojo application')
.version('1.0.0 dev')
.showHelpAfterError()
.configureHelp({
showGlobalOptions: true,
sortOptions : true,
sortSubcommands : true
})
.option('-H, --host <string>', 'override the Dojo API endpoint', Config.apiURL);
this.program.on('option:host', () => {
Config.apiURL = this.program.opts().host;
});
this.registerCommands();
this.program.parse();
}
private registerCommands() {
SessionCommand.registerOnCommand(this.program);
EnonceCommand.registerOnCommand(this.program);
ExerciceCommand.registerOnCommand(this.program);
}
}
export default CommanderApp;