diff --git a/src/Mutagen.ts b/src/Mutagen.ts index b7fcf20..f7fac6b 100644 --- a/src/Mutagen.ts +++ b/src/Mutagen.ts @@ -49,6 +49,17 @@ export class Mutagen { return true; } + isRunning(mutagenConfigFile: string): boolean { + try { + // Check if the mutagen project is running + process.execSync(`mutagen project list -f ${mutagenConfigFile}`); + } + catch (e) { + return false; + } + return true; + } + start(mutagenConfigFile: string) { try { this.logger.verbose(`starting mutagen`); @@ -59,12 +70,15 @@ export class Mutagen { } } stop(mutagenConfigFile: string) { - try { - this.logger.verbose(`stopping mutagen`); - const stdout = process.execSync(`mutagen project terminate -f ${mutagenConfigFile}`); - this.logger.verbose(`stopped mutagen: ${stdout}`); - } catch (e) { - throw new MutagenProcessError(e); + // If the project is running, stop it. + if (this.isRunning(mutagenConfigFile)) { + try { + this.logger.verbose(`stopping mutagen`); + const stdout = process.execSync(`mutagen project terminate -f ${mutagenConfigFile}`); + this.logger.verbose(`stopped mutagen: ${stdout}`); + } catch (e) { + throw new MutagenProcessError(e); + } } } } diff --git a/src/MutagenConfigManipulator.ts b/src/MutagenConfigManipulator.ts index 5dcbec5..fb5e45c 100644 --- a/src/MutagenConfigManipulator.ts +++ b/src/MutagenConfigManipulator.ts @@ -111,4 +111,4 @@ export class MutagenConfigManipulator { throw new MutagenConfigWriteError(e); } } -} \ No newline at end of file +} diff --git a/src/app.ts b/src/app.ts index a119284..96d5279 100644 --- a/src/app.ts +++ b/src/app.ts @@ -65,7 +65,11 @@ export = (app: App) => { logger.info('stopped mutagen'); } catch (e) { - handleError(e, logger); + if (e instanceof MutagenConfigNotFoundError) { + logger.verbose('mutagen config not found: ' + e.message); + } else { + handleError(e, logger); + } } }); };