From b84c91197f07e7620f5fe0c569520775818c73de Mon Sep 17 00:00:00 2001
From: otofune <otofune@gmail.com>
Date: Wed, 25 Jan 2017 20:38:19 +0900
Subject: [PATCH] [utils] dependencyInfo: use child_process instead of shelljs

drop shelljs from dependencies.
---
 package.json                |  2 --
 src/utils/dependencyInfo.ts | 14 +++++---------
 2 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/package.json b/package.json
index 751bd4f84..31f3359ec 100644
--- a/package.json
+++ b/package.json
@@ -58,7 +58,6 @@
     "@types/request": "0.0.39",
     "@types/rimraf": "0.0.28",
     "@types/serve-favicon": "2.2.28",
-    "@types/shelljs": "0.3.33",
     "@types/twitter": "0.0.28",
     "@types/uuid": "2.0.29",
     "@types/vinyl-buffer": "0.0.28",
@@ -139,7 +138,6 @@
     "rndstr": "1.0.0",
     "s-age": "1.1.0",
     "serve-favicon": "2.3.2",
-    "shelljs": "0.7.6",
     "subdomain": "1.2.0",
     "summaly": "1.3.0",
     "swagger-jsdoc": "1.9.0",
diff --git a/src/utils/dependencyInfo.ts b/src/utils/dependencyInfo.ts
index 9d2c6a1d4..c7c1441ec 100644
--- a/src/utils/dependencyInfo.ts
+++ b/src/utils/dependencyInfo.ts
@@ -1,5 +1,5 @@
 import Logger from './logger';
-import { exec } from 'shelljs';
+import { execSync } from 'child_process';
 
 export default class {
 	logger: Logger;
@@ -15,20 +15,16 @@ export default class {
 	}
 
 	show(serviceName: string, command: string, transform: (x: string) => RegExpMatchArray): void {
-		const code = {
-			success: 0,
-			notFound: 127
-		};
-		const x = exec(command, { silent: true }) as any;
-		if (x.code === code.success) {
-			let ver = transform(x.stdout);
+		try {
+			const x = execSync(command, { stdio: ['pipe', 'pipe', 'ignore'] });
+			const ver = transform(x.toString());
 			if (ver != null) {
 				this.logger.info(`${serviceName} ${ver[1]} found`);
 			} else {
 				this.logger.warn(`${serviceName} not found`);
 				this.logger.warn(`Regexp used for version check of ${serviceName} is probably messed up`);
 			}
-		} else if (x.code === code.notFound) {
+		} catch (e) {
 			this.logger.warn(`${serviceName} not found`);
 		}
 	}