pretty-quick
Version:
Get Pretty Quick
48 lines • 1.84 kB
JavaScript
;
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