From 7c9cf6e70db8327a39c36cd119814b3a8c2047ae Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Mon, 30 Jul 2018 16:08:14 +0200 Subject: [PATCH] fix(structure): clean up --- .gitlab-ci.yml | 5 +- package.json | 2 +- test/test.ts | 2 +- ts/smartshell.classes.shellenv.ts | 8 +-- ts/smartshell.classes.shelllog.ts | 6 +-- ts/smartshell.classes.smartshell.ts | 79 ++++++++++++----------------- ts/smartshell.wrap.ts | 59 --------------------- 7 files changed, 44 insertions(+), 117 deletions(-) delete mode 100644 ts/smartshell.wrap.ts diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8b576a0..a1d614e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -117,8 +117,9 @@ pages: image: hosttoday/ht-docker-node:npmci stage: metadata script: - - npmci command npm install -g npmpage - - npmci command npmpage + - npmci command npm install -g typedoc typescript + - npmci npm install + - npmci command typedoc --module "commonjs" --target "ES2016" --out public/ ts/ tags: - docker - notpriv diff --git a/package.json b/package.json index d36e396..7f54bd5 100644 --- a/package.json +++ b/package.json @@ -33,4 +33,4 @@ "@types/which": "^1.3.1", "which": "^1.3.1" } -} +} \ No newline at end of file diff --git a/test/test.ts b/test/test.ts index 1f562d5..215cf0b 100644 --- a/test/test.ts +++ b/test/test.ts @@ -46,7 +46,7 @@ tap.test('smartshell should run async', async () => { tap.test('should be able to find git', async () => { testSmartshell.exec('git --version'); -}) +}); tap.start({ throwOnError: true diff --git a/ts/smartshell.classes.shellenv.ts b/ts/smartshell.classes.shellenv.ts index 8da84fc..504bb34 100644 --- a/ts/smartshell.classes.shellenv.ts +++ b/ts/smartshell.classes.shellenv.ts @@ -8,7 +8,7 @@ export interface IShellEnvContructorOptions { export class ShellEnv { executor: TExecutor; sourceFileArray: string[] = []; - + /** * constructor for the shellenv */ @@ -17,11 +17,11 @@ export class ShellEnv { for (let sourceFilePath of optionsArg.sourceFilePaths) { this.sourceFileArray.push(sourceFilePath); } - }; + } /** * add files that are going to be sourced when running a command - * @param sourceFilePathsArray + * @param sourceFilePathsArray */ addSourceFiles(sourceFilePathsArray: string[]) { for (let sourceFilePath of sourceFilePathsArray) { @@ -47,4 +47,4 @@ export class ShellEnv { return commandArg; } } -} \ No newline at end of file +} diff --git a/ts/smartshell.classes.shelllog.ts b/ts/smartshell.classes.shelllog.ts index 12f0b26..4733b97 100644 --- a/ts/smartshell.classes.shelllog.ts +++ b/ts/smartshell.classes.shelllog.ts @@ -9,7 +9,7 @@ export class ShellLog { /** * log data to console - * @param dataArg + * @param dataArg */ logToConsole(dataArg: string | Buffer): void { // make sure we have the data as string @@ -34,11 +34,11 @@ export class ShellLog { } return dataArg; })(); - this.logStore = Buffer.concat([this.logStore,dataBuffer]); + this.logStore = Buffer.concat([this.logStore, dataBuffer]); } logAndAdd(dataArg: string | Buffer): void { this.logToConsole(dataArg); this.addToBuffer(dataArg); } -} \ No newline at end of file +} diff --git a/ts/smartshell.classes.smartshell.ts b/ts/smartshell.classes.smartshell.ts index 7b74f4e..8092ed1 100644 --- a/ts/smartshell.classes.smartshell.ts +++ b/ts/smartshell.classes.smartshell.ts @@ -1,11 +1,10 @@ // -- imports -- import * as plugins from './smartshell.plugins'; -import * as smartshellWrap from './smartshell.wrap'; -import { ShellEnv, IShellEnvContructorOptions, TExecutor, } from './smartshell.classes.shellenv'; +import { ShellEnv, IShellEnvContructorOptions, TExecutor } from './smartshell.classes.shellenv'; import { ShellLog } from './smartshell.classes.shelllog'; -import * as cp from "child_process"; -import { Deferred } from "@pushrocks/smartpromise"; +import * as cp from 'child_process'; +import { Deferred } from '@pushrocks/smartpromise'; // -- interfaces -- /** @@ -35,7 +34,7 @@ export class Smartshell { /** * imports path into the shell from env if available and returns it with */ - private _importEnvVarPath (stringArg): string { + private _importEnvVarPath(stringArg): string { if (process.env.SMARTSHELL_PATH) { let commandResult = `PATH=${process.env.SMARTSHELL_PATH} && ${stringArg}`; // console.log(commandResult) @@ -43,13 +42,13 @@ export class Smartshell { } else { return stringArg; } - }; + } /** * executes a given command async * @param commandStringArg */ - private async _exec ( + private async _exec( commandStringArg: string, silentArg: boolean = false, strictArg = false, @@ -59,7 +58,7 @@ export class Smartshell { const done = plugins.smartpromise.defer(); const childProcessEnded = plugins.smartpromise.defer(); // build commandToExecute - let commandToExecute = commandStringArg + let commandToExecute = commandStringArg; commandToExecute = this.shellEnv.createEnvExecString(commandStringArg); commandToExecute = this._importEnvVarPath(commandToExecute); const spawnlogInstance = new ShellLog(); @@ -68,37 +67,37 @@ export class Smartshell { env: process.env }); - execChildProcess.stdout.on("data", data => { + execChildProcess.stdout.on('data', data => { if (!silentArg) { spawnlogInstance.logToConsole(data); } spawnlogInstance.addToBuffer(data); }); - execChildProcess.stderr.on("data", data => { + execChildProcess.stderr.on('data', data => { if (!silentArg) { spawnlogInstance.logToConsole(data); } spawnlogInstance.addToBuffer(data); }); - if(streamingArg) { + if (streamingArg) { done.resolve({ childProcess: execChildProcess, finalPromise: childProcessEnded.promise }); } - execChildProcess.on("exit", (code, signal) => { - if(strictArg && code === 1) { + execChildProcess.on('exit', (code, signal) => { + if (strictArg && code === 1) { done.reject(); } const execResult = { exitCode: code, stdout: spawnlogInstance.logStore.toString() - } + }; - if(!streamingArg) { + if (!streamingArg) { done.resolve(execResult); } childProcessEnded.resolve(execResult); @@ -106,72 +105,58 @@ export class Smartshell { const result = await done.promise; return result; - }; + } - async exec ( - commandStringArg: string - ): Promise { + async exec(commandStringArg: string): Promise { return (await this._exec(commandStringArg, false)) as IExecResult; - }; - + } + /** * executes a given command async and silent * @param commandStringArg */ - async execSilent ( - commandStringArg: string - ): Promise { + async execSilent(commandStringArg: string): Promise { return (await this._exec(commandStringArg, true)) as IExecResult; - }; + } /** * executes a command async and strict, meaning it rejects the promise if something happens */ - async execStrict ( - commandStringArg: string - ): Promise { - return (await this._exec(commandStringArg, true, true)) as IExecResult; - }; + async execStrict(commandStringArg: string): Promise { + return (await this._exec(commandStringArg, true, true)) as IExecResult; + } /** * executes a command and allows you to stream output */ - async execStreaming ( + async execStreaming( commandStringArg: string, silentArg: boolean = false ): Promise { return (await this._exec(commandStringArg, silentArg, false, true)) as IExecResultStreaming; - }; + } - async execStreamingSilent (commandStringArg: string) { + async execStreamingSilent(commandStringArg: string) { return (await this.execStreaming(commandStringArg, true)) as IExecResultStreaming; - }; + } /** * executes a command and returns promise that will be fullfilled once an putput line matches RegexArg * @param commandStringArg * @param regexArg */ - async execAndWaitForLine ( - commandStringArg: string, - regexArg: RegExp, - silentArg: boolean = false - ) { + async execAndWaitForLine(commandStringArg: string, regexArg: RegExp, silentArg: boolean = false) { let done = plugins.smartpromise.defer(); let execStreamingResult = await this.execStreaming(commandStringArg, silentArg); - execStreamingResult.childProcess.stdout.on("data", (stdOutChunk: string) => { + execStreamingResult.childProcess.stdout.on('data', (stdOutChunk: string) => { if (regexArg.test(stdOutChunk)) { done.resolve(); } }); return done.promise; - }; + } - async execAndWaitForLineSilent ( - commandStringArg: string, - regexArg: RegExp - ) { + async execAndWaitForLineSilent(commandStringArg: string, regexArg: RegExp) { this.execAndWaitForLine(commandStringArg, regexArg, true); - }; - + } } diff --git a/ts/smartshell.wrap.ts b/ts/smartshell.wrap.ts deleted file mode 100644 index 1f5c819..0000000 --- a/ts/smartshell.wrap.ts +++ /dev/null @@ -1,59 +0,0 @@ -import * as plugins from "./smartshell.plugins"; -import { ShellLog } from "./smartshell.classes.shelllog"; - -// interfaces -import * as cp from "child_process"; -import { Deferred } from "@pushrocks/smartpromise"; - -/** - * interface for ExecResult - */ -export interface IExecResult { - exitCode: number; - stdout: string; -} - -/** - * interface for streaming ExecResult - */ -export interface IExecResultStreaming { - childProcess: cp.ChildProcess; - finalPromise: Promise; -} - - - -/** - * get a path - */ -export let which = (cmd: string): Promise => { - let done = plugins.smartpromise.defer(); - plugins.which(cmd, (err, path: string) => { - if (err) { - done.reject(err); - } - done.resolve(path); - }); - return done.promise; -}; - - -/* ///////////////////////////////////////////////////////// - -/** - * executes silently and returns IExecResult - * @param commandArg - - async execSilent(commandArg: string) { - let execCommand = this..createExecString(commandArg); - return await smartshellWrap.execSilent(execCommand); - } - - /** - * executes and returns IExecResult - * @param commandArg - - async exec(commandArg: string) { - let execCommand = this.createExecString(commandArg); - return await smartshellWrap.exec(execCommand); - } */ \ No newline at end of file