feat(xo-cli): register supports expiresIn flag

See vatesfr/xo-web#1769
This commit is contained in:
Julien Fontanet 2017-10-17 17:13:24 +02:00
parent 0c9f6e0923
commit 0e6a460332
2 changed files with 27 additions and 8 deletions

View File

@ -19,9 +19,13 @@ npm install -g xo-cli
> xo-cli --help
Usage:
xo-cli --register <XO-Server URL> <username> [<password>]
xo-cli --register [--expiresIn duration] <XO-Server URL> <username> [<password>]
Registers the XO instance to use.
--expiresIn duration
Can be used to change the validity duration of the
authorization token (default: one month).
xo-cli --unregister
Remove stored credentials.

View File

@ -142,9 +142,13 @@ var help = wrap((function (pkg) {
return multiline.stripIndent(function () { /*
Usage:
$name --register <XO-Server URL> <username> [<password>]
$name --register [--expiresIn duration] <XO-Server URL> <username> [<password>]
Registers the XO instance to use.
--expiresIn duration
Can be used to change the validity duration of the
authorization token (default: one month).
$name --unregister
Remove stored credentials.
@ -206,27 +210,38 @@ exports = module.exports = main
exports.help = help
function register (args) {
var password, xo
return Promise.resolve(args[2] || new Promise(function (resolve) {
var i = 0
var expiresIn
if (args[i] === '--expiresIn') {
expiresIn = args[i + 1]
i += 2
}
var url = args[i++]
var email = args[i++]
var password = args[i++]
var xo
return Promise.resolve(password || new Promise(function (resolve) {
process.stdout.write('Password: ')
pw(resolve)
})).then(function (password_) {
password = password_
xo = new Xo({ url: args[0] })
xo = new Xo({ url })
return xo.open()
}).then(function () {
return xo.signIn({
email: args[1],
email: email,
password: password
})
}).then(function () {
console.log('Successfully logged with', xo.user.email)
return xo.call('token.create')
return xo.call('token.create', { expiresIn: expiresIn })
}).then(function (token) {
return config.set({
server: args[0],
server: url,
token: token
})
})