Clean up peertube auth
authorChocobozzz <me@florianbigard.com>
Wed, 14 Nov 2018 14:45:50 +0000 (15:45 +0100)
committerChocobozzz <me@florianbigard.com>
Wed, 14 Nov 2018 15:32:28 +0000 (16:32 +0100)
server/tests/cli/peertube.ts
server/tools/peertube-auth.ts
server/tools/peertube.ts

index 65cb05a1a76927c56ffa75d8f0442b6e1731cec1..7a712bc4e9466493f80eeda48dc5a4089dc091a9 100644 (file)
@@ -44,6 +44,8 @@ describe('Test CLI wrapper', function () {
   })
 
   after(async function () {
+    this.timeout(10000)
+
     await execCLI(cmd + ` auth del ${server.url}`)
 
     killallServers([ server ])
index 33438811eed2037e35314f6052e1c2209d2afdc7..a962944a40735a37a593ae6a2b31739eb961b5c4 100644 (file)
@@ -5,34 +5,25 @@ import { getSettings, writeSettings, netrc } from './cli'
 import { isHostValid } from '../helpers/custom-validators/servers'
 import { isUserUsernameValid } from '../helpers/custom-validators/users'
 
-function delInstance (url: string) {
-  return new Promise((res, rej): void => {
-    getSettings()
-      .then(async (settings) => {
-        settings.remotes.splice(settings.remotes.indexOf(url))
-        await writeSettings(settings)
-        delete netrc.machines[url]
-        netrc.save()
-        res()
-      })
-      .catch(err => rej(err))
-  })
+async function delInstance (url: string) {
+  const settings = await getSettings()
+
+  settings.remotes.splice(settings.remotes.indexOf(url))
+  await writeSettings(settings)
+
+  delete netrc.machines[url]
+  await netrc.save()
 }
 
 async function setInstance (url: string, username: string, password: string) {
-  return new Promise((res, rej): void => {
-    getSettings()
-      .then(async settings => {
-        if (settings.remotes.indexOf(url) === -1) {
-          settings.remotes.push(url)
-        }
-        await writeSettings(settings)
-        netrc.machines[url] = { login: username, password }
-        netrc.save()
-        res()
-      })
-      .catch(err => rej(err))
-  })
+  const settings = await getSettings()
+  if (settings.remotes.indexOf(url) === -1) {
+    settings.remotes.push(url)
+  }
+  await writeSettings(settings)
+
+  netrc.machines[url] = { login: username, password }
+  await netrc.save()
 }
 
 function isURLaPeerTubeInstance (url: string) {
@@ -71,56 +62,60 @@ program
           required: true
         }
       }
-    }, (_, result) => {
-      setInstance(result.url, result.username, result.password)
+    }, async (_, result) => {
+      await setInstance(result.url, result.username, result.password)
+
+      process.exit(0)
     })
   })
 
 program
   .command('del <url>')
   .description('unregisters a remote instance')
-  .action((url) => {
-    delInstance(url)
+  .action(async url => {
+    await delInstance(url)
+
+    process.exit(0)
   })
 
 program
   .command('list')
   .description('lists registered remote instances')
-  .action(() => {
-    getSettings()
-      .then(settings => {
-        const table = new Table({
-          head: ['instance', 'login'],
-          colWidths: [30, 30]
-        })
-        netrc.loadSync()
-        settings.remotes.forEach(element => {
-          table.push([
-            element,
-            netrc.machines[element].login
-          ])
-        })
-
-        console.log(table.toString())
-      })
+  .action(async () => {
+    const settings = await getSettings()
+    const table = new Table({
+      head: ['instance', 'login'],
+      colWidths: [30, 30]
+    })
+    netrc.loadSync()
+    settings.remotes.forEach(element => {
+      table.push([
+        element,
+        netrc.machines[element].login
+      ])
+    })
+
+    console.log(table.toString())
+
+    process.exit(0)
   })
 
 program
   .command('set-default <url>')
   .description('set an existing entry as default')
-  .action((url) => {
-    getSettings()
-      .then(settings => {
-        const instanceExists = settings.remotes.indexOf(url) !== -1
-
-        if (instanceExists) {
-          settings.default = settings.remotes.indexOf(url)
-          writeSettings(settings)
-        } else {
-          console.log('<url> is not a registered instance.')
-          process.exit(-1)
-        }
-      })
+  .action(async url => {
+    const settings = await getSettings()
+    const instanceExists = settings.remotes.indexOf(url) !== -1
+
+    if (instanceExists) {
+      settings.default = settings.remotes.indexOf(url)
+      await writeSettings(settings)
+
+      process.exit(0)
+    } else {
+      console.log('<url> is not a registered instance.')
+      process.exit(-1)
+    }
   })
 
 program.on('--help', function () {
index c8b9fa744d1a9cc7a421258bde09195bccacb8e2..5d3ab2815db44f1534415fc262849749917322c3 100755 (executable)
@@ -58,7 +58,7 @@ if (!process.argv.slice(2).length) {
             ,"\\/
       _,.__/"\\/_                     (the CLI for red chocobos)
      / \\) "./,  ".
-  --/---"---" "-) )---- by Chocobozzz et al.`)
+  --/---"---" "-) )---- by Chocobozzz et al.\n`)
 }
 
 getSettings()