69 lines
1.6 KiB
TypeScript
69 lines
1.6 KiB
TypeScript
import { logger } from './szci.logging.ts';
|
|
import * as plugins from './szci.plugins.ts';
|
|
import * as paths from './szci.paths.ts';
|
|
import { Szci } from './szci.classes.szci.ts';
|
|
|
|
export class SzciCli {
|
|
public szciRef: Szci;
|
|
public smartcli: plugins.smartcli.Smartcli;
|
|
|
|
constructor(szciArg: Szci) {
|
|
this.szciRef = szciArg;
|
|
this.smartcli = new plugins.smartcli.Smartcli();
|
|
this.smartcli.addVersion(this.szciRef.szciInfo.version);
|
|
|
|
// docker
|
|
this.smartcli.addCommand('docker').subscribe(
|
|
async (argvArg) => {
|
|
await this.szciRef.dockerManager.handleCli(argvArg);
|
|
},
|
|
(err) => {
|
|
console.log(err);
|
|
Deno.exit(1);
|
|
}
|
|
);
|
|
|
|
// git
|
|
this.smartcli.addCommand('git').subscribe(
|
|
async (argvArg) => {
|
|
await this.szciRef.gitManager.handleCli(argvArg);
|
|
},
|
|
(err) => {
|
|
console.log(err);
|
|
Deno.exit(1);
|
|
}
|
|
);
|
|
|
|
// node
|
|
this.smartcli.addCommand('node').subscribe(
|
|
async (argvArg) => {
|
|
await this.szciRef.nodejsManager.handleCli(argvArg);
|
|
},
|
|
(err) => {
|
|
console.log(err);
|
|
Deno.exit(1);
|
|
}
|
|
);
|
|
|
|
// npm
|
|
this.smartcli.addCommand('npm').subscribe(
|
|
async (argvArg) => {
|
|
await this.szciRef.npmManager.handleCli(argvArg);
|
|
},
|
|
(err) => {
|
|
console.log(err);
|
|
}
|
|
);
|
|
|
|
// ssh
|
|
this.smartcli.addCommand('ssh').subscribe(async (argvArg) => {
|
|
const modSsh = await import('./mod_ssh/index.ts');
|
|
await modSsh.handleCli(argvArg);
|
|
});
|
|
}
|
|
|
|
public startParse = () => {
|
|
this.smartcli.startParse();
|
|
};
|
|
}
|