From 19a71cb2788b9c1c8d8ced4af285bf91033ba626 Mon Sep 17 00:00:00 2001 From: Sam Wilkins Date: Wed, 8 Jan 2020 12:47:47 -0500 Subject: solr manager async rather than sync exec --- src/server/ApiManagers/SearchManager.ts | 26 +++++++++++++------------- src/server/index.ts | 1 + 2 files changed, 14 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/server/ApiManagers/SearchManager.ts b/src/server/ApiManagers/SearchManager.ts index cb30c9552..316ba09ed 100644 --- a/src/server/ApiManagers/SearchManager.ts +++ b/src/server/ApiManagers/SearchManager.ts @@ -4,11 +4,10 @@ import { Search } from "../Search"; const findInFiles = require('find-in-files'); import * as path from 'path'; import { pathToDirectory, Directory } from "./UploadManager"; -import { command_line } from "../ActionUtilities"; -import request = require('request-promise'); -import { red } from "colors"; +import { red, cyan, yellow } from "colors"; import RouteSubscriber from "../RouteSubscriber"; -import { execSync } from "child_process"; +import { exec } from "child_process"; +import { onWindows } from ".."; export class SearchManager extends ApiManager { @@ -71,15 +70,16 @@ export namespace SolrManager { export async function SetRunning(status: boolean): Promise { const args = status ? "start" : "stop -p 8983"; - try { - console.log(`Solr management: trying to ${args}`); - console.log(execSync(`${process.platform === "win32" ? "solr.cmd" : "solr"} ${args}`, { cwd: "./solr-8.3.1/bin" }).toString()); - return true; - } catch (e) { - console.log(red(`Solr management error: unable to ${args}`)); - console.log(e); - return false; - } + console.log(`Solr management: trying to ${args}`); + exec(`${onWindows ? "solr.cmd" : "solr"} ${args}`, { cwd: "./solr-8.3.1/bin" }, (error, stdout, stderr) => { + if (error) { + console.log(red(error.message)); + console.log(red(`Solr management error: unable to ${args}`)); + } + console.log(cyan(stdout)); + console.log(yellow(stderr)); + }); + return true; } } \ No newline at end of file diff --git a/src/server/index.ts b/src/server/index.ts index 75e6a77d5..6b3dfd614 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -25,6 +25,7 @@ import { yellow, red } from "colors"; import { Session } from "./Session/session"; import { DashSessionAgent } from "./DashSession"; +export const onWindows = process.platform === "win32"; export let sessionAgent: Session.AppliedSessionAgent; export const publicDirectory = path.resolve(__dirname, "public"); export const filesDirectory = path.resolve(publicDirectory, "files"); -- cgit v1.2.3-70-g09d2