Juan Cruz Viotti
2be105d329
Don't make device init
a primary command
...
Unlikely that a user will run this directly having the more high level
`quickstart`.
2016-01-11 16:00:07 -04:00
Juan Cruz Viotti
9cfce68489
Change license to Apache 2.0
2016-01-03 23:58:51 -04:00
Juan Cruz Viotti
210680c9c9
Lazy load command actions dependencies
...
In my system (MBPr 13), printing the current version takes over 2
seconds:
```sh
$ time ./bin/resin version
2.4.0
./bin/resin version 1.37s user 0.19s system 73% cpu 2.130 total
```
The CLI takes almost all of these time to parse the dependency tree
before returning control over the actually called command.
To mitigate this problem, we only require the NPM dependencies a command
requires when executing such command, and thus prevent dependencies from
being required and parsed unnecessary.
After this improvement, printing the original example (`resin version`)
returns in less than a second (2x improvement):
```sh
$ time ./bin/resin version
2.4.0
./bin/resin version 0.88s user 0.09s system 102% cpu 0.938 total
```
2015-12-07 11:48:54 -03:00
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