Socket
Socket
Sign inDemoInstall

cac

Package Overview
Dependencies
43
Maintainers
1
Versions
120
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    cac

Command And Conquer.


Version published
Weekly downloads
5.9M
increased by3.06%
Maintainers
1
Install size
544 kB
Created
Weekly downloads
 

Package description

What is cac?

The cac npm package is a simple yet powerful framework for building command-line applications. It allows developers to parse arguments, generate help messages, and create commands with options and sub-commands.

What are cac's main functionalities?

Command Parsing

This feature allows you to define commands with required and optional arguments. The code sample demonstrates how to create a command 'init' that requires a project name and accepts an optional type argument.

{"const cac = require('cac');\nconst cli = cac();\ncli.command('init <name>', 'Initialize a project')\n  .option('--type <type>', 'Project type')\n  .action((name, options) => {\n    console.log(`Initializing project: ${name} with type: ${options.type}`);\n  });\ncli.help();\ncli.parse();"}

Help Generation

Automatically generates help information for the defined commands and options. The code sample shows how to define a 'build' command and an option to minify the output, with automatic help generation.

{"const cac = require('cac');\nconst cli = cac();\ncli.command('build', 'Build the project')\n  .option('--minify', 'Minify the output')\ncli.help();\ncli.parse();"}

Sub-commands

Supports the creation of sub-commands for more complex CLI structures. The code sample illustrates how to create a 'deploy' command with sub-commands for different deployment providers like AWS and Azure.

{"const cac = require('cac');\nconst cli = cac();\nconst deploy = cli.command('deploy <provider>', 'Deploy your project');\ndeploy.command('aws', 'Deploy to AWS')\n  .action(() => {\n    console.log('Deploying to AWS...');\n  });\ndeploy.command('azure', 'Deploy to Azure')\n  .action(() => {\n    console.log('Deploying to Azure...');\n  });\ncli.help();\ncli.parse();"}

Other packages similar to cac

Readme

Source

CAC NPM version NPM downloads Build Status Coveralls branch

Command And Conquer, the queen living in your command line.

Features

  • Simplified commander.js
  • Camelcased keys, eg --disable-input => disableInput
  • Automatically read package.json, parse package meta
  • Automatically print related data when --version and --help
  • Change process.title for you
  • Support co flow
  • Well tested

Install

$ npm install --save cac

Usage

Start your first CLI app in example.js:

const cac = require('cac')
const fs = require('fs-promise')

const cli = cac(`
  Usage:
    node example.js create <filename> -m [content]
    
  Options:
    -m, --message       File content
    -h, --help          Print help (You are here!)
`, {
  alias: {
    m: message,
    h: help
  }
})

cli.command('create', function* () {
  const fileName = this.input[1]
  const content = this.flags.message
  yield fs.createFile(fileName, 'hello')
  console.log('Done'!
})

cli.command('*', function () {
  console.log('Everything else')
}}

// use .parse() to bootstrap the CLI
cli.parse()

All set! Just run:

$ node example.js create lol.txt -m "just lol 😂"

API

cac([help], [options])

help

Type: string array

The help info.

options

The minimist options.

License

MIT © EGOIST

Keywords

FAQs

Last updated on 28 Apr 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc