UNPKG

@altano/repository-tools

Version:

Misc tools for dealing with repositories of multiple version control systems (git, svn, etc)

55 lines (53 loc) 1.28 kB
import { execFileAsync, execFileSync } from "./exec.js"; //#region src/repositoryCommand.ts const environment = { git: { GIT_TERMINAL_PROMPT: "0", GIT_CONFIG_GLOBAL: "/dev/null", GIT_CONFIG_SYSTEM: "/dev/null", GIT_COMMITTER_NAME: "alan", GIT_COMMITTER_EMAIL: "alan@example.com", GIT_AUTHOR_NAME: "alan", GIT_AUTHOR_EMAIL: "alan@example.com" }, hg: { HGRCPATH: "/dev/null", HGUSER: "alan", EMAIL: "alan@example.com" }, sl: { HGRCPATH: "/dev/null", HGUSER: "alan", EMAIL: "alan@example.com" }, svn: {}, svnadmin: {}, svnrdump: {} }; async function repositoryExec(cwd, command, args) { return execFileAsync(command, args, { cwd, encoding: "utf8", env: { ...process.env, ...environment[command] } }).then(({ stdout, stderr }) => { return stderr ? Promise.reject(new Error(stderr.trim())) : stdout.trim(); }); } function repositoryExecSync(cwd, command, args) { const result = execFileSync(command, args, { cwd, encoding: "utf8", env: { ...process.env, ...environment[command] } }).trim(); return result; } const createExecForDirectory = (cwd) => repositoryExec.bind(null, cwd); //#endregion export { createExecForDirectory, repositoryExec, repositoryExecSync }; //# sourceMappingURL=repositoryCommand.js.map