diff --git a/deemix/downloader.js b/deemix/downloader.js index 8dcf969..cdf0f52 100644 --- a/deemix/downloader.js +++ b/deemix/downloader.js @@ -700,19 +700,14 @@ class Downloader { try { if (this.settings.executeCommand !== "") { const child = exec(this.settings.executeCommand.replaceAll("%folder%", shellEscape(this.downloadObject.extrasPath)).replaceAll("%filename%", shellEscape(track.filename)), - (error, stdout, stderr) => { - if (error) { - this.afterDownloadErrorReport("ExecuteCommand", error) - } - const itemData = { stderr, stdout }; - if (stderr) { - this.log(itemData, "stderr") - } - if (stdout) { - this.log(itemData, "stdout") - } - }) - + (error, stdout, stderr) => { + if (error) this.afterDownloadErrorReport("ExecuteCommand", error) + const itemData = { stderr, stdout } + if (stderr) this.log(itemData, "stderr") + if (stdout) this.log(itemData, "stdout") + } + ) + await new Promise((resolve) => { child.on('close', resolve) }) @@ -806,19 +801,14 @@ class Downloader { try{ if (this.settings.executeCommand !== "") { const child = exec(this.settings.executeCommand.replaceAll("%folder%", shellEscape(this.downloadObject.extrasPath)).replaceAll("%filename%", ''), - (error, stdout, stderr) => { - if (error) { - this.afterDownloadErrorReport("ExecuteCommand", error) - } - const itemData = { stderr, stdout }; - if (stderr) { - this.log(itemData, "stderr") - } - if (stdout) { - this.log(itemData, "stdout") - } - }) - + (error, stdout, stderr) => { + if (error) this.afterDownloadErrorReport("ExecuteCommand", error) + const itemData = { stderr, stdout } + if (stderr) this.log(itemData, "stderr") + if (stdout) this.log(itemData, "stdout") + } + ) + await new Promise((resolve) => { child.on('close', resolve) })