]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/extra-utils/server/server.ts
Simplify createServer args
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / server / server.ts
index b1347661f20cfec18f586246a473f33725dc8cdc..5bdcbac5243093449b0cd16019344be66443927d 100644 (file)
@@ -41,7 +41,8 @@ import { StatsCommand } from './stats-command'
 
 export type RunServerOptions = {
   hideLogs?: boolean
-  execArgv?: string[]
+  nodeArgs?: string[]
+  peertubeArgs?: string[]
 }
 
 export class PeerTubeServer {
@@ -176,13 +177,13 @@ export class PeerTubeServer {
     this.port = parseInt(parsed.port)
   }
 
-  async flushAndRun (configOverride?: Object, args = [], options: RunServerOptions = {}) {
+  async flushAndRun (configOverride?: Object, options: RunServerOptions = {}) {
     await ServersCommand.flushTests(this.internalServerNumber)
 
-    return this.run(configOverride, args, options)
+    return this.run(configOverride, options)
   }
 
-  async run (configOverrideArg?: any, args = [], options: RunServerOptions = {}) {
+  async run (configOverrideArg?: any, options: RunServerOptions = {}) {
     // These actions are async so we need to be sure that they have both been done
     const serverRunString = {
       'HTTP server listening': false
@@ -215,11 +216,13 @@ export class PeerTubeServer {
       silent: true,
       env,
       detached: true,
-      execArgv: options.execArgv || []
+      execArgv: options.nodeArgs || []
     }
 
     return new Promise<void>(res => {
-      this.app = fork(join(root(), 'dist', 'server.js'), args, forkOptions)
+      const self = this
+
+      this.app = fork(join(root(), 'dist', 'server.js'), options.peertubeArgs || [], forkOptions)
       this.app.stdout.on('data', function onStdout (data) {
         let dontContinue = false
 
@@ -228,10 +231,10 @@ export class PeerTubeServer {
           const regexp = regexps[key]
           const matches = data.toString().match(regexp)
           if (matches !== null) {
-            if (key === 'client_id') this.store.client.id = matches[1]
-            else if (key === 'client_secret') this.store.client.secret = matches[1]
-            else if (key === 'user_username') this.store.user.username = matches[1]
-            else if (key === 'user_password') this.store.user.password = matches[1]
+            if (key === 'client_id') self.store.client.id = matches[1]
+            else if (key === 'client_secret') self.store.client.secret = matches[1]
+            else if (key === 'user_username') self.store.user.username = matches[1]
+            else if (key === 'user_password') self.store.user.password = matches[1]
           }
         }
 
@@ -247,12 +250,12 @@ export class PeerTubeServer {
         if (options.hideLogs === false) {
           console.log(data.toString())
         } else {
-          this.app.stdout.removeListener('data', onStdout)
+          self.app.stdout.removeListener('data', onStdout)
         }
 
         process.on('exit', () => {
           try {
-            process.kill(this.server.app.pid)
+            process.kill(self.app.pid)
           } catch { /* empty */ }
         })