UNPKG

dependent-path-update

Version:
70 lines (59 loc) 1.88 kB
#!/usr/bin/env node "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _fs = _interopRequireDefault(require("mz/fs")); var _path = _interopRequireDefault(require("path")); var _argly = _interopRequireDefault(require("argly")); var _ = _interopRequireDefault(require("./")); const options = _argly.default.createParser({ "*": { type: "string[]", description: "The files to rename" }, "--help -h": { type: "boolean", description: "Show this help message" }, "--include -i": { type: "string[]", description: "File patterns to update" }, "--exclude -e": { type: "string[]", description: "File patterns to ignore" }, "--project-dir -d": { type: "string", description: "Directory in which dependents will be updated (defaults to CWD)" } }).usage("Usage: $0 <from> <to> [options]").example("Move a file and update dependents", "$0 ./file-a.js ./files/a.js").validate(function (result) { if (result.help) { this.printUsage(); process.exit(0); } if (!result["*"] || result["*"].length !== 4) { this.printUsage(); process.exit(1); } const [,, from, to] = result["*"]; delete result["*"]; result.projectDir = result.projectDir || process.cwd(); result.from = _path.default.resolve(result.projectDir, from); result.to = _path.default.resolve(result.projectDir, to); }).onError(function (err) { this.printUsage(); if (err) { console.log(); console.log(err); } process.exit(1); }).parse(process.argv); (async () => { try { const output = await (0, _.default)(options); await Promise.all(Object.entries(output).map(([file, source]) => _fs.default.writeFile(file, source, "utf-8")).concat(_fs.default.rename(options.from, options.to))); } catch (err) { console.error(err); process.exit(1); } })();