UNPKG

git-cat-file

Version:

Pure JavaScript `git cat-file -p` for node.js

55 lines (54 loc) 1.51 kB
#!/usr/bin/env node "use strict"; /** * https://github.com/kawanet/git-cat-file */ Object.defineProperty(exports, "__esModule", { value: true }); const __1 = require(".."); const fs_1 = require("fs"); const cli_lib_1 = require("../lib/cli-lib"); const longParams = { help: true, }; const shortParams = { C: "path", h: true, // show help }; async function CLI(args) { const options = (0, cli_lib_1.parseOptions)({ long: longParams, short: shortParams, args: args, }); args = options.args; const { C } = options.short; if (C) process.chdir(C); if (await fs_1.promises.readdir(".git").catch(_ => null)) { process.chdir(".git"); } const { help } = options.long; const { h } = options.short; if (help || h) { process.stderr.write(`Usage:\n`); showHelp(); process.exit(1); } const repo = (0, __1.openLocalRepo)("."); while (args.length) { const revision = args.shift(); const obj = await repo.getObject(revision); const commit_id = obj === null || obj === void 0 ? void 0 : obj.oid; if (!commit_id) { process.stderr.write(`Invalid revision: ${revision}\n`); showHelp(); process.exit(1); } process.stdout.write(`${commit_id}\n`); } } function showHelp() { process.stderr.write(` git-rev-parse-js [-C path] <args>...\n`); } if (!module.parent) CLI(process.argv.slice(2)).catch(console.error);