Skip to content

ahmadawais/cli-meow-help

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

33 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

cli-meow-help running in a terminal

cli-meow-help

DOWNLOADS Node.js CLI Learn VSCode Sponsor Follow @MrAhmadAwais on Twitter

Generate automatically formatted help text for meow CLI helper


πŸ“Ÿ

Install

npm install meow cli-meow-help

βš™οΈ

Usage

const meow = require('meow');
const meowHelp = require('cli-meow-help');

const commands = {
	new: {desc: `Creates a new user account`},
	duplicate: {desc: `Duplicates a user account`}
};

const flags = {
	random: {
		desc: `Prints random data`,
		type: 'boolean',
		default: true
	}
};

const helpText = meowHelp({
	name: `cli-command`,
	flags,
	commands
});

meow(helpText, {flags});

// Now run `cli-command --help` to view the
// following auto formatted & generated help info.

cli-meow-help running in a terminal


πŸ“ƒ

API

meowHelp(options)

❯ options

Type: object

Default: ↓

{
	name = `(CLI name undefined)`,
	desc,
	commands = {},
	flags = {},
	examples = [],
	defaults = true,
	header,
	footer
}

You can specify the options below.

❯ name

Type: string
Default: (CLI name undefined)

The bin command name of the cli that's used to run the CLI. Examples: corona for the corona-cli that's installed globally or npx corona-cli for if npx is the recommended usage.

❯ desc

Type: string
Default: undefined (optional)

Optionally define a description text for the help message.

❯ commands

Type: string
Default: {} (optional)

Optionally, define a JavaScript object containing info on the CLI commands (i.e. meow inputs). Each command has a desc property to define the help text.

❯ flags

Type: string
Default: {}

Define CLI options (i.e. meow flags) just like you do with meow which is the flags JavaScript object containing each flag with an extra desc property to define the help text.

> examples

Type: Array
Default: []

List optional examples of how to use the CLI.

Check the test file for more context. Format example:

const examples = [

	{
		command: `new`,
		flags: [`random`]
	}
];

❯ defaults

Type: string
Default: true (optional)

Prints out the default values of flags. Set to false to disable.

❯ header

Type: string
Default: undefined (optional)

Optionally, add additional header information.

❯ footer

Type: string
Default: undefined (optional)

Optionally, add additional footer information.


πŸ“

Changelog

❯ Read the changelog here β†’


KEY: πŸ“¦ NEW, πŸ‘Œ IMPROVE, πŸ› FIX, πŸ“– DOC, πŸš€ RELEASE, and πŸ€– TEST

I use Emoji-log, you should try it and simplify your git commits.


πŸ“ƒ

License & Conduct


πŸ™Œ

Connect

GitHub @AhmadAwaisΒ (follow) To stay up to date on free & open-source software

Twitter @MrAhmadAwaisΒ (follow) To get #OneDevMinute daily hot tips & trolls

YouTube AhmadAwaisΒ (subscribe) To tech talks & #OneDevMinute videos

Blog: AhmadAwais.comΒ (read) In-depth & long form technical articles

LinkedIn @MrAhmadAwaisΒ (connect) On the LinkedIn profile y'all


πŸ‘Œ

Sponsor

Me (Ahmad Awais) and my incredible wife (Maedah Batool) are two engineers who fell in love with open source and then with each other. You can read more about me here. If you or your company use any of my projects or like what I’m doing then consider backing me. I'm in this for the long run. An open-source developer advocate.

Ahmad on Twitter

NodeCLI.com β€” Learn to build Node.js CLI Automation

This repository is part of the NodeCLI.com course.

After building hundreds of developer automation tools used by millions of developers, I am sharing exactly how you can do it yourself with minimum effective effort. Learn to build Node.js & JavaScript based CLI (Command Line Interface) apps. Automate the grunt work, do more in less time, impress your manager, and help the community. β†’ I'm sharing it all in this online video course. Node CLI Automation without wasting a 1,000 hours β†’

Node CLI Course

Node CLI

Awais on Twitter