UNPKG

pretty-quick

Version:
48 lines 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.stageFile = exports.getUnstagedChangedFiles = exports.getChangedFiles = exports.getSinceRevision = exports.detect = exports.name = void 0; const tslib_1 = require("tslib"); const fs_1 = tslib_1.__importDefault(require("fs")); const path_1 = tslib_1.__importDefault(require("path")); const core_1 = require("@pkgr/core"); const tinyexec_1 = require("tinyexec"); exports.name = 'hg'; const detect = (directory) => { const found = (0, core_1.findUp)(path_1.default.resolve(directory), '.hg', true); if (found && fs_1.default.statSync(found).isDirectory()) { return path_1.default.dirname(found); } }; exports.detect = detect; const runHg = (directory, args) => (0, tinyexec_1.exec)('hg', args, { nodeOptions: { cwd: directory, }, }); const getLines = (tinyexecOutput) => tinyexecOutput.stdout.split('\n'); const getSinceRevision = async (directory, { branch }) => { const revisionOutput = await runHg(directory, [ 'debugancestor', 'tip', branch || 'default', ]); const revision = revisionOutput.stdout.trim(); const hgOutput = await runHg(directory, ['id', '-i', '-r', revision]); return hgOutput.stdout.trim(); }; exports.getSinceRevision = getSinceRevision; const getChangedFiles = async (directory, revision, _staged) => [ ...getLines(await runHg(directory, [ 'status', '-n', '-a', '-m', ...(revision ? ['--rev', revision] : []), ])), ].filter(Boolean); exports.getChangedFiles = getChangedFiles; const getUnstagedChangedFiles = () => []; exports.getUnstagedChangedFiles = getUnstagedChangedFiles; const stageFile = (directory, file) => runHg(directory, ['add', file]); exports.stageFile = stageFile; //# sourceMappingURL=hg.js.map