AFFiNE/apps/web/scripts/git-info.mjs

37 lines
762 B
JavaScript
Raw Normal View History

2022-11-03 13:50:27 +03:00
// @ts-check
2023-02-19 11:40:39 +03:00
import { execSync } from 'node:child_process';
2022-11-03 13:50:27 +03:00
const hasGit = () => {
try {
execSync('git --version');
} catch {
return false;
}
return true;
};
const getTopLevel = () => execSync('git rev-parse --show-toplevel');
const isRepository = () => {
try {
getTopLevel();
} catch {
return false;
}
return true;
};
const getGitVersion = () => {
if (!hasGit() || !isRepository()) {
console.error(
"You haven't installed git or it does not exist in your PATH."
);
return null;
}
2023-03-30 01:56:44 +03:00
return execSync('git describe --always --dirty').toString().trimEnd();
2022-11-03 13:50:27 +03:00
};
const getCommitHash = (rev = 'HEAD') =>
2023-03-30 01:56:44 +03:00
execSync(`git rev-parse --short ${rev}`).toString().trimEnd();
2022-11-03 13:50:27 +03:00
2023-02-19 11:40:39 +03:00
export { getCommitHash, getGitVersion };