diff --git a/src/controller/StateController.ts b/src/controller/StateController.ts index 00506371..8f578b78 100644 --- a/src/controller/StateController.ts +++ b/src/controller/StateController.ts @@ -64,7 +64,7 @@ export class StateController implements IOBserver{ if (event === EventType.Finish) { await this.transitionToNextState(); } else { - if (event === EventType.UnknownError) { + if (event === EventType.UnknownError || event === EventType.UnresolvableError) { await new CleanUpState().onStart(); process.exit(1); } else { diff --git a/src/state/InitState.ts b/src/state/InitState.ts index 08dfed8a..be0993a0 100644 --- a/src/state/InitState.ts +++ b/src/state/InitState.ts @@ -67,6 +67,10 @@ export class InitState implements IState{ // Check if docker is running and it's the correct version const isCorrectDockerComposeVersion = await this.dockerService.isCorrectDockerComposeVersion(); const isDockerStarted = await this.dockerService.checkDocker(); + if (!(isCorrectDockerComposeVersion && isDockerStarted)) { + this.observer!.update(EventType.UnresolvableError); + return; + } await this.dockerService.isPortInUse(NECESSARY_PORTS.concat(OPTIONAL_PORTS)); this.logger.info(`Setting configuration for ${this.cliOptions.network} network with latest images on host ${this.cliOptions.host} with dev mode turned ${this.cliOptions.devMode ? 'on' : 'off'} using ${this.cliOptions.fullMode? 'full': 'turbo'} mode in ${this.cliOptions.multiNode? 'multi' : 'single'} node configuration...`, this.stateName); diff --git a/src/types/EventType.ts b/src/types/EventType.ts index 68b399cc..ccc7609c 100644 --- a/src/types/EventType.ts +++ b/src/types/EventType.ts @@ -21,5 +21,6 @@ export enum EventType{ Finish, DockerError, - UnknownError + UnknownError, + UnresolvableError }