]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Better runner error UX when server is not run
authorChocobozzz <me@florianbigard.com>
Tue, 16 May 2023 07:24:31 +0000 (09:24 +0200)
committerChocobozzz <me@florianbigard.com>
Tue, 16 May 2023 07:27:49 +0000 (09:27 +0200)
packages/peertube-runner/peertube-runner.ts
packages/peertube-runner/shared/ipc/ipc-client.ts
support/doc/tools.md

index 9c3e498d63b9fd33d6369c846231a90d5789881d..858d85e6ab79cc2f066297905c68949eaf2185e3 100644 (file)
@@ -31,7 +31,7 @@ program.command('server')
     try {
       await RunnerServer.Instance.run()
     } catch (err) {
-      logger.error('Cannot run PeerTube runner as server mode', err)
+      logger.error(err, 'Cannot run PeerTube runner as server mode')
       process.exit(-1)
     }
   })
@@ -46,7 +46,8 @@ program.command('register')
     try {
       await registerRunner(options)
     } catch (err) {
-      logger.error('Cannot register this PeerTube runner.', err)
+      console.error('Cannot register this PeerTube runner.')
+      console.error(err)
       process.exit(-1)
     }
   })
@@ -58,7 +59,8 @@ program.command('unregister')
     try {
       await unregisterRunner(options)
     } catch (err) {
-      logger.error('Cannot unregister this PeerTube runner.', err)
+      console.error('Cannot unregister this PeerTube runner.')
+      console.error(err)
       process.exit(-1)
     }
   })
@@ -69,7 +71,8 @@ program.command('list-registered')
     try {
       await listRegistered()
     } catch (err) {
-      logger.error('Cannot list registered PeerTube instances.', err)
+      console.error('Cannot list registered PeerTube instances.')
+      console.error(err)
       process.exit(-1)
     }
   })
index 7f595115783c5347950bdcc74e379e85b6c31603..db8d7f1bf6c4e405ca48fae43cb24d2697a73dc8 100644 (file)
@@ -11,8 +11,21 @@ export class IPCClient {
     await ensureDir(ConfigManager.Instance.getSocketDirectory())
 
     const socketPath = ConfigManager.Instance.getSocketPath()
+
     this.netIPC = new NetIPC({ path: socketPath })
-    await this.netIPC.connect()
+
+    try {
+      await this.netIPC.connect()
+    } catch (err) {
+      if (err.code === 'ECONNREFUSED') {
+        throw new Error(
+          'This runner is not currently running in server mode on this system. ' +
+          'Please run it using the `server` command first (in another terminal for example) and then retry your command.'
+        )
+      }
+
+      throw err
+    }
   }
 
   async askRegister (options: {
index c86f0d12bf5f19d36c60f12d2c65bb4ed6546c74..5ddef5c5ac58e42c37512374d2341eef1c792140 100644 (file)
@@ -376,7 +376,7 @@ peertube-runner [commands] --id instance-3
 
 ### Run the server
 
-Run the runner in server mode so it can run transcoding jobs of registered PeerTube instances:
+You need to run the runner in server mode first so it can run transcoding jobs of registered PeerTube instances:
 
 ```bash
 peertube-runner server
@@ -384,7 +384,7 @@ peertube-runner server
 
 ### Register
 
-To register the runner on a new PeerTube instance so the runner can process its transcoding job:
+Then, you can register the runner on a new PeerTube instance so the runner can process its transcoding job:
 
 ```bash
 peertube-runner register --url http://peertube.example.com --registration-token ptrrt-... --runner-name my-runner-name