Merge pull request #990 from resin-io/drop-sdk-preconfigured-app-patterns

Drop sdk preconfigured app patterns
This commit is contained in:
Thodoris Greasidis 2018-10-20 19:07:57 +02:00 committed by GitHub
commit 2b52d5edbc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 13 deletions

View File

@ -44,7 +44,8 @@ exports.create =
] ]
permission: 'user' permission: 'user'
action: (params, options, done) -> action: (params, options, done) ->
resin = require('resin-sdk-preconfigured') resin = require('resin-sdk').fromSharedOptions()
patterns = require('../utils/patterns') patterns = require('../utils/patterns')
# Validate the the application name is available # Validate the the application name is available
@ -57,7 +58,10 @@ exports.create =
.then -> .then ->
return options.type or patterns.selectDeviceType() return options.type or patterns.selectDeviceType()
.then (deviceType) -> .then (deviceType) ->
return resin.models.application.create(params.name, deviceType) return resin.models.application.create({
name: params.name
deviceType
})
.then (application) -> .then (application) ->
console.info("Application created: #{application.app_name} (#{application.device_type}, id #{application.id})") console.info("Application created: #{application.app_name} (#{application.device_type}, id #{application.id})")
.nodeify(done) .nodeify(done)
@ -78,7 +82,7 @@ exports.list =
permission: 'user' permission: 'user'
primary: true primary: true
action: (params, options, done) -> action: (params, options, done) ->
resin = require('resin-sdk-preconfigured') resin = require('resin-sdk').fromSharedOptions()
visuals = require('resin-cli-visuals') visuals = require('resin-cli-visuals')
resin.models.application.getAll().then (applications) -> resin.models.application.getAll().then (applications) ->
@ -104,7 +108,7 @@ exports.info =
permission: 'user' permission: 'user'
primary: true primary: true
action: (params, options, done) -> action: (params, options, done) ->
resin = require('resin-sdk-preconfigured') resin = require('resin-sdk').fromSharedOptions()
visuals = require('resin-cli-visuals') visuals = require('resin-cli-visuals')
resin.models.application.get(params.name).then (application) -> resin.models.application.get(params.name).then (application) ->
@ -129,7 +133,7 @@ exports.restart =
''' '''
permission: 'user' permission: 'user'
action: (params, options, done) -> action: (params, options, done) ->
resin = require('resin-sdk-preconfigured') resin = require('resin-sdk').fromSharedOptions()
resin.models.application.restart(params.name).nodeify(done) resin.models.application.restart(params.name).nodeify(done)
exports.remove = exports.remove =
@ -149,7 +153,7 @@ exports.remove =
options: [ commandOptions.yes ] options: [ commandOptions.yes ]
permission: 'user' permission: 'user'
action: (params, options, done) -> action: (params, options, done) ->
resin = require('resin-sdk-preconfigured') resin = require('resin-sdk').fromSharedOptions()
patterns = require('../utils/patterns') patterns = require('../utils/patterns')
patterns.confirm(options.yes, 'Are you sure you want to delete the application?').then -> patterns.confirm(options.yes, 'Are you sure you want to delete the application?').then ->

View File

@ -18,11 +18,13 @@ import _ = require('lodash');
import Promise = require('bluebird'); import Promise = require('bluebird');
import form = require('resin-cli-form'); import form = require('resin-cli-form');
import visuals = require('resin-cli-visuals'); import visuals = require('resin-cli-visuals');
import resin = require('resin-sdk-preconfigured'); import ResinSdk = require('resin-sdk');
import chalk from 'chalk'; import chalk from 'chalk';
import validation = require('./validation'); import validation = require('./validation');
import messages = require('./messages'); import messages = require('./messages');
const resin = ResinSdk.fromSharedOptions();
export function authenticate(options: {}): Promise<void> { export function authenticate(options: {}): Promise<void> {
return form return form
.run( .run(
@ -96,11 +98,14 @@ export function askLoginType() {
} }
export function selectDeviceType() { export function selectDeviceType() {
return resin.models.device.getSupportedDeviceTypes().then(deviceTypes => { return resin.models.config.getDeviceTypes().then(deviceTypes => {
return form.ask({ return form.ask({
message: 'Device Type', message: 'Device Type',
type: 'list', type: 'list',
choices: deviceTypes, choices: _.map(deviceTypes, ({ slug: value, name }) => ({
name,
value,
})),
}); });
}); });
} }
@ -130,7 +135,9 @@ export function confirm(
}); });
} }
export function selectApplication(filter: (app: resin.Application) => boolean) { export function selectApplication(
filter: (app: ResinSdk.Application) => boolean,
) {
return resin.models.application return resin.models.application
.hasAny() .hasAny()
.then(function(hasAnyApplications) { .then(function(hasAnyApplications) {
@ -161,7 +168,7 @@ export function selectOrCreateApplication() {
return resin.models.application.getAll().then(applications => { return resin.models.application.getAll().then(applications => {
const appOptions = _.map< const appOptions = _.map<
resin.Application, ResinSdk.Application,
{ name: string; value: string | null } { name: string; value: string | null }
>(applications, application => ({ >(applications, application => ({
name: `${application.app_name} (${application.device_type})`, name: `${application.app_name} (${application.device_type})`,
@ -223,7 +230,7 @@ export function awaitDevice(uuid: string) {
export function inferOrSelectDevice(preferredUuid: string) { export function inferOrSelectDevice(preferredUuid: string) {
return resin.models.device return resin.models.device
.getAll() .getAll()
.filter<resin.Device>(device => device.is_online) .filter<ResinSdk.Device>(device => device.is_online)
.then(onlineDevices => { .then(onlineDevices => {
if (_.isEmpty(onlineDevices)) { if (_.isEmpty(onlineDevices)) {
throw new Error("You don't have any devices online"); throw new Error("You don't have any devices online");
@ -240,7 +247,10 @@ export function inferOrSelectDevice(preferredUuid: string) {
type: 'list', type: 'list',
default: defaultUuid, default: defaultUuid,
choices: _.map(onlineDevices, device => ({ choices: _.map(onlineDevices, device => ({
name: `${device.name || 'Untitled'} (${device.uuid.slice(0, 7)})`, name: `${device.device_name || 'Untitled'} (${device.uuid.slice(
0,
7,
)})`,
value: device.uuid, value: device.uuid,
})), })),
}); });