Commit Graph

181 Commits

Author SHA1 Message Date
Juan Cruz Viotti
20855be968 Merge pull request #275 from resin-io/jviotti/feat/sudo-explain
Explain why we need the computer password on device init
2015-12-02 15:59:27 -04:00
Juan Cruz Viotti
abc8399260 Explain why we need the computer password on device init 2015-12-02 11:15:20 -04:00
Juan Cruz Viotti
9ad2ba1131 Show id in devices command 2015-12-02 09:06:41 -04:00
Juan Cruz Viotti
43697a3476 Show uuid in devices command
The command to get information about a device, `resin device` requires a
`uuid` as a parameter. Given that we don't show uuids in `resin
devices`, the user has no way to know what uuid to pass to get extra
information.

We also remove some non very used information columns from `resin
devices` to make space for the uuid.
2015-11-13 14:06:55 -04:00
Juan Cruz Viotti
ba318f2939 Implement device move command
This command allows to user to move a device to another application he
owns.
2015-11-12 07:47:16 -04:00
Juan Cruz Viotti
f2507daa09 Allow advanced option in device init
This option is inherited to `os configure`.
2015-10-20 09:16:56 -04:00
Juan Cruz Viotti
d28ecf3230 Allow passing a custom uuid to device register 2015-10-19 14:16:47 -04:00
Juan Cruz Viotti
b2425d2c0e Take device type as an option in os initialize 2015-10-15 09:11:38 -04:00
Juan Cruz Viotti
cddf630907 Avoid _.ary in temporal path disposer
For some reason fails with a weird Bluebird error on Windows
2015-10-12 18:12:58 -04:00
Juan Cruz Viotti
e5e871ddcd Upgrade SDK to v3.0.0
Breaking changes in this version:

- `resin.models.device.generateUUID()` is now async.
2015-10-12 08:34:22 -04:00
Juan Cruz Viotti
f8470287c1 Separate general help per topic relevance
Only list primary commands by default, unless a `--verbose` option is
passed to list the additional ones.

Fixes: https://github.com/resin-io/resin-cli/issues/101
2015-10-02 08:50:32 -04:00
Juan Cruz Viotti
445e37ccaf Call os initialize as an elevated process
Currently, the fact that `os initialize` requires elevated permissions
forced us to require calling commands that reuse it, such as `device
init` and `quickstart` with administrator permissions as well.

This ended up causing issues like saving images in the cache that belong
to root, or initializing git repositories that requires `sudo` to
commit.

The solution is to call `os initialize` as a child process preppending
`sudo` within `device init`.

Fixes: https://github.com/resin-io/resin-cli/issues/109
2015-10-01 13:07:53 -04:00
Juan Cruz Viotti
90be01b05d Make os initialize take a device type instead of a uuid 2015-09-30 14:31:23 -04:00
Juan Cruz Viotti
0e06ac464f Fix incorrect Promise.using syntax
`Promise.using` takes the function that acts on the resource as the
second argument, instead of as `.then()`.
2015-09-30 11:37:27 -04:00
Juan Cruz Viotti
15cb0c4889 Use rimraf for deleting os temporary files
We already use `rimraf` for deleting os temporary directories, however
there are a few benefits of using it for files as well:

- Simplicity. We avoid having to check if a path is a file or directory.
- `rimraf` attempts to workaround the known Windows issues of anti
viruses not closing files. Described in more detail here: https://github.com/resin-io/resin-cli/blob/master/TROUBLESHOOTING.md#i-get-ebusy-errors-after-initializing-a-device-even-as-administrator-on-windows
2015-09-30 10:06:08 -04:00
Juan Cruz Viotti
30d84f015a Merge pull request #199 from resin-io/jviotti/feature/197/device-init-apps
Prompt for select application if running device init with no arguments
2015-09-29 15:31:59 -04:00
Juan Cruz Viotti
f17e9c97b8 Prompt for select application if running device init with no arguments
Currently, if `device init` was ran without an application argument, we
attempted to get the application name from the current directory, given
it was a git repository.

This approach led to confusions from time to time, so now we prompt the
user to select one of it's own applications from a dropdown instead of
checking the current directory in this edge case.

Fixes: https://github.com/resin-io/resin-cli/issues/197
2015-09-29 15:10:59 -04:00
Juan Cruz Viotti
21fcdfaff6 Use Promise.disposer() to make sure temp files are deleted 2015-09-29 15:08:24 -04:00
Juan Cruz Viotti
d704c10197 Implement os initialize command
This command initialized an operating system image with a disk device.
2015-09-29 14:52:34 -04:00
Juan Cruz Viotti
7e6eb4b9e4 Implement device register command
This command registers a new device with the passed application,
returning the new device uuid.
2015-09-29 14:33:31 -04:00
Juan Cruz Viotti
42256384be Implement os configure
This command, given a path to an image and a device uuid, perform
configuration based on the resin-device-type manifests.
2015-09-29 13:47:10 -04:00
Juan Cruz Viotti
f6d8f12ba2 Implement os download command
This command download an unconfigured image to both the cache and to the
specified location by the `--output` option.
2015-09-29 13:03:14 -04:00
Juan Cruz Viotti
64c8420c9d Implement device specs. Fix #99
Support for all devices. Tested in the following ones:

- Intel Edison.
- Raspberry Pi 2.
- Parallella.
2015-09-11 13:02:59 +03:00
Juan Cruz Viotti
4bdcd3d2ee Merge pull request #180 from resin-io/issue_#103
Resin CLI Events integration. Fix #103
2015-09-05 20:11:52 +03:00
mike
b0650530cc Resin CLI Events integration. Fix #103 2015-09-05 19:15:31 +03:00
Juan Cruz Viotti
a090e6c21d Refactor quickstart
- Use promises.
- Move some logic to `helpers`.
- Inline `device await` command.
2015-08-27 10:01:33 -04:00
Juan Cruz Viotti
354921ca92 Add Aborted error message when not accepting a confirmation
This prevents a lot of duplicate code to check for confirmation status
and exit from the current action.
2015-08-20 16:16:20 -04:00
Juan Cruz Viotti
dc513a08f6 Update Resin CLI Form to v1.2.0
This version includes support for the `drive` input type.
2015-08-20 11:55:53 -04:00
mike
0595452c3d Add message informing the user about potential delay in system img initialization. Fix #90. 2015-08-18 15:43:52 +03:00
mike
02a06e1e7c Reword output during download in device init. Fix #106. 2015-08-18 13:55:04 +03:00
Juan Cruz Viotti
a698b25fda Remove devices supported command
The command is not necessary and unused.
2015-08-17 10:05:36 -04:00
Juan Cruz Viotti
e5b7aae4ae Refactor device actions to use promises 2015-08-17 09:49:59 -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
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
dc030f4cd1 Implement Quickstart command 2015-08-04 20:16:55 +03:00
mike
cf512cc01b Integrate new resin-cli-visuals functionality 2015-07-29 16:34:31 +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
8fa906dd48 Upgrade Resin CLI Visuals and use it's new capabilities 2015-06-11 12:46:56 -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
2bfeb7f42c Associate a device before first boot 2015-06-04 10:10:15 -04:00
Juan Cruz Viotti
fdd0e4a966 Implement config injection 2015-06-04 08:06:37 -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
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
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
9bb51d7146 Make devices command list all devices if no application option. Closes #17 2015-04-27 11:21:30 -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
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
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
80e0f20301 Make device init attempt to get application id from current directory 2015-03-12 12:03:59 -04:00
Juan Cruz Viotti
53197856ab Extend device init help message 2015-03-11 09:05:20 -04:00
Juan Cruz Viotti
6ba97cd961 Automate resin init command 2015-03-09 09:14:39 -04:00
Juan Cruz Viotti
6a83a537c7 Implement basic documentation generation mechanism 2015-03-03 11:32:24 -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
3005a91658 Write device init help page 2015-02-05 09:56:22 -04:00
Juan Cruz Viotti
e6081238a1 Implement new device init command 2015-02-04 15:17:51 -04:00
Juan Cruz Viotti
9f4ae4ac3f Rename current device init to os download 2015-02-04 15:17:50 -04:00
Juan Cruz Viotti
6ce0fdc4ab Make use of diskio 2015-02-02 12:25:22 -04:00
Juan Cruz Viotti
c7c7d55338 Allow to choose a device interactively from device init 2015-01-30 12:55:56 -04:00
Juan Cruz Viotti
7beca02eda Mention drives command in device init help 2015-01-30 09:58:54 -04:00
Juan Cruz Viotti
03c6c72df6 Integrate new progress bar 2015-01-29 14:59:57 -04:00
Juan Cruz Viotti
2d5549873a Prettier progress bar 2015-01-29 14:06:38 -04:00
Juan Cruz Viotti
35633f3612 Math.floor() percentage 2015-01-29 14:05:10 -04:00
Juan Cruz Viotti
2b992ec233 Simple progress bar approach 2015-01-29 14:01:21 -04:00
Juan Cruz Viotti
3e938f7808 Remove done message at the end of windosu execution 2015-01-29 12:29:35 -04:00
Juan Cruz Viotti
38139ed169 Simplify conditional 2015-01-29 12:27:37 -04:00
Juan Cruz Viotti
f767f637f7 Fix conditional 2015-01-29 12:23:30 -04:00
Juan Cruz Viotti
8437757ca8 Prevent infinite loop 2015-01-29 12:21:56 -04:00
Juan Cruz Viotti
9069b07d4a Integrate windosu 2015-01-29 12:04:48 -04:00
Juan Cruz Viotti
db3d4292f4 Add Windows support to device init command 2015-01-28 08:33:50 -04:00
Juan Cruz Viotti
155a6775e4 Make use of device_type directly 2015-01-22 13:20:20 -04:00
Juan Cruz Viotti
a275de436d Make use of simplified table widget 2015-01-22 13:06:02 -04:00
Juan Cruz Viotti
50325d0f8f Make use of resin-cli-visuals and get rid of local ui module 2015-01-21 09:50:19 -04:00
Juan Cruz Viotti
aa6680d57a Fix device init help OS X command 2015-01-20 15:36:01 -04:00
Juan Cruz Viotti
aa4d7a408a Implement device init command (for UNIX only) 2015-01-20 15:34:47 -04:00
Juan Cruz Viotti
d49677581b Make use of Capitano permissions feature 2015-01-16 09:34:59 -03:00
Juan Cruz Viotti
5abc4e550f Move command declarations next to their definitions 2015-01-15 14:18:39 -03:00
Juan Cruz Viotti
a6282d2b28 Get rid of log module
Didn't provide that much value
2015-01-15 11:36:43 -03:00
Juan Cruz Viotti
3e055b32d2 Update Capitano to v1.2.0 and make use of done callback feature 2015-01-15 10:47:17 -03:00
Juan Cruz Viotti
05812ba442 Implement and make use of errors.handleCallback()
This function is introduced to remove some duplication
2015-01-09 12:22:18 -03:00
Juan Cruz Viotti
41fcedb171 Remove TODO that has been moved to the SDK 2015-01-09 10:46:35 -03:00
Juan Cruz Viotti
d2b0772673 Remove duplication by relying on Capitano's new required option feature 2015-01-08 12:11:10 -03:00
Juan Cruz Viotti
12f46be691 Partially get rid of nested sdk 2015-01-08 09:39:38 -03:00
Juan Cruz Viotti
07c57d335b Refactor table to get rid of map feature 2015-01-06 14:12:11 -03:00
Juan Cruz Viotti
19e151e521 Simplify conditional 2015-01-06 13:57:11 -03:00
Juan Cruz Viotti
ac00a96728 Move device manipulation logic to device model 2015-01-06 13:35:38 -03:00
Juan Cruz Viotti
45a4f8eda0 Remove unnecessary object keys deletion 2015-01-06 13:15:40 -03:00
Juan Cruz Viotti
af8d1e4517 Implement devices supported command 2014-12-24 12:50:30 -04:00
Juan Cruz Viotti
0983506efb Fix bug in device command 2014-12-23 09:54:34 -04:00