From 4dfd57ae6f7dd2d014c3353111a2428a2288a588 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 18 Jan 2022 09:13:36 +0100 Subject: [PATCH] Better auth args handling for peertube cli --- server/tools/cli.ts | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/server/tools/cli.ts b/server/tools/cli.ts index a844b9dcf..7036ae3ec 100644 --- a/server/tools/cli.ts +++ b/server/tools/cli.ts @@ -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 -- 2.41.0