Lab 15: Capstone — CLI Tool
Overview
Step 1: Project Setup
mkdir /app/mycli && cd /app/mycli
npm init -y
npm install minimist chalk ora
chmod +x index.jsStep 2: Argument Parsing
// lib/args.js
const minimist = require('minimist');
const COMMANDS = ['fetch', 'file', 'config', 'help'];
function parseArgs(argv = process.argv.slice(2)) {
const args = minimist(argv, {
string: ['output', 'format', 'config'],
boolean: ['verbose', 'help', 'version', 'json'],
alias: {
h: 'help',
v: 'verbose',
o: 'output',
f: 'format',
c: 'config',
V: 'version'
},
default: {
format: 'table',
config: '~/.myclirc.json'
}
});
const command = args._[0];
const positional = args._.slice(1);
return { command, positional, flags: args };
}
module.exports = { parseArgs, COMMANDS };Step 3: Colored Output
Step 4: File Operations
Step 5: HTTP Requests
Step 6: Config Management
Step 7: Progress Indicator
Step 8: Capstone — Main CLI Entry Point
Summary
Component
Library/Module
Purpose
Key CLI Best Practices
Last updated
