Clean up peertube auth

This commit is contained in:
Chocobozzz 2018-11-14 15:45:50 +01:00
parent 5c6d985fae
commit e5cb43e071
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
3 changed files with 55 additions and 58 deletions

View File

@ -44,6 +44,8 @@ describe('Test CLI wrapper', function () {
}) })
after(async function () { after(async function () {
this.timeout(10000)
await execCLI(cmd + ` auth del ${server.url}`) await execCLI(cmd + ` auth del ${server.url}`)
killallServers([ server ]) killallServers([ server ])

View File

@ -5,34 +5,25 @@ import { getSettings, writeSettings, netrc } from './cli'
import { isHostValid } from '../helpers/custom-validators/servers' import { isHostValid } from '../helpers/custom-validators/servers'
import { isUserUsernameValid } from '../helpers/custom-validators/users' import { isUserUsernameValid } from '../helpers/custom-validators/users'
function delInstance (url: string) { async function delInstance (url: string) {
return new Promise((res, rej): void => { const settings = await getSettings()
getSettings()
.then(async (settings) => {
settings.remotes.splice(settings.remotes.indexOf(url)) settings.remotes.splice(settings.remotes.indexOf(url))
await writeSettings(settings) await writeSettings(settings)
delete netrc.machines[url] delete netrc.machines[url]
netrc.save() await netrc.save()
res()
})
.catch(err => rej(err))
})
} }
async function setInstance (url: string, username: string, password: string) { async function setInstance (url: string, username: string, password: string) {
return new Promise((res, rej): void => { const settings = await getSettings()
getSettings()
.then(async settings => {
if (settings.remotes.indexOf(url) === -1) { if (settings.remotes.indexOf(url) === -1) {
settings.remotes.push(url) settings.remotes.push(url)
} }
await writeSettings(settings) await writeSettings(settings)
netrc.machines[url] = { login: username, password } netrc.machines[url] = { login: username, password }
netrc.save() await netrc.save()
res()
})
.catch(err => rej(err))
})
} }
function isURLaPeerTubeInstance (url: string) { function isURLaPeerTubeInstance (url: string) {
@ -71,24 +62,27 @@ program
required: true required: true
} }
} }
}, (_, result) => { }, async (_, result) => {
setInstance(result.url, result.username, result.password) await setInstance(result.url, result.username, result.password)
process.exit(0)
}) })
}) })
program program
.command('del <url>') .command('del <url>')
.description('unregisters a remote instance') .description('unregisters a remote instance')
.action((url) => { .action(async url => {
delInstance(url) await delInstance(url)
process.exit(0)
}) })
program program
.command('list') .command('list')
.description('lists registered remote instances') .description('lists registered remote instances')
.action(() => { .action(async () => {
getSettings() const settings = await getSettings()
.then(settings => {
const table = new Table({ const table = new Table({
head: ['instance', 'login'], head: ['instance', 'login'],
colWidths: [30, 30] colWidths: [30, 30]
@ -102,26 +96,27 @@ program
}) })
console.log(table.toString()) console.log(table.toString())
})
process.exit(0)
}) })
program program
.command('set-default <url>') .command('set-default <url>')
.description('set an existing entry as default') .description('set an existing entry as default')
.action((url) => { .action(async url => {
getSettings() const settings = await getSettings()
.then(settings => {
const instanceExists = settings.remotes.indexOf(url) !== -1 const instanceExists = settings.remotes.indexOf(url) !== -1
if (instanceExists) { if (instanceExists) {
settings.default = settings.remotes.indexOf(url) settings.default = settings.remotes.indexOf(url)
writeSettings(settings) await writeSettings(settings)
process.exit(0)
} else { } else {
console.log('<url> is not a registered instance.') console.log('<url> is not a registered instance.')
process.exit(-1) process.exit(-1)
} }
}) })
})
program.on('--help', function () { program.on('--help', function () {
console.log(' Examples:') console.log(' Examples:')

View File

@ -58,7 +58,7 @@ if (!process.argv.slice(2).length) {
,"\\/ ,"\\/
_,.__/"\\/_ (the CLI for red chocobos) _,.__/"\\/_ (the CLI for red chocobos)
/ \\) "./, ". / \\) "./, ".
--/---"---" "-) )---- by Chocobozzz et al.`) --/---"---" "-) )---- by Chocobozzz et al.\n`)
} }
getSettings() getSettings()