import * as plugins from './szci.plugins.ts'; // env import { SzciEnv } from './szci.classes.szcienv.ts'; import { SzciInfo } from './szci.classes.szciinfo.ts'; import { SzciCli } from './szci.classes.szcicli.ts'; import { SzciConfig } from './szci.classes.szciconfig.ts'; // connectors import { CloudlyConnector } from './connector.cloudly/cloudlyconnector.ts'; // managers import { SzciCloudronManager } from './manager.cloudron/index.ts'; import { SzciDockerManager } from './manager.docker/index.ts'; import { SzciGitManager } from './manager.git/index.ts'; import { SzciNodeJsManager } from './manager.nodejs/index.ts'; import { SzciNpmManager } from './manager.npm/index.ts'; export class Szci { public analytics: plugins.smartanalytics.Analytics; public cloudlyConnector!: CloudlyConnector; public szciEnv!: SzciEnv; public szciInfo!: SzciInfo; public szciConfig!: SzciConfig; public szciCli!: SzciCli; // managers public cloudronManager!: SzciCloudronManager; public dockerManager!: SzciDockerManager; public gitManager!: SzciGitManager; public nodejsManager!: SzciNodeJsManager; public npmManager!: SzciNpmManager; constructor() { this.analytics = new plugins.smartanalytics.Analytics({ apiEndPoint: 'https://pubapi.lossless.one/analytics', projectId: 'gitzone', appName: 'szci', }); } public async start() { this.cloudlyConnector = new CloudlyConnector(this); this.szciEnv = new SzciEnv(this); this.szciInfo = new SzciInfo(this); await this.szciInfo.printToConsole(); this.szciCli = new SzciCli(this); this.szciConfig = new SzciConfig(this); await this.szciConfig.init(); // managers this.cloudronManager = new SzciCloudronManager(this); this.dockerManager = new SzciDockerManager(this); this.gitManager = new SzciGitManager(this); this.nodejsManager = new SzciNodeJsManager(this); this.npmManager = new SzciNpmManager(this); this.szciCli.startParse(); } }