mirror of
https://github.com/balena-io/balena-cli.git
synced 2024-12-22 15:02:22 +00:00
210680c9c9
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 ```
31 lines
1.2 KiB
JavaScript
31 lines
1.2 KiB
JavaScript
(function() {
|
|
exports.set = {
|
|
signature: 'note <|note>',
|
|
description: 'set a device note',
|
|
help: 'Use this command to set or update a device note.\n\nIf note command isn\'t passed, the tool attempts to read from `stdin`.\n\nTo view the notes, use $ resin device <uuid>.\n\nExamples:\n\n $ resin note "My useful note" --device 7cf02a62a3a84440b1bb5579a3d57469148943278630b17e7fc6c4f7b465c9\n $ cat note.txt | resin note --device 7cf02a62a3a84440b1bb5579a3d57469148943278630b17e7fc6c4f7b465c9',
|
|
options: [
|
|
{
|
|
signature: 'device',
|
|
parameter: 'device',
|
|
description: 'device uuid',
|
|
alias: ['d', 'dev'],
|
|
required: 'You have to specify a device'
|
|
}
|
|
],
|
|
permission: 'user',
|
|
action: function(params, options, done) {
|
|
var Promise, _, resin;
|
|
Promise = require('bluebird');
|
|
_ = require('lodash');
|
|
resin = require('resin-sdk');
|
|
return Promise["try"](function() {
|
|
if (_.isEmpty(params.note)) {
|
|
throw new Error('Missing note content');
|
|
}
|
|
return resin.models.device.note(options.device, params.note);
|
|
}).nodeify(done);
|
|
}
|
|
};
|
|
|
|
}).call(this);
|