Commit Graph

190 Commits

Author SHA1 Message Date
Akis Kesoglou
5cbe1c410f Add join/leave commands to promote and move devices between platforms
Both commands work with local devices by remotely invoking the `os-config` executable via SSH. This requires an as of yet unreleased resinOS (that will most likely be v2.14) and the commands ascertain compatibility merely by looking for the `os-config` executable in the device, and bail out if it’s not present.

`join` and `leave` accept a couple of optional arguments and implement a wizard-style interface if these are not given. They allow to interactively select the device and the application to promote to. If the user has no apps, `join` will offer the user to create one. `join` will also offer the user to login or create an account if they’re not logged in already without exiting the wizard.

`resin-sync` (that's used internally to discover local devices) requires admin privileges. If no device has been specified as an argument, the commands will launch the device scanning process in a privileged subprocess via two new internal commands: `internal sudo` and `internal scanDevices`. This avoids having the user to invoke the commands with sudo and only request escalation if truly needed. This commit also removes the dependency to “president”, implementing “sudo” functionality within the CLI.

Change-Type: minor
2018-07-19 22:18:02 +03:00
Cameron Diver
439d8d396f
Add push command which starts a build on remote resin servers
Change-type: minor
Connects-to: #843
2018-05-10 11:43:45 +01:00
Tim Perry
37e4ec6364 Rename expectedError to exitWithExpectedError 2018-04-17 15:18:06 +02:00
Tim Perry
6a8b947c2e Don't report lots of user input errors
Change-Type: patch
2018-04-17 15:18:06 +02:00
Tim Perry
a16ac37625 Include Sentry breadcrumbs for context in error reports
Change-Type: patch
2018-04-17 15:18:06 +02:00
Tim Perry
59d4890eae Add 'api-key generate' command
Change-Type: minor
2018-04-10 19:21:37 +02:00
Tim Perry
12a1916007 Allow (experimental!) login with API keys
Change-Type: minor
2018-03-29 11:11:25 +02:00
Tim Perry
079ce552e3
*BREAKING*: Remove support for plugins entirely
There are very few plugins in real-world use, we're not actively working
on this at all, and the current approach won't work once we move to
standalone node-less binary installation anyway.

Change-Type: major
2018-03-07 14:46:35 +00:00
Tim Perry
6daed83d88 Lint TypeScript and CoffeeScript with resin-lint
Change-Type: patch
2018-01-09 17:14:49 +01:00
Tim Perry
1fafe64579 Remove resin promote command (which has never worked) to wait for larger resinOS provisioning updates
This would be a major change if the command was ever successful, but it
appears it hasn't ever worked for any available published version of
ResinOS, so it's not possible that there are users relying on it.

Change-Type: patch
2017-11-15 14:46:22 +01:00
Tim Perry
0e4c6c459c Fix issue where os download would always download prod images
This also adds support for submodules using resin-sdk shared options
rather than resin-sdk-preconfigured.

Change-Type: patch
Connects-To: #688
2017-10-17 21:20:35 +02:00
Tim Perry
eb729d149e Ensure analytics failures (e.g. from broken tokens) at startup don't break commands
Change-Type: patch
2017-10-05 19:03:01 +02:00
Alexis Svinartchouk
22b3c39b2b Integrate resin-preload
* split docker connection options from lib.utils.docker.appendOptions

Connects to #609
Connects to https://github.com/resin-io/resin-preload/pull/81

Change-Type: minor
2017-08-11 15:43:07 +02:00
Tim Perry
9e6dd57a5c Help users using old node versions to upgrade 2017-08-09 15:20:50 +02:00
Tim Perry
6182e7c98a Make Node warning a multi-line string 2017-06-26 13:24:54 +02:00
Tim Perry
410390a9ae Remove Buffer polyfill, require Node v6+, and print warnings in older versions 2017-06-22 18:59:50 +02:00
Tim Perry
0c6545218a Merge pull request #574 from resin-io/565-log-node-version
Include node version in sentry logs
2017-06-22 18:17:33 +02:00
Tim Perry
18533de3da Include node version in sentry logs 2017-06-22 14:48:46 +02:00
Tim Perry
2875bd672e Add a polyfill to fix local configure in older (<6) Node versions 2017-06-22 13:38:38 +02:00
Eugene Mirotin
77a4c6fdc2 move available-drives command to util 2017-06-15 16:43:02 +03:00
Eugene Mirotin
2e7e033bb9 allow prebuilding the device config and reusing it 2017-06-15 16:39:55 +03:00
Eugene Mirotin
ad940824a6 list detected drives with resin os available-drives 2017-06-15 16:39:55 +03:00
Eugene Mirotin
1cfe64e4a7 choose version during device init, and list versions with resin os versions 2017-06-15 16:39:55 +03:00
Eugene Mirotin
880fb43fd9 some fixes 2017-05-18 15:12:52 +03:00
Eugene Mirotin
bc79832e1d resin ssh proxy support 2017-05-12 18:09:43 +03:00
Tim Perry
6e034acf23
Include full command line arguments in Sentry errors, to help us debug them 2017-05-12 11:48:43 +02:00
Eugene Mirotin
8866f47805 proxy support 2017-05-01 14:00:50 +03:00
Cameron Diver
d3772386bf
Add ability to build and deploy image locally using resin-cli
Using `resin build` a user can now build an image on their own docker
daemon. The daemon can be accessed via a local socket, a remote host and
a remote host over a TLS socket. Project type resolution is supported.
Nocache and tagging of images is also supported.

Using `resin deploy` a user can now deploy an image to their fleet. The
image can either be built by `resin-cli`, plain Docker, or from a remote
source.

Change-type: minor
Signed-off-by: Cameron Diver <cameron@resin.io>
2017-04-23 14:31:45 +01:00
Eugene Mirotin
225d3acf9e log unhandled exceptions 2017-04-21 13:10:30 +03:00
Eugene Mirotin
08b3db717e use individual methods promisification instead of promisifyAll 2017-03-27 12:14:55 +03:00
Eugene Mirotin
6cf32e445a isolate the sudo-runnable command 2017-03-27 11:43:35 +03:00
Tim Perry
f05b04a6a1
Move sentry DSN to config 2017-03-23 13:10:15 +01:00
Tim Perry
88d8112402
Add sentry error tracking 2017-03-23 12:59:42 +01:00
Kostas Lekkas
7ad468dc54
Implement 'resin local stop' 2017-03-09 23:49:56 +00:00
Kostas Lekkas
1ae1a15259
Implement 'resin local' 2017-03-08 23:41:35 +00:00
Tim Perry
b629ee6164
Move to preconfigured resin sdk 2017-01-25 19:33:43 +01:00
Eugene Mirotin
f17cbb1205
use the new SDK factory 2017-01-25 19:25:12 +01:00
Pablo Carranza Velez
c18e8f1dbd Actually add the shutdown command 2016-11-01 12:42:29 -03:00
Juan Cruz Viotti
c6e669fa6b Bring back devices supported command
Fixes: https://github.com/resin-io/resin-cli/issues/394
Signed-off-by: Juan Cruz Viotti <jviotti@openmailbox.org>
2016-09-25 19:49:06 -04:00
Praneeth Bodduluri
3adb8f19bd Implement device enableDeviceUrl/disableDeviceUrl/hasDeviceUrl/getDeviceUrl 2016-08-09 18:45:24 +05:30
Kostas Lekkas
a70e38ef12 Add global --help option 2016-07-29 15:32:12 +03:00
Kostas Lekkas
42bfb3b0cc Implement resin ssh <uuid> command 2016-04-26 16:00:54 +03:00
Juan Cruz Viotti
e9b8c38eeb Integrate sync plugin in the Resin CLI 2016-03-28 09:21:25 -04:00
Juan Cruz Viotti
03d7520de2 Implement config inject command
This command allows to user to inject a whole `config.json` file to a
provisioned device.
2016-03-17 16:07:19 -04:00
Juan Cruz Viotti
6405c6bb6f Implement device reboot command
Fixes: https://github.com/resin-io/resin-cli/issues/319
2016-03-04 09:38:11 -04:00
Juan Cruz Viotti
84ed20d3ec Implement config generate command
This command allows the user to generate a config.json file and either
print it to stdout or save it to a file.
2016-02-26 22:37:15 -04:00
Juan Cruz Viotti
356d2ef6b2 Inject analytics in Capitano 2016-02-12 14:34:16 -04:00
Juan Cruz Viotti
a346c3f043 Add information on how to login on user permission error 2016-01-21 23:07:08 -04:00
Juan Cruz Viotti
9cfce68489 Change license to Apache 2.0 2016-01-03 23:58:51 -04:00
Juan Cruz Viotti
f52dd2976f Implement settings command
This command allows the user to list all detected settings.
2015-11-15 22:08:02 -04:00