bash completion support
This commit is contained in:
parent
f6f0843200
commit
411659180f
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,4 +1,4 @@
|
||||
/node_modules
|
||||
/tmp
|
||||
/build
|
||||
/test/config.json
|
||||
/npm-debug.log
|
||||
|
10
.npmignore
Normal file
10
.npmignore
Normal file
@ -0,0 +1,10 @@
|
||||
/node_modules
|
||||
/tmp
|
||||
/test/config.json
|
||||
/npm-debug.log
|
||||
/deps
|
||||
/examples
|
||||
/tools
|
||||
/Makefile
|
||||
/TODO.txt
|
||||
/test
|
15
README.md
15
README.md
@ -70,6 +70,21 @@ Or non-interactively
|
||||
joyent_20150826T120743Z
|
||||
|
||||
|
||||
## Bash completion
|
||||
|
||||
You can quickly source `triton` bash completions in your current
|
||||
shell with:
|
||||
|
||||
source <(triton completion)
|
||||
|
||||
For a more permanent installation:
|
||||
|
||||
triton completion >> ~/.bashrc
|
||||
|
||||
# Or maybe:
|
||||
triton completion > /usr/local/etc/bash_completion.d/triton
|
||||
|
||||
|
||||
## node-triton differences with node-smartdc
|
||||
|
||||
- There is a single `sdc` command instead of a number of `sdc-FOO` commands.
|
||||
|
5
TODO.txt
5
TODO.txt
@ -11,12 +11,11 @@ note in README that full UUIDs is much faster in the API
|
||||
|
||||
*type*: cloudapi changes to clarify: LX, docker, smartos, kvm instances
|
||||
|
||||
bash completion: exclude '-J', better top/bottom comment boilerplate,
|
||||
put the CLI's version in the top comment, ISO date format
|
||||
|
||||
# maybe next
|
||||
|
||||
bash completion (subcmd options)
|
||||
bash completion (cached data: insts, imgs, pkgs, names and ids)
|
||||
|
||||
PUBAPI-1117 triton create -c|--count N
|
||||
|
||||
Rate limiting. Testing with non-op accounts. I suspect PUBAPI-1117 and other
|
||||
|
@ -229,9 +229,11 @@ CLI.prototype.init = function (opts, args, callback) {
|
||||
|
||||
|
||||
|
||||
// Meta
|
||||
CLI.prototype.do_completion = require('./do_completion');
|
||||
//CLI.prototype.do_profile = require('./do_profile');
|
||||
|
||||
// Operator
|
||||
// Other
|
||||
CLI.prototype.do_account = require('./do_account');
|
||||
CLI.prototype.do_services = require('./do_services');
|
||||
CLI.prototype.do_datacenters = require('./do_datacenters');
|
||||
|
35
lib/do_completion.js
Normal file
35
lib/do_completion.js
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Joyent Inc. All rights reserved.
|
||||
*
|
||||
* `triton completion ...`
|
||||
*/
|
||||
|
||||
function do_completion(subcmd, opts, args, cb) {
|
||||
if (opts.help) {
|
||||
this.do_help('help', {}, [subcmd], cb);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(this.bashCompletion());
|
||||
cb();
|
||||
}
|
||||
|
||||
do_completion.options = [
|
||||
{
|
||||
names: ['help', 'h'],
|
||||
type: 'bool',
|
||||
help: 'Show this help.'
|
||||
}
|
||||
];
|
||||
do_completion.help = [
|
||||
'Output bash completion code for the `triton` CLI.',
|
||||
'',
|
||||
'Installation:',
|
||||
' triton completion >> ~/.bashrc',
|
||||
'',
|
||||
'Or maybe:',
|
||||
' triton completion > /usr/local/etc/bash_completion.d/triton'
|
||||
].join('\n');
|
||||
do_completion.hidden = true;
|
||||
|
||||
module.exports = do_completion;
|
Reference in New Issue
Block a user