Commit Graph

418 Commits

Author SHA1 Message Date
Juan Cruz Viotti
1096b2d212 Merge pull request #143 from resin-io/jviotti/refactor/app
Refactor app actions to use promises
2015-08-17 08:02:04 -04:00
Juan Cruz Viotti
ee286c5690 Merge pull request #144 from resin-io/jviotti/refactor/note
Refactor note set command to use promises
2015-08-17 08:01:47 -04:00
Juan Cruz Viotti
1da1d2e6fc Merge pull request #152 from resin-io/jviotti/fix/151/ssh-key-list
Print ssh key separately from the information table
2015-08-17 08:01:32 -04:00
Juan Cruz Viotti
30f24333c0 Implement a spinner when awaiting for a device. Fix #107
Fixes:

- https://github.com/resin-io/resin-cli/issues/107
2015-08-14 14:35:38 -04:00
Juan Cruz Viotti
8c9a0e0ff1 Fix broken device await command
There were two issues that prevented this command from working
correctly:

1- `Promise.delay()` is used, but `Promise` was not imported.
2- The following line had incorrect indentation (spaces instead of
		tabs):

		poll().nodeify(done)

Therefore CoffeeScript interpreted that the line had to be executed at
the end of the `poll()` function, causing `poll()` to never be called.
2015-08-14 14:11:49 -04:00
Juan Cruz Viotti
e712e2f266 Print ssh key separately from the information table
Since the public key string is long, it might wrap to lines below,
causing the table layout to break.

A quick solutio is to print the ssh key after the table.

Fixes:

- https://github.com/resin-io/resin-cli/issues/151
2015-08-14 12:25:55 -04:00
Juan Cruz Viotti
83382cc8f7 Merge pull request #145 from resin-io/jviotti/fix/logs-help-indentation
Fix logs command help string indentation
2015-08-14 08:27:38 -04:00
Juan Cruz Viotti
8401aaeae2 Merge pull request #149 from resin-io/jviotti/fix/111/email-validation
Validate that email address is valid during signup. Fix #111
2015-08-14 07:58:40 -04:00
Juan Cruz Viotti
abf5740950 Merge pull request #148 from resin-io/jviotti/fix/14/logs-history
Force logs command to exit when not in --tail mode. Fix #14.
2015-08-14 07:58:05 -04:00
Juan Cruz Viotti
e9ec6c67b2 Validate that email address is valid during signup. Fix #111
For this we use a third party dependency from npm called `valid-email`
to avoid hardcoding and having to mantain a regular expression.
2015-08-13 15:22:22 -04:00
Juan Cruz Viotti
69566f7fc3 Force logs command to exit when not in --tail mode. Fix #14.
PubNub keeps the process alive after a history query for some reason, so
trying to print the logs history like:

	$ resin logs <uuid>

Will result in the logs being printed correctly, but the process waiting
infinitely without ending.

The workaround consists in forcing `process.exit` to exit the process
with an error code zero.

Caveats:

- This workaround prevents this command to be used programatically.

Issue: https://github.com/resin-io/resin-cli/issues/14
2015-08-13 15:08:16 -04:00
Juan Cruz Viotti
6e4b299c7d Remove preferences command 2015-08-13 15:00:51 -04:00
Juan Cruz Viotti
ef35ebf79d Fix logs command help string indentation
For some reason it was indented a few times unnecesarily.
2015-08-13 14:33:19 -04:00
Juan Cruz Viotti
1bc78edf71 Refactor help module
Main changes:

- Use the `columnify` module to display the commands instead of using
manual parsing.

- Extract logic to create a string representation from an option
signature to Capitano, and reuse here.

See https://github.com/resin-io/capitano/pull/28

Some bugs were caught and fixes during the refactoring:

- In command help, if the command didn't exist, we reused default
Capitanos command not found function which uses `process.exit(1)`. This
was changed to pass a custom error to `done()`, so the command fails
correctly when using programatically.

- General help didn't call `done()` at all, thus causing problems if
using the command programatically someday.
2015-08-13 14:19:07 -04:00
Juan Cruz Viotti
d5204a09f7 Refactor note set command to use promises 2015-08-13 14:17:02 -04:00
Juan Cruz Viotti
4647aa70c0 Implement utils/helpers to abstract common app patterns
- Add helpers.confirm() to abstract the process of asking for
confirmation.
- Add helpers.selectDeviceType() to abstract the form needed to ask for
device types.

The functions on this module are reused by app actions.
2015-08-13 14:04:47 -04:00
Juan Cruz Viotti
25c6246e9f Refactor app actions to use promises
Use promises instead of `async` internally inside the following
commands:

- app create.
- app remove.
- app associate.
2015-08-13 13:42:49 -04:00
Juan Cruz Viotti
50cb04b6f7 Remove unused dependencies imports from various files 2015-08-13 13:04:22 -04:00
Juan Cruz Viotti
e60c0605e5 Use Visuals drive widget in device init
- Replace custom `drivelist` logic in "device init" with the new `drive`
widget.
2015-08-13 11:56:16 -04:00
Juan Cruz Viotti
57319f26a6 Slim down unused functionality 2015-08-12 08:17:46 -04:00
Juan Cruz Viotti
5c96663d1e Merge pull request #134 from resin-io/remove/drive-command
Remove drive command
2015-08-05 12:24:25 -04:00
Juan Cruz Viotti
ffb48c8669 Merge pull request #135 from resin-io/remove/examples-commands
Remove examples commands
2015-08-05 07:04:03 -04:00
Juan Cruz Viotti
dc030f4cd1 Implement Quickstart command 2015-08-04 20:16:55 +03:00
Juan Cruz Viotti
b726a2d778 Remove examples commands 2015-08-04 10:00:09 -04:00
Juan Cruz Viotti
a715ec9dc1 Remove drive command 2015-08-04 09:57:59 -04:00
Juan Cruz Viotti
d24b871964 Merge pull request #131 from resin-io/remove/selfupdate
Remove selfupdate functionality
2015-08-04 09:53:48 -04:00
Juan Cruz Viotti
b515e427ff Merge pull request #129 from resin-io/issue_#73
Add email address to the returned information, when using whoami(). Fix #73.
2015-08-03 16:14:47 -04:00
mike
f31eb7c2b5 Add email address to the returned information, when using whoami(). Fix #73. 2015-08-03 21:24:22 +03:00
Juan Cruz Viotti
d423a6ea24 Remove selfupdate functionality
We added this because we thought that knowledge of the supported device types, along with the configuration procedures was going to be encoded in the CLI.

With device specs, this is not longer the case.
2015-08-03 12:20:42 -04:00
mike
9564b4e478 Display correctly the newly-created application id. Fix #117 2015-07-29 21:17:21 +03:00
mike
e2125b8ce9 Fix #73 2015-07-29 21:15:29 +03:00
mike
cf512cc01b Integrate new resin-cli-visuals functionality 2015-07-29 16:34:31 +03:00
mike
0bbfbe36c7 Replace device name with uuid, found in resin envs examples in enviroment-variables 2015-07-27 22:49:11 +03:00
mike
5b5d1be52f Integrate resin-cli-form 2015-07-27 19:50:47 +03:00
Juan Cruz Viotti
cb808869dd Merge pull request #110 from resin-io/support_promises
Add promise support for Resin-SDK dependency
2015-07-24 08:02:40 -04:00
mike
64d83dccfb Add promise support for Resin-SDK dependency 2015-07-24 00:24:17 +03:00
Juan Cruz Viotti
1d53db2854 Add registered_at UNIX epoch 2015-07-23 12:47:49 -04:00
mike
46fa4ee2a2 Upgrade Resin VCS dependencies 2015-07-11 00:03:20 +03:00
Juan Cruz Viotti
9d4ac46985 Default device.last_seen to 'Not seen'. Closes #84. 2015-07-09 09:56:39 -04:00
Juan Cruz Viotti
381e63bfc9 Merge pull request #70 from resin-io/refactor/new-visuals
Upgrade Resin CLI Visuals and use it's new capabilities
2015-06-12 09:47:30 -04:00
Juan Cruz Viotti
8fa906dd48 Upgrade Resin CLI Visuals and use it's new capabilities 2015-06-11 12:46:56 -04:00
Juan Cruz Viotti
29cf4c1e89 Don't chop SSH key 2015-06-11 08:08:45 -04:00
Juan Cruz Viotti
ef33156de7 Implement config command 2015-06-10 12:34:42 -04:00
Juan Cruz Viotti
43f0288c6c Check that the passed application exists before asking to choose device 2015-06-08 12:31:17 -04:00
Juan Cruz Viotti
47e6371e2e Merge pull request #64 from resin-io/feature/config-inject
Implement config injection
2015-06-05 12:06:54 -04:00
Juan Cruz Viotti
2bfeb7f42c Associate a device before first boot 2015-06-04 10:10:15 -04:00
Juan Cruz Viotti
37e0f12f89 Merge pull request #57 from resin-io/feature/associate-confirmation
Ask for confirmation on app associate command
2015-06-04 08:22:01 -04:00
Juan Cruz Viotti
fdd0e4a966 Implement config injection 2015-06-04 08:06:37 -04:00
Juan Cruz Viotti
e9efb78280 Merge pull request #56 from resin-io/feature/login-feedback
Display feedback message after login
2015-06-03 08:46:18 -04:00
Juan Cruz Viotti
0424d7b640 Merge pull request #60 from resin-io/fix/login-browser-session
Open dashboardUrl instead of remoteUrl in auth login
2015-06-03 08:45:00 -04:00
Juan Cruz Viotti
1ed9ae7d60 Open dashboardUrl instead of remoteUrl in auth login 2015-06-02 13:21:59 -04:00
Juan Cruz Viotti
329bf25dbd Print feedback message after app create 2015-06-02 13:04:08 -04:00
Juan Cruz Viotti
ae3f0b429d Ask for confirmacion on app associate command 2015-06-02 12:32:35 -04:00
Juan Cruz Viotti
34736c4e9b Display feedback message after login 2015-06-02 11:57:52 -04:00
Juan Cruz Viotti
054d5e4879 Add per device environment variable support 2015-05-28 12:32:08 -04:00
Juan Cruz Viotti
68ef069e6a Accept names instead of ids in example commands 2015-05-21 11:58:15 -04:00
Juan Cruz Viotti
78af9bbb10 Expose logs as cli.actions.logs instead of cli.actions.logs.logs 2015-05-18 09:37:27 -04:00
Juan Cruz Viotti
db58e9986c Return devices array to the done callback in device list command
Useful when using the CLI programatically.
2015-05-14 11:43:41 -03:00
Juan Cruz Viotti
e7e8ec296c Make use of selfupdate 2015-05-14 11:32:18 -03:00
Juan Cruz Viotti
9bb04f43a8 Fix callback not being called on success in os download command 2015-05-11 14:23:34 -03:00
Juan Cruz Viotti
9b0c08bd46 Don't umount in os install as it's already handled in Resin Image 2015-05-11 13:10:06 -03:00
Juan Cruz Viotti
d8ce6648e2 Handle device unmounting in os install command 2015-05-11 10:04:05 -03:00
Juan Cruz Viotti
f3e193be0f Make login command behave non interactively if a token is passed as an argument 2015-05-11 09:42:25 -03:00
Juan Cruz Viotti
656f3e5cd9 Make use of resin-image to remove image writing logic from the CLI 2015-05-08 14:26:04 -03:00
Juan Cruz Viotti
741acfbba3 Merge pull request #41 from resin-io/feature/command-run
Make use of capitano.run() to run subcommands
2015-05-08 14:23:37 -03:00
Juan Cruz Viotti
08648894e3 Merge pull request #40 from resin-io/feature/device-await
Implement device await command
2015-05-06 11:18:42 -03:00
Juan Cruz Viotti
4c5d5697bc Implement device await command 2015-05-06 11:14:08 -03:00
Juan Cruz Viotti
c758a5b9ea Make use of capitano.run() to run subcommands 2015-05-05 17:34:24 -03:00
Juan Cruz Viotti
cd3245a631 Handle device unmounting in os install command 2015-05-02 10:34:11 -04:00
Juan Cruz Viotti
7f7ca13001 Implement --version/-v global options. Closes #35 2015-04-30 11:56:15 -04:00
Juan Cruz Viotti
fab85b381a Throw a nice error if note contents are missing 2015-04-29 14:39:46 -04:00
Juan Cruz Viotti
193cedae26 Check that an application exists before asking it's type. Closes #30 2015-04-28 09:18:21 -04:00
Juan Cruz Viotti
9bb51d7146 Make devices command list all devices if no application option. Closes #17 2015-04-27 11:21:30 -04:00
Juan Cruz Viotti
84900aa588 Remove outdated uuid checking help message 2015-04-27 10:51:26 -04:00
Juan Cruz Viotti
9a3c844336 Print logs correctly, as they recently got a message field added 2015-04-27 09:30:57 -04:00
Juan Cruz Viotti
ea5b521262 Merge pull request #26 from resin-io/fix/device-init-temp-output
Fix temporary os download output option in device init
2015-04-21 09:06:11 -04:00
Juan Cruz Viotti
3bc71577b5 Fix temporary os download output option in device init 2015-04-21 08:37:40 -04:00
Juan Cruz Viotti
0fb24162fc Merge pull request #24 from resin-io/fix/update
Fix logical issue in update command
2015-04-20 14:14:33 -04:00
Juan Cruz Viotti
8041905144 Remove duplicated whoami command 2015-04-20 12:46:43 -04:00
Juan Cruz Viotti
37d96e238d Fix logical issue in update command 2015-04-20 12:42:31 -04:00
Juan Cruz Viotti
7bd8922a4e Upgrade Resin VCS to v1.2.0 and make use of vcs.getApplicationName() 2015-04-20 11:41:26 -04:00
Juan Cruz Viotti
f7256e9927 Make device init command take an application name instead of id 2015-04-20 09:13:15 -04:00
Juan Cruz Viotti
85444a5a6a Make os download command accept an application name instead of id 2015-04-20 09:06:40 -04:00
Juan Cruz Viotti
3c2a440553 Make "example clone" clone to a new directory 2015-04-20 08:56:10 -04:00
Juan Cruz Viotti
caa4fcf754 Bind progress update function to avoid context issues 2015-04-17 10:11:02 -04:00
Juan Cruz Viotti
a96ab487ba Fix bug with login with token
The commit was merged from an older branch, in which settings was
still part of the SDK.
2015-04-08 08:25:27 -04:00
Juan Cruz Viotti
cd28c985ce Merge pull request #9 from resin-io/feature/version
Remove bundled node version from version command
2015-04-07 10:56:18 -04:00
Juan Cruz Viotti
727af42ad4 Merge pull request #8 from resin-io/feature/login-with-token
Login with token
2015-04-07 08:12:12 -04:00
Juan Cruz Viotti
4a7d3d5945 Mock local Raspberry Pi bundle 2015-04-07 08:10:26 -04:00
Juan Cruz Viotti
03f05305cf Fix tiny text issue 2015-04-07 08:07:06 -04:00
Juan Cruz Viotti
8533a4a303 Remove bundled node version from version command 2015-04-06 17:18:00 -04:00
Juan Cruz Viotti
064afd6705 Fetch TOKEN_URL from the resin sdk 2015-04-06 17:05:13 -04:00
Juan Cruz Viotti
978ff91f87 Remove tab query from preferences token url constant
Tab queries were removed from the web frontend.
2015-04-06 17:04:43 -04:00
Juan Cruz Viotti
1cd0f02db5 Attempt to open a browser to the token location automatically 2015-04-06 17:04:03 -04:00
Juan Cruz Viotti
77695bb505 Allow login with token 2015-04-06 17:02:53 -04:00
Juan Cruz Viotti
4e4428fdbb Move windosu elevate logic to another module 2015-04-06 16:49:53 -04:00
Juan Cruz Viotti
2a4ba895e5 Elevate privileges of update command if necessary 2015-04-01 12:51:04 -04:00
Juan Cruz Viotti
782c92885d Use child_process to trigger self update
Using the NPM API led to weird issues.

See https://github.com/npm/npm/issues/7723.
2015-03-24 08:44:02 -04:00
Juan Cruz Viotti
a14dfa6cf1 Fix long line lint warning 2015-03-23 18:32:28 -04:00
Juan Cruz Viotti
f3b6f9d117 Add missing example to device init 2015-03-23 08:25:45 -04:00
Juan Cruz Viotti
df9c4ce2fd Reference applications and devices by name 2015-03-23 08:17:55 -04:00
Juan Cruz Viotti
cd8bb7882e Reimplement whoami command 2015-03-19 15:57:43 -04:00
Juan Cruz Viotti
a524bffaa2 Integrate with SDK v1.0.0 2015-03-19 11:45:07 -04:00
Juan Cruz Viotti
fa258a84cc Show a spinner if no progress state in os download command 2015-03-16 11:45:17 -04:00
Juan Cruz Viotti
5efa7309be Fix bug in device init 2015-03-16 11:06:44 -04:00
Juan Cruz Viotti
80e0f20301 Make device init attempt to get application id from current directory 2015-03-12 12:03:59 -04:00
Juan Cruz Viotti
8410a709c9 Make use of resin-vcs instead of using gitwrap directly 2015-03-12 11:24:36 -04:00
Juan Cruz Viotti
53197856ab Extend device init help message 2015-03-11 09:05:20 -04:00
Juan Cruz Viotti
cb5bb69b47 Get rid of gitCli in favor of gitwrap 2015-03-11 09:03:13 -04:00
Juan Cruz Viotti
4bfe52d73b Require CLI to be updated when running os install 2015-03-11 08:49:26 -04:00
Juan Cruz Viotti
8fbde4c452 Make use of gitwrap 2015-03-10 10:03:49 -04:00
Juan Cruz Viotti
0cc1765a1e Regenerate documentation 2015-03-09 19:49:46 -04:00
Juan Cruz Viotti
f0346b1fd0 Allow to interactively configure network for os download 2015-03-09 19:42:43 -04:00
Juan Cruz Viotti
1bb798a8b8 Get rid of automatic cache name generation logic 2015-03-09 12:38:37 -04:00
Juan Cruz Viotti
6ba97cd961 Automate resin init command 2015-03-09 09:14:39 -04:00
Juan Cruz Viotti
9c7b36e1d8 Improve resin update help section 2015-03-04 14:47:46 -04:00
Juan Cruz Viotti
cefa9d1e31 Fix bug with update command 2015-03-04 14:46:34 -04:00
Juan Cruz Viotti
06020c0344 Implement self update functionality and notification 2015-03-04 14:40:40 -04:00
Juan Cruz Viotti
9038b76d73 Implement resin update command 2015-03-04 14:03:08 -04:00
Juan Cruz Viotti
4aefb15c70 Prevent resin-write infinite loop 2015-03-03 12:39:41 -04:00
Juan Cruz Viotti
b2444feae9 Make use of process.argv[0] instead of hardcoding "node" to windosu 2015-03-03 11:32:56 -04:00
Juan Cruz Viotti
6a83a537c7 Implement basic documentation generation mechanism 2015-03-03 11:32:24 -04:00
Juan Cruz Viotti
78d11bffd0 Document --quiet option for plugin install 2015-03-02 10:41:38 -04:00
Juan Cruz Viotti
572fe29fe6 Implement plugin update command 2015-03-02 10:41:08 -04:00
Juan Cruz Viotti
2085e71f33 Remove unecessary double quotes 2015-02-26 11:38:48 -04:00
Juan Cruz Viotti
980e55afd3 Simplify usage help string 2015-02-26 11:15:15 -04:00
Juan Cruz Viotti
9c98adb712 Prevent writing accidentally to system drives 2015-02-25 11:12:58 -04:00
Juan Cruz Viotti
91a2453ebb Make use of new nplug version 2015-02-24 13:36:10 -04:00
Juan Cruz Viotti
bec264d936 Add trailing dash to plugin list prefix 2015-02-12 13:22:28 -04:00
Juan Cruz Viotti
5e69995bb0 Refactor npm related logic to plugins 2015-02-12 13:10:45 -04:00
Juan Cruz Viotti
6c70f64f6a Log installed plugins 2015-02-12 12:54:59 -04:00
Juan Cruz Viotti
3445388db3 Implement plugin rm command 2015-02-12 12:50:40 -04:00
Juan Cruz Viotti
82ac558d7f Implement plugin install command 2015-02-12 12:23:01 -04:00
Juan Cruz Viotti
7dd34f4a0e Fix option parameter name issue 2015-02-12 10:20:00 -04:00
Juan Cruz Viotti
74b1092e9a Implement plugins command 2015-02-12 09:41:25 -04:00
Juan Cruz Viotti
7c836132ad Add node version to version command output 2015-02-11 15:30:49 -04:00
Juan Cruz Viotti
d97a4d9d49 Use visuals.widgets.select for app create command 2015-02-11 10:07:53 -04:00
Juan Cruz Viotti
a6a3eeae6d Make use of resin.models.device.getSupportedDeviceTypes() asynchronously 2015-02-11 09:53:48 -04:00
Juan Cruz Viotti
65729012b6 Fix logs display 2015-02-10 15:43:39 -04:00
Juan Cruz Viotti
d3f91797bf Fix help command now that getMatchCommand() is async 2015-02-10 14:44:39 -04:00
Juan Cruz Viotti
eeee1ce8e1 Implement in place progress bar 2015-02-10 12:55:18 -04:00
Juan Cruz Viotti
65fbe12f22 Make use of new Capitano stdin support to get rid of helpers/ 2015-02-10 11:32:06 -04:00
Juan Cruz Viotti
8275275a05 Make login command accept options instead of colon separated credentials
For consistency
2015-02-09 11:48:13 -04:00
Juan Cruz Viotti
4d49655ab2 Enable registering programatically 2015-02-09 11:43:10 -04:00
Juan Cruz Viotti
d2f319c725 Move chop functionality to Resin CLI Visuals 2015-02-06 11:22:11 -04:00
Juan Cruz Viotti
e769fdc205 Prevent linter long line warning 2015-02-06 11:11:38 -04:00
Juan Cruz Viotti
ca961d04c5 Pass a ProgressState instance to bar.tick() directly 2015-02-06 08:21:32 -04:00
Juan Cruz Viotti
3005a91658 Write device init help page 2015-02-05 09:56:22 -04:00
Juan Cruz Viotti
0dba133b0a Fix comment spacing 2015-02-05 08:56:52 -04:00
Juan Cruz Viotti
780893b411 Make os download modify options.output directly 2015-02-05 08:53:05 -04:00