]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Better auth args handling for peertube cli
authorChocobozzz <me@florianbigard.com>
Tue, 18 Jan 2022 08:13:36 +0000 (09:13 +0100)
committerChocobozzz <me@florianbigard.com>
Tue, 18 Jan 2022 08:13:36 +0000 (09:13 +0100)
server/tools/cli.ts

index a844b9dcfd66bc28c1a76a2b0570faf670baed02..7036ae3ecc75981ffffd729514ee441e27f99668 100644 (file)
@@ -73,16 +73,23 @@ function getRemoteObjectOrDie (
 ): { url: string, username: string, password: string } {
   const options = program.opts()
 
-  if (!options.url || !options.username || !options.password) {
-    // No remote and we don't have program parameters: quit
-    if (settings.remotes.length === 0 || Object.keys(netrc.machines).length === 0) {
-      if (!options.url) console.error('--url field is required.')
-      if (!options.username) console.error('--username field is required.')
-      if (!options.password) console.error('--password field is required.')
-
-      return process.exit(-1)
+  const manualOptionMode = options.url || options.username || options.password
+
+  // Check parameters validity
+  if (manualOptionMode || settings.remotes.length === 0 || Object.keys(netrc.machines).length === 0) {
+    let exit = false
+
+    for (const key of [ 'url', 'username', 'password' ]) {
+      if (!options[key]) {
+        console.error(`--${key} field is required`)
+        exit = true
+      }
     }
 
+    if (exit) process.exit(-1)
+  }
+
+  if (!manualOptionMode) {
     let url: string = options.url
     let username: string = options.username
     let password: string = options.password