Update Capitano to v1.2.0 and make use of done callback feature

This commit is contained in:
Juan Cruz Viotti 2015-01-15 10:47:17 -03:00
parent 2a8f1f1dc2
commit 3e055b32d2
11 changed files with 86 additions and 76 deletions

View File

@ -3,11 +3,10 @@ async = require('async')
resin = require('resin-sdk')
ui = require('../ui')
log = require('../log/log')
errors = require('../errors/errors')
permissions = require('../permissions/permissions')
exports.create = permissions.user (params, options) ->
async.waterfall [
exports.create = permissions.user (params, options, done) ->
async.waterfall([
(callback) ->
deviceType = options.type
@ -21,10 +20,11 @@ exports.create = permissions.user (params, options) ->
(type, callback) ->
resin.models.application.create(params.name, type, callback)
], errors.handle
], done)
exports.list = permissions.user ->
resin.models.application.getAll errors.handleCallback (applications) ->
exports.list = permissions.user (params, options, done) ->
resin.models.application.getAll (error, applications) ->
return done(error) if error?
log.out ui.widgets.table.horizontal applications, [
'ID'
'Name'
@ -32,9 +32,11 @@ exports.list = permissions.user ->
'Online Devices'
'Devices Length'
]
return done()
exports.info = permissions.user (params) ->
resin.models.application.get params.id, errors.handleCallback (application) ->
exports.info = permissions.user (params, options, done) ->
resin.models.application.get params.id, (error, application) ->
return done(error) if error?
log.out ui.widgets.table.vertical application, [
'ID'
'Name'
@ -42,16 +44,17 @@ exports.info = permissions.user (params) ->
'Git Repository'
'Commit'
]
return done()
exports.restart = permissions.user (params) ->
resin.models.application.restart(params.id, _.unary(errors.handle))
exports.restart = permissions.user (params, options, done) ->
resin.models.application.restart(params.id, done)
exports.remove = permissions.user (params, options) ->
exports.remove = permissions.user (params, options, done) ->
ui.patterns.remove 'application', options.yes, (callback) ->
resin.models.application.remove(params.id, callback)
, errors.handle
, done
exports.init = permissions.user (params) ->
exports.init = permissions.user (params, options, done) ->
currentDirectory = process.cwd()
@ -72,4 +75,4 @@ exports.init = permissions.user (params) ->
(application, callback) ->
resin.vcs.initProjectWithApplication(application, currentDirectory, callback)
], errors.handle
], done

View File

@ -4,11 +4,10 @@ async = require('async')
resin = require('resin-sdk')
ui = require('../ui')
log = require('../log/log')
errors = require('../errors/errors')
permissions = require('../permissions/permissions')
helpers = require('../helpers/helpers')
exports.login = (params) ->
exports.login = (params, options, done) ->
async.waterfall [
(callback) ->
@ -20,12 +19,12 @@ exports.login = (params) ->
(credentials, callback) ->
resin.auth.login(credentials, callback)
], errors.handle
], done
exports.logout = permissions.user ->
resin.auth.logout(_.unary(errors.handle))
exports.logout = permissions.user (params, options, done) ->
resin.auth.logout(done)
exports.signup = ->
exports.signup = (params, options, done) ->
async.waterfall([
(callback) ->
@ -38,13 +37,12 @@ exports.signup = ->
(credentials, callback) ->
resin.auth.login(credentials, callback)
], errors.handle)
], done)
exports.whoami = permissions.user ->
resin.auth.whoami errors.handleCallback (username) ->
exports.whoami = permissions.user (params, options, done) ->
resin.auth.whoami (error, username) ->
if not username?
error = new Error('Username not found')
errors.handle(error)
return done(new Error('Username not found'))
log.out(username)

View File

@ -3,11 +3,11 @@ async = require('async')
resin = require('resin-sdk')
ui = require('../ui')
log = require('../log/log')
errors = require('../errors/errors')
permissions = require('../permissions/permissions')
exports.list = permissions.user (params, options) ->
resin.models.device.getAllByApplication options.application, errors.handleCallback (devices) ->
exports.list = permissions.user (params, options, done) ->
resin.models.device.getAllByApplication options.application, (error, devices) ->
return done(error) if error?
log.out ui.widgets.table.horizontal devices, [
'ID'
'Name'
@ -18,8 +18,11 @@ exports.list = permissions.user (params, options) ->
'Last Seen'
]
exports.info = permissions.user (params) ->
resin.models.device.get params.id, errors.handleCallback (device) ->
return done()
exports.info = permissions.user (params, options, done) ->
resin.models.device.get params.id, (error, device) ->
return done(error) if error?
log.out ui.widgets.table.vertical device, [
'ID'
'Name'
@ -36,15 +39,17 @@ exports.info = permissions.user (params) ->
'Note'
]
exports.remove = permissions.user (params, options) ->
return done()
exports.remove = permissions.user (params, options, done) ->
ui.patterns.remove 'device', options.yes, (callback) ->
resin.models.device.remove(params.id, callback)
, errors.handle
, done
exports.identify = permissions.user (params) ->
resin.models.device.identify(params.uuid, _.unary(errors.handle))
exports.identify = permissions.user (params, options, done) ->
resin.models.device.identify(params.uuid, done)
exports.rename = permissions.user (params) ->
exports.rename = permissions.user (params, options, done) ->
async.waterfall [
(callback) ->
@ -55,8 +60,7 @@ exports.rename = permissions.user (params) ->
(name, callback) ->
resin.models.device.rename(params.id, name, callback)
], (error) ->
errors.handle(error) if error?
], done
exports.supported = permissions.user ->
devices = resin.models.device.getSupportedDeviceTypes()

View File

@ -3,30 +3,32 @@ resin = require('resin-sdk')
ui = require('../ui')
permissions = require('../permissions/permissions')
log = require('../log/log')
errors = require('../errors/errors')
exports.list = permissions.user (params, options) ->
resin.models.environmentVariables.getAllByApplication options.application, errors.handleCallback (environmentVariables) ->
exports.list = permissions.user (params, options, done) ->
resin.models.environmentVariables.getAllByApplication options.application, (error, environmentVariables) ->
return done(error) if error?
if not options.verbose
environmentVariables = _.reject(environmentVariables, resin.models.environmentVariables.isSystemVariable)
log.out(ui.widgets.table.horizontal(environmentVariables))
return done()
exports.remove = permissions.user (params, options) ->
exports.remove = permissions.user (params, options, done) ->
ui.patterns.remove 'environment variable', options.yes, (callback) ->
resin.models.environmentVariables.remove(params.id, callback)
, errors.handle
, done
exports.add = permissions.user (params, options) ->
exports.add = permissions.user (params, options, done) ->
if not params.value?
params.value = process.env[params.key]
if not params.value?
errors.handle(new Error("Environment value not found for key: #{params.key}"))
return done(new Error("Environment value not found for key: #{params.key}"))
else
log.info("Warning: using #{params.key}=#{params.value} from host environment")
resin.models.environmentVariables.create(options.application, params.key, params.value, _.unary(errors.handle))
resin.models.environmentVariables.create(options.application, params.key, params.value, done)
exports.rename = permissions.user (params, options) ->
resin.models.environmentVariables.update(params.id, params.value, _.unary(errors.handle))
exports.rename = permissions.user (params, options, done) ->
resin.models.environmentVariables.update(params.id, params.value, done)

View File

@ -7,7 +7,6 @@ resin = require('resin-sdk')
permissions = require('../permissions/permissions')
ui = require('../ui')
log = require('../log/log')
errors = require('../errors/errors')
examplesData = require('../data/examples.json')
exports.list = permissions.user ->
@ -27,13 +26,12 @@ exports.list = permissions.user ->
'Author'
]
exports.info = permissions.user (params) ->
exports.info = permissions.user (params, options, done) ->
id = params.id - 1
example = examplesData[id]
if not example?
error = new Error("Unknown example: #{id}")
errors.handle(error)
return done(new Error("Unknown example: #{id}"))
example.id = id
example.author ?= 'Unknown'
@ -46,12 +44,13 @@ exports.info = permissions.user (params) ->
'Repository'
]
exports.clone = permissions.user (params) ->
return done()
exports.clone = permissions.user (params, options, done) ->
example = examplesData[params.id - 1]
if not example?
error = new Error("Unknown example: #{id}")
errors.handle(error)
return done(new Error("Unknown example: #{id}"))
async.waterfall [
@ -67,5 +66,4 @@ exports.clone = permissions.user (params) ->
log.info("Cloning #{example.display_name} to #{example.name}")
gitCli.Repository.clone(example.repository, example.name, callback)
], (error) ->
errors.handle(error) if error?
], done

View File

@ -7,23 +7,26 @@ helpers = require('../helpers/helpers')
ui = require('../ui')
log = require('../log/log')
permissions = require('../permissions/permissions')
errors = require('../errors/errors')
exports.list = permissions.user ->
resin.models.key.getAll errors.handleCallback (keys) ->
exports.list = permissions.user (params, options, done) ->
resin.models.key.getAll (error, keys) ->
return done(error) if error?
log.out ui.widgets.table.horizontal keys, [ 'ID', 'Title' ]
return done()
exports.info = permissions.user (params) ->
resin.models.key.get params.id, errors.handleCallback (key) ->
exports.info = permissions.user (params, options, done) ->
resin.models.key.get params.id, (error, key) ->
return done(error) if error?
key.public_key = '\n' + _.str.chop(key.public_key, resin.settings.get('sshKeyWidth')).join('\n')
log.out(ui.widgets.table.vertical(key, [ 'ID', 'Title', 'Public Key' ]))
return done()
exports.remove = permissions.user (params, options) ->
exports.remove = permissions.user (params, options, done) ->
ui.patterns.remove 'key', options.yes, (callback) ->
resin.models.key.remove(params.id, callback)
, errors.handle
, done
exports.add = permissions.user (params) ->
exports.add = permissions.user (params, options, done) ->
async.waterfall [
(callback) ->
@ -35,4 +38,4 @@ exports.add = permissions.user (params) ->
(key, callback) ->
resin.models.key.create(params.name, key, callback)
], errors.handle
], done

View File

@ -1,14 +1,15 @@
resin = require('resin-sdk')
permissions = require('../permissions/permissions')
log = require('../log/log')
errors = require('../errors/errors')
LOGS_HISTORY_COUNT = 200
exports.logs = permissions.user (params, options) ->
exports.logs = permissions.user (params, options, done) ->
resin.logs.subscribe params.uuid, {
history: options.num or LOGS_HISTORY_COUNT
tail: options.tail
}, errors.handleCallback (message) ->
}, (error, message) ->
return done(error) if error?
log.array(message, log.out)
return done()

View File

@ -1,10 +1,9 @@
async = require('async')
permissions = require('../permissions/permissions')
errors = require('../errors/errors')
helpers = require('../helpers/helpers')
resin = require('resin-sdk')
exports.set = permissions.user (params, options) ->
exports.set = permissions.user (params, options, done) ->
async.waterfall([
(callback) ->
@ -15,4 +14,4 @@ exports.set = permissions.user (params, options) ->
(note, callback) ->
resin.models.device.note(options.device, note, callback)
], errors.handle)
], done)

View File

@ -6,9 +6,8 @@ ProgressBar = require('progress')
resin = require('resin-sdk')
log = require('../log/log')
permissions = require('../permissions/permissions')
errors = require('../errors/errors')
exports.download = (params, options) ->
exports.download = (params, options, done) ->
osParams =
network: options.network
@ -48,5 +47,7 @@ exports.download = (params, options) ->
bar.tick(state.received - received)
received = state.received
], errors.handleCallback ->
], (error) ->
return done(error) if error?
log.info("\nFinished downloading #{outputFile}")
return done()

View File

@ -624,4 +624,5 @@ resin.data.prefix.set resin.settings.get('dataPrefix'), (error) ->
if cli.global.project?
changeProjectDirectory(cli.global.project)
capitano.execute(cli)
capitano.execute cli, (error) ->
errors.handle(error) if error?

View File

@ -46,7 +46,7 @@
},
"dependencies": {
"async": "~0.9.0",
"capitano": "~1.1.1",
"capitano": "~1.2.0",
"cliff": "~0.1.9",
"coffee-script": "~1.8.0",
"conf.js": "^0.1.1",