dev-cli
style guide
everything the user sees in the ops cli (including the docs!) is written in lower case
exceptions are made for proper nouns
removing casing as a concern makes the cli easier to interact with
development
run npm link to see your changes reflected immediately
in some cases, you may get this error -bash: ops: command not found
this is fixed by running npm i -g
all code connected to the index folder will be transpiled by Babel
the only features that won't work are import
/export
- for those you have to stick with commonjs require
and module.exports
the ops cli is only meant to work on unix systems running node
wishlist
there is a noticeable lag whenever i run ops anything. clearly some overhead config is being repeated, how can we get rid of that?
tab completion? https://www.npmjs.com/package/omelette
https://github.com/SBoudrias/Inquirer.js
ops stack - get the current stack (will require some kind of cli authentication)
https://stackoverflow.com/questions/20430973/saving-cookie-with-curl-on-linux
ops morning - log the user in, pull from remote, start dev processes, on friday remind about timecard
ops evening - sync code
ops sync - sync up with the current branch, git fetch new branches, prompt for a commit message with the results of git status
ops deploy (major|minor|patch) - update the version number, make sure jenkins is set to gzn, build, make updates
ops build - like the above, except make sure jenkins is set to sbx - I'm sure there's a jenkins api
ops version - related to ops deploy, step the version forward, contribute to docs for that new version
ops clean - delete components that aren't being used anywhere unless they are more than just boilerplate
ops new (component|service|model...) - wire up a new whatever
ops remove (component-name) - count all the uses of the component, prompt the user to confirm, and then remove it
ops move (component-name) - prompt the user for a destination, then move the component
ops git shortcuts:
checkout the current deploy branch
commit feature/fix/chore/refactor
syncw
ops config, automatically find the js repo
scratchwork
to do
- Figure out how to do basic authentication/ssh stuff
- Get bounce command working
- Get timecard command working
- Get root commands to display lists of sub-commands when none are provided
I wonder if there's a way to make a more explicit router:
ops
|
|_____ ...
| |
g dev
|
|_____
|
component
ops {
_ {
dev, dist, greet, version, stack...
}
generate {
component {
root, common...
}
}
dev {
}
}
config schema
{
ops_client_path: String,
timecard: {
constants: {
}
data: {
}
}
name: {
full: String,
first: String,
last: String
},
preferred_editor: String,
slack_webhook_url: {
qa: String
}
}