UNPKG

too

Version:

Combine multiple processes' Stdout/Stderr/SIGINT to keep them all foreground

35 lines (34 loc) 1.15 kB
#! /usr/bin/env node import { readFileSync } from "fs"; import { dirname, resolve } from "path"; import { fileURLToPath } from "url"; import { Args } from "../lib/args.js"; import { DefaultLogger } from "../lib/logger.js"; import { specs } from "../lib/specs.js"; import { Too } from "../lib/too.js"; const __main__ = async () => { const args = new Args(specs); const rest = args.parse(process.argv); if (args.get("version").length > 0 || rest[0] == "version") { const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const pkgpath = resolve(__dirname, "../../package.json"); const { version } = JSON.parse(readFileSync(pkgpath, "utf8")); console.log(`(too) version ${version}`); process.exit(0); } let too; if (rest.length > 0) { too = await Too.parse(rest[0]); } else if (args.get("cmd").length > 0) { too = await Too.direct(args.get("cmd")); } else { too = await Too.interactive(); } too.logger = new DefaultLogger(); const code = await too.run(); process.exit(code); }; __main__();