https://github.com/legend80s/cli-aid
Lightweight CLI-App maker
https://github.com/legend80s/cli-aid
Last synced: 3 months ago
JSON representation
Lightweight CLI-App maker
- Host: GitHub
- URL: https://github.com/legend80s/cli-aid
- Owner: legend80s
- License: mit
- Created: 2020-10-17T16:05:59.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-06-01T11:03:07.000Z (about 4 years ago)
- Last Synced: 2025-02-26T08:40:05.560Z (3 months ago)
- Language: JavaScript
- Size: 154 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cli-aid
> A Beautiful đ and Lightweight đ CLI-App Factory.
- [x] Show default help and version information âšī¸
- [x] Option alias đ
- [x] Command inclusive options, can be optional or required đŖ## Use
```js
const { CLI } = require('cli-aid');new CLI()
.package(pkg)
.option('dry-run', {
default: false,
help: 'Does everything compress would do except actually compressing. Reports the details of what would have been compressed.',
})
.option('max-count', 'm', 'c', {
default: 15,
help: 'The max compressing turns. Default 15.',
})
.parse(process.argv.slice(2));
```## Examples
Command inclusive and required options.
```js
.command('base64', {
// text is required
usage: 'tinify base64 ',
help: 'Output base64-encoded string of the input text.',// cmd inclusive options
options: [
['verbose', 'v', { help: 'Show detailed information.' }],
],
})
```### More Detailed Examples
```javascript
const { CLI } = require('cli-aid');const pkg = {
name: 'example-cli',
version: '7.0.0',
description: 'A example cli to show you the power of cli-aid.',
};new CLI()
.package(pkg)
.option('dry-run', {
default: false,
help: 'Does everything compress would do except actually compressing. Reports the details of what would have been compressed.',
})
.option('max-count', 'm', 'c', {
default: 15,
help: 'The max compressing turns. Default 15.',
})// with one field required and a verbose option
.command('base64', {
usage: 'tinify base64 ',
help: 'Output base64-encoded string of the input text.',options: [
['verbose', 'v', { help: 'Show detailed information.' }],
],
}, (options) => {
const text = options.text;console.log('output base64 for text', `"${text}"`);
console.log(Buffer.from(text).toString('base64'));if (options.verbose) {
console.log();
console.log('options:', options);
}process.exit(0);
})// with two fields required
.command('set-key', {
usage: 'tinify set-key ',
help: 'Set the tinify key.',
}, (options) => {
console.log('set-key to', `"${options.key}"`, 'with mode', `"${options.mode}"`);
console.log();
console.log('options:', options);process.exit(0);
})// customize your version
.command('version', {
usage: `${pkg.name} version`,
help: `Print ${pkg.name} version.`,options: [
['verbose', 'v', { help: 'Show detailed information.' }],
],
}, (options) => {
let versionTips = `${pkg.name}@${pkg.version}`;if (options.verbose) {
versionTips = `${pkg.name}@${pkg.version} ${process.platform}-${process.arch} node-${process.version}`
}console.log(versionTips);
process.exit(0);
}).parse(process.argv.slice(2));
```### Show help
```sh
node demo/example-cli.js help
``````sh
example-cli/7.0.0A example cli to show you the power of cli-aid.
Usage
tinify [OPTIONS]
example-cli help [commands]
example-cli version
tinify base64
tinify set-keyCommands
help Show this help information.
version Print example-cli version.
base64 Output base64-encoded string of the input text.
set-key Set the tinify key.Use "example-cli help " for more information about a command.
Options
--help, -h, -docs, -å¸ŽåŠ Show this help information.
--version, -v Show the version information.
--dry-run Does everything compress would do except actually compressing. Reports the details of what would have been compressed.
--max-count, -m, -c The max compressing turns. Default 15.
--verbose Show detailed information about the process of compressing.
```### Required cmd options
```sh
node demo/example-cli.js help base64
``````sh
Output base64-encoded string of the input text.Usage
tinify base64Options
--verbose, -v Show detailed information.
``````sh
node demo/example-cli.js base64
```option in `` is required
```sh
`text` required. Usage: tinify base64
```READ more options in [CLI.test.js](https://github.com/legend80s/cli-aid/blob/main/test/CLI.test.js) and command in [demo/example-cli.js](https://github.com/legend80s/cli-aid/blob/main/demo/example-cli.js).
## Publish
```sh
npm version major / minor / patch
```## TODO
- [x] cmd options
- [x] cmd help msg