2016-01-04 03:58:51 +00:00
|
|
|
###
|
2017-06-14 21:20:15 +00:00
|
|
|
Copyright 2016-2017 Resin.io
|
2016-01-04 03:58:51 +00:00
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
###
|
|
|
|
|
2015-05-07 15:40:12 +00:00
|
|
|
exports.wizard =
|
|
|
|
signature: 'quickstart [name]'
|
|
|
|
description: 'getting started with resin.io'
|
|
|
|
help: '''
|
|
|
|
Use this command to run a friendly wizard to get started with resin.io.
|
|
|
|
|
|
|
|
The wizard will guide you through:
|
|
|
|
|
|
|
|
- Create an application.
|
|
|
|
- Initialise an SDCard with the resin.io operating system.
|
|
|
|
- Associate an existing project directory with your resin.io application.
|
|
|
|
- Push your project to your devices.
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
2016-01-11 20:01:40 +00:00
|
|
|
$ resin quickstart
|
|
|
|
$ resin quickstart MyApp
|
2015-05-07 15:40:12 +00:00
|
|
|
'''
|
2015-10-01 14:39:36 +00:00
|
|
|
primary: true
|
2015-05-07 15:40:12 +00:00
|
|
|
action: (params, options, done) ->
|
2015-12-07 14:32:24 +00:00
|
|
|
Promise = require('bluebird')
|
2017-03-27 09:14:55 +00:00
|
|
|
capitanoRunAsync = Promise.promisify(require('capitano').run)
|
2017-01-25 18:32:07 +00:00
|
|
|
resin = require('resin-sdk-preconfigured')
|
2015-12-07 14:32:24 +00:00
|
|
|
patterns = require('../utils/patterns')
|
|
|
|
|
2016-01-12 14:12:04 +00:00
|
|
|
resin.auth.isLoggedIn().then (isLoggedIn) ->
|
|
|
|
return if isLoggedIn
|
|
|
|
console.info('Looks like you\'re not logged in yet!')
|
|
|
|
console.info('Lets go through a quick wizard to get you started.\n')
|
2017-03-27 09:14:55 +00:00
|
|
|
return capitanoRunAsync('login')
|
2016-01-12 14:12:04 +00:00
|
|
|
.then ->
|
2015-08-27 14:01:33 +00:00
|
|
|
return if params.name?
|
2015-09-29 15:10:33 +00:00
|
|
|
patterns.selectOrCreateApplication().tap (applicationName) ->
|
2015-09-11 15:30:30 +00:00
|
|
|
resin.models.application.has(applicationName).then (hasApplication) ->
|
|
|
|
return applicationName if hasApplication
|
2017-03-27 09:14:55 +00:00
|
|
|
capitanoRunAsync("app create #{applicationName}")
|
2015-08-27 14:01:33 +00:00
|
|
|
.then (applicationName) ->
|
|
|
|
params.name = applicationName
|
|
|
|
.then ->
|
2017-03-27 09:14:55 +00:00
|
|
|
return capitanoRunAsync("device init --application #{params.name}")
|
2015-08-20 19:54:42 +00:00
|
|
|
.tap(patterns.awaitDevice)
|
2015-08-27 14:01:33 +00:00
|
|
|
.then (uuid) ->
|
2017-03-27 09:14:55 +00:00
|
|
|
return capitanoRunAsync("device #{uuid}")
|
2015-08-27 14:01:33 +00:00
|
|
|
.then ->
|
2015-12-02 20:28:32 +00:00
|
|
|
return resin.models.application.get(params.name)
|
|
|
|
.then (application) ->
|
|
|
|
console.log """
|
|
|
|
Your device is ready to start pushing some code!
|
|
|
|
|
|
|
|
Check our official documentation for more information:
|
|
|
|
|
|
|
|
http://docs.resin.io/#/pages/introduction/introduction.md
|
|
|
|
|
|
|
|
Clone an example or go to an existing application directory and run:
|
|
|
|
|
|
|
|
$ git remote add resin #{application.git_repository}
|
|
|
|
$ git push resin master
|
|
|
|
"""
|
2015-08-27 14:01:33 +00:00
|
|
|
.nodeify(done)
|