Select Git revision
CommanderApp.ts
CommanderApp.ts 1.26 KiB
import { Command } from 'commander';
import SessionCommand from './session/SessionCommand';
import ClientsSharedConfig from '../sharedByClients/config/ClientsSharedConfig';
import AssignmentCommand from './assignment/AssignmentCommand';
import ExerciseCommand from './exercise/ExerciseCommand';
class CommanderApp {
program: Command = new Command();
constructor() {
this.program
.name('dojo')
.description('CLI of the Dojo application')
.version('DEV')
.showHelpAfterError()
.configureHelp({
showGlobalOptions: true,
sortOptions : true,
sortSubcommands : true
})
.option('-H, --host <string>', 'override the Dojo API endpoint', ClientsSharedConfig.apiURL);
this.program.on('option:host', () => {
ClientsSharedConfig.apiURL = this.program.opts().host;
});
this.registerCommands();
this.program.parse();
}
private registerCommands() {
SessionCommand.registerOnCommand(this.program);
AssignmentCommand.registerOnCommand(this.program);
ExerciseCommand.registerOnCommand(this.program);
}
}
export default CommanderApp;