refactor: folder structure in preparation of command based cli

pull/413/head
Webber 2022-08-27 15:35:02 +02:00
parent 48598c1f73
commit bb844bcb46
16 changed files with 42 additions and 43 deletions

View File

@ -46,7 +46,7 @@
"devDependencies": {
"@arkweid/lefthook": "^0.7.7",
"@types/jest": "^28.1.6",
"@types/node": "^18.6.4",
"@types/node": "^18.7.13",
"@types/semver": "^7.3.9",
"@typescript-eslint/parser": "5.32.0",
"@vercel/ncc": "^0.33.3",

View File

@ -1,10 +1,10 @@
import { CommandInterface } from '../command-interface.ts';
import { Action, Cache, Docker, ImageTag, Input, Output } from '../../../model/index.ts';
import PlatformSetup from '../../../model/platform-setup.ts';
import MacBuilder from '../../../model/mac-builder.ts';
import { CommandBase } from './command-base.ts';
import { Action, Cache, Docker, ImageTag, Input, Output } from '../../model/index.ts';
import PlatformSetup from '../../model/platform-setup.ts';
import MacBuilder from '../../model/mac-builder.ts';
import { CommandBase } from '../command-base.ts';
export class BuildCommand extends CommandBase implements CommandInterface {
export class UnityBuildCommand extends CommandBase implements CommandInterface {
public async validate() {
await super.validate();
}

View File

@ -1,6 +1,6 @@
import { Options } from '../../../config/options.ts';
import { Input } from '../../../model/index.ts';
import Parameters from '../../../model/parameters.ts';
import { Options } from '../config/options.ts';
import { Input } from '../model/index.ts';
import Parameters from '../model/parameters.ts';
export class CommandBase {
public readonly name: string;

View File

@ -1,7 +1,7 @@
import { NonExistentCommand } from './command/non-existent-command.ts';
import { BuildCommand } from './command/unity/build-command.ts';
import { BuildRemoteCommand } from './command/unity/build-remote-command.ts';
import { CommandInterface } from './command/command-interface.ts';
import { NonExistentCommand } from './null/non-existent-command.ts';
import { UnityBuildCommand } from './build/unity-build-command.ts';
import { CommandInterface } from './command-interface.ts';
import { UnityRemoteBuildCommand } from './remote/unity-remote-build-command.ts';
export class CommandFactory {
constructor() {}
@ -25,9 +25,9 @@ export class CommandFactory {
private createUnityCommand(commandName: string) {
switch (commandName) {
case 'build':
return new BuildCommand(commandName);
return new UnityBuildCommand(commandName);
case 'build-remote':
return new BuildRemoteCommand(commandName);
return new UnityRemoteBuildCommand(commandName);
default:
return new NonExistentCommand(commandName);
}

View File

@ -1,6 +1,6 @@
import { Options } from '../../config/options.ts';
import Parameters from '../../model/parameters.ts';
import { Input } from '../../model/index.ts';
import { Options } from '../config/options.ts';
import Parameters from '../model/parameters.ts';
import { Input } from '../model/index.ts';
export interface CommandInterface {
name: string;

View File

@ -1,4 +1,4 @@
import { CommandInterface } from './command-interface.ts';
import { CommandInterface } from '../command-interface.ts';
import { Options } from '../../config/options.ts';
export class NonExistentCommand implements CommandInterface {

View File

@ -1,17 +1,17 @@
import { CommandInterface } from '../command-interface.ts';
import { Options } from '../../../config/options.ts';
import { CloudRunner, ImageTag, Input, Output } from '../../../model/index.ts';
import { core, nanoid } from '../../../dependencies.ts';
import Parameters from '../../../model/parameters.ts';
import { GitRepoReader } from '../../../model/input-readers/git-repo.ts';
import { Cli } from '../../../model/cli/cli.ts';
import CloudRunnerConstants from '../../../model/cloud-runner/services/cloud-runner-constants.ts';
import CloudRunnerBuildGuid from '../../../model/cloud-runner/services/cloud-runner-guid.ts';
import { GithubCliReader } from '../../../model/input-readers/github-cli.ts';
import { CommandBase } from './command-base.ts';
import { Options } from '../../config/options.ts';
import { CloudRunner, ImageTag, Input, Output } from '../../model/index.ts';
import { core, nanoid } from '../../dependencies.ts';
import Parameters from '../../model/parameters.ts';
import { GitRepoReader } from '../../model/input-readers/git-repo.ts';
import { Cli } from '../../model/cli/cli.ts';
import CloudRunnerConstants from '../../model/cloud-runner/services/cloud-runner-constants.ts';
import CloudRunnerBuildGuid from '../../model/cloud-runner/services/cloud-runner-guid.ts';
import { GithubCliReader } from '../../model/input-readers/github-cli.ts';
import { CommandBase } from '../command-base.ts';
// Todo - Verify this entire flow
export class BuildRemoteCommand extends CommandBase implements CommandInterface {
export class UnityRemoteBuildCommand extends CommandBase implements CommandInterface {
public async validate() {
await super.validate();
}

View File

@ -1,6 +1,6 @@
import { CliArguments } from '../core/cli/cli-arguments.ts';
import { Parameters, Input } from '../model/index.ts';
import { CommandInterface } from '../commands/command/command-interface.ts';
import { CommandInterface } from '../command/command-interface.ts';
import { Environment } from '../core/env/environment.ts';
export class Options {

View File

@ -22,9 +22,9 @@ import { Buffer } from 'https://deno.land/std@0.151.0/io/buffer.ts';
import { config, configSync } from 'https://deno.land/std@0.151.0/dotenv/mod.ts';
// Internally managed packages
import waitUntil from './modules/wait-until.ts';
import { core } from './modules/actions/index.ts';
import { dedent } from './modules/dedent.ts';
import waitUntil from './module/wait-until.ts';
import { core } from './module/actions/index.ts';
import { dedent } from './module/dedent.ts';
// Polyfill for https://github.com/tc39/proposal-string-dedent
String.dedent = dedent;

View File

@ -1,11 +1,10 @@
import { configSync } from './dependencies.ts';
import { configureLogger } from './core/logger/index.ts';
import { Options } from './config/options.ts';
import { CommandFactory } from './commands/command-factory.ts';
import { CommandFactory } from './command/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';
import { ParameterOptions } from './model/parameter-options.ts';
export class GameCI {
private readonly env: Environment;

View File

@ -5,7 +5,7 @@ import Platform from './platform.ts';
import UnityVersioning from './unity-versioning.ts';
import Versioning from './versioning.ts';
import { GitRepoReader } from './input-readers/git-repo.ts';
import { CommandInterface } from '../commands/command/command-interface.ts';
import { CommandInterface } from '../command/command-interface.ts';
import { Environment } from '../core/env/environment.ts';
import { Parameter } from './parameter.ts';
@ -168,7 +168,7 @@ class Parameters {
return filename;
}
static getUnitySerial() {
private getUnitySerial() {
let unitySerial = this.get('unitySerial');
if (!unitySerial && this.env.getOS() === 'windows') {
@ -180,7 +180,7 @@ class Parameters {
return unitySerial;
}
static getSerialFromLicense(license) {
private getSerialFromLicense(license) {
if (!license) {
throw new Error(String.dedent`
Missing Unity License File and no Unity Serial was found. If this is a personal license,

View File

@ -1254,10 +1254,10 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b"
integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==
"@types/node@^18.6.4":
version "18.6.4"
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.6.4.tgz#fd26723a8a3f8f46729812a7f9b4fc2d1608ed39"
integrity sha512-I4BD3L+6AWiUobfxZ49DlU43gtI+FTHSv9pE2Zekg6KjMpre4ByusaljW3vYSLJrvQ1ck1hUaeVu8HVlY3vzHg==
"@types/node@^18.7.13":
version "18.7.13"
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.13.tgz#23e6c5168333480d454243378b69e861ab5c011a"
integrity sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==
"@types/normalize-package-data@^2.4.0":
version "2.4.0"