« get me outta code hell

http-music - Command-line music player + utils (not a server!)
about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/promisify-process.js12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/promisify-process.js b/src/promisify-process.js
index ef8d0c6..4d06f8c 100644
--- a/src/promisify-process.js
+++ b/src/promisify-process.js
@@ -1,5 +1,7 @@
 'use strict'
 
+const { Writable } = require('stream')
+
 module.exports = function promisifyProcess(proc, showLogging = true) {
   // Takes a process (from child_process) and returns a promise that resolves
   // when the process exits (or rejects with a warning, if the exit code is
@@ -9,6 +11,16 @@ module.exports = function promisifyProcess(proc, showLogging = true) {
     if (showLogging) {
       proc.stdout.pipe(process.stdout)
       proc.stderr.pipe(process.stderr)
+    } else {
+      // For some mysterious reason, youtube-dl doesn't seem to work unless
+      // we pipe the output of it SOMEWHERE..
+
+      const emptyStream = () => Object.assign(new Writable(), {
+        write: () => {}
+      })
+
+      proc.stdout.pipe(emptyStream())
+      proc.stderr.pipe(emptyStream())
     }
 
     proc.on('exit', code => {