unity-builder/src/index.ts

33 lines
1.1 KiB
TypeScript
Raw Normal View History

2022-08-06 17:51:21 +00:00
import './core/logger/index.ts';
2022-08-07 23:51:36 +00:00
import { Options } from './config/options.ts';
import { CommandFactory } from './commands/command-factory.ts';
import { ArgumentsParser } from './core/cli/arguments-parser.ts';
import { Environment } from './core/env/environment.ts';
import { EngineDetector } from './core/engine/engine-detector.ts';
2022-08-07 23:51:36 +00:00
export class GameCI {
private readonly env: Environment;
2022-08-07 23:51:36 +00:00
constructor() {
this.env = new Environment(Deno.env);
this.args = Deno.args;
2022-08-07 23:51:36 +00:00
}
public async run() {
2022-08-07 23:51:36 +00:00
try {
const { commandName, subCommands, args } = new ArgumentsParser().parse(this.args);
const { engine, engineVersion } = await new EngineDetector(subCommands, args).detect();
2022-08-07 23:51:36 +00:00
const command = new CommandFactory().selectEngine(engine, engineVersion).createCommand(commandName, subCommands);
const options = await new Options(command, this.env).registerCommand(command).generateParameters(args);
2022-08-07 23:51:36 +00:00
await command.execute(options);
2022-08-07 23:51:36 +00:00
} catch (error) {
log.error(error);
Deno.exit(1);
}
}
}
2022-06-07 21:59:34 +00:00
await new GameCI().run();