Prevent simple errors from killing containers

This commit is contained in:
1computer1 2019-06-01 01:21:22 -04:00
parent 2f38bc640c
commit 0acb75aad6
27 changed files with 42 additions and 36 deletions

View file

@ -29,7 +29,13 @@ class MessageInvalidListener extends Listener {
let errored = false;
let result;
try {
result = await this.client.languageHandler.evalCode(parse);
const { stdout, stderr } = await this.client.languageHandler.evalCode(parse);
if (stderr) {
errored = true;
result = stderr;
} else {
result = stdout;
}
} catch (e) {
errored = true;
result = e.message;

View file

@ -155,14 +155,15 @@ class LanguageHandler extends AkairoHandler {
}, timeout);
}
let data = '';
let stdout = '';
let stderr = '';
let error;
proc.stdout.on('data', chunk => {
data += chunk;
stdout += chunk;
});
proc.stderr.on('data', chunk => {
data += chunk;
stderr += chunk;
});
proc.on('error', e => {
@ -174,12 +175,12 @@ class LanguageHandler extends AkairoHandler {
handled = true;
if (status !== 0 || error) {
if (!error) {
error = new Error(data || 'Something went wrong');
error = new Error(stderr || 'Something went wrong');
}
reject(error);
} else {
resolve(data);
resolve({ stdout, stderr });
}
}
});