]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/extra-utils/server/server.ts
Display server logs when server run fails
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / server / server.ts
index 31224ebe9f70f1a0b2149da9f5206addca049f83..9da2938772fdb904f7a6d37fe4c6778ae55d2c37 100644 (file)
@@ -220,10 +220,11 @@ export class PeerTubeServer {
 
     return new Promise<void>((res, rej) => {
       const self = this
+      let aggregatedLogs = ''
 
       this.app = fork(join(root(), 'dist', 'server.js'), options.peertubeArgs || [], forkOptions)
 
-      const onPeerTubeExit = () => rej(new Error('Process exited'))
+      const onPeerTubeExit = () => rej(new Error('Process exited:\n' + aggregatedLogs))
       const onParentExit = () => {
         if (!this.app || !this.app.pid) return
 
@@ -238,10 +239,13 @@ export class PeerTubeServer {
       this.app.stdout.on('data', function onStdout (data) {
         let dontContinue = false
 
+        const log: string = data.toString()
+        aggregatedLogs += log
+
         // Capture things if we want to
         for (const key of Object.keys(regexps)) {
           const regexp = regexps[key]
-          const matches = data.toString().match(regexp)
+          const matches = log.match(regexp)
           if (matches !== null) {
             if (key === 'client_id') self.store.client.id = matches[1]
             else if (key === 'client_secret') self.store.client.secret = matches[1]
@@ -252,7 +256,7 @@ export class PeerTubeServer {
 
         // Check if all required sentences are here
         for (const key of Object.keys(serverRunString)) {
-          if (data.toString().indexOf(key) !== -1) serverRunString[key] = true
+          if (log.includes(key)) serverRunString[key] = true
           if (serverRunString[key] === false) dontContinue = true
         }
 
@@ -260,7 +264,7 @@ export class PeerTubeServer {
         if (dontContinue === true) return
 
         if (options.hideLogs === false) {
-          console.log(data.toString())
+          console.log(log)
         } else {
           process.removeListener('exit', onParentExit)
           self.app.stdout.removeListener('data', onStdout)