UNPKG

killit

Version:

Simple, fast port killer with zero dependencies

103 lines (99 loc) 3.1 kB
#!/usr/bin/env node import { killPort, killPorts } from './index.js'; function parseArgs() { const args = process.argv.slice(2); const options = { ports: [], protocol: 'tcp', verbose: false, help: false, }; for (let i = 0; i < args.length; i++) { const arg = args[i]; switch (arg) { case '-h': case '--help': options.help = true; break; case '-p': case '--port': if (args[i + 1]) { options.ports.push(...args[i + 1].split(',')); i++; } break; case '-m': case '--method': case '--protocol': if (args[i + 1] && (args[i + 1] === 'tcp' || args[i + 1] === 'udp')) { options.protocol = args[i + 1]; i++; } break; case '-v': case '--verbose': options.verbose = true; break; default: if (!arg.startsWith('-') && /^\d+$/.test(arg)) { options.ports.push(arg); } break; } } return options; } function showHelp() { console.log(` killit - Kill processes running on specified ports Usage: killit <port> [port2] [port3] ... killit --port <port> killit --port <port1>,<port2>,<port3> Options: -p, --port <port> Port number(s) to kill (comma-separated) -m, --method <protocol> Protocol: tcp or udp (default: tcp) -v, --verbose Show detailed output -h, --help Show this help message Examples: killit 3000 Kill process on port 3000 killit 3000 8080 5000 Kill processes on multiple ports killit --port 3000 Kill process on port 3000 killit --port 3000,8080 Kill processes on ports 3000 and 8080 killit 9000 --method udp Kill UDP process on port 9000 killit 3000 --verbose Kill with verbose output `); } async function main() { const options = parseArgs(); if (options.help) { showHelp(); process.exit(0); } if (options.ports.length === 0) { console.error('Error: No port specified\n'); showHelp(); process.exit(1); } try { if (options.ports.length === 1) { await killPort(options.ports[0], { protocol: options.protocol, verbose: options.verbose, }); console.log(`✓ Killed process on port ${options.ports[0]}`); } else { await killPorts(options.ports, { protocol: options.protocol, verbose: options.verbose, }); console.log(`✓ Killed processes on ports: ${options.ports.join(', ')}`); } } catch (error) { console.error(`✗ Error: ${error instanceof Error ? error.message : String(error)}`); process.exit(1); } } main();