@oaklean/profiler-core
Version:
Part of the @oaklean suite. It provides all basic functions to work with the `.oak` file format. It allows parsing the `.oak` file format as well as tools for analyzing the measurement values. It also provides all necessary capabilities required for prec
87 lines • 5.83 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GitHelper = void 0;
const child_process_1 = __importDefault(require("child_process"));
const UnifiedPath_1 = require("../system/UnifiedPath");
class GitHelper {
static currentCommitHash() {
const command = 'git rev-parse HEAD';
const options = {
stdio: 'pipe'
};
if (process.platform === 'win32') {
options.shell = 'powershell.exe';
}
try {
return child_process_1.default.execSync(command, options)
.toString()
.trim();
// eslint-disable-next-line @typescript-eslint/no-unused-vars
}
catch (error) {
return undefined;
}
}
static currentCommitTimestamp() {
const command = 'git show -s --format=%ct HEAD';
try {
const options = {
stdio: 'pipe'
};
if (process.platform === 'win32') {
options.shell = 'powershell.exe';
}
const result = child_process_1.default.execSync(command, options).toString().trim();
return parseInt(result);
// eslint-disable-next-line @typescript-eslint/no-unused-vars
}
catch (error) {
return undefined;
}
}
static getRepositoriesRootDir() {
const command = 'git rev-parse --show-toplevel';
try {
const options = {
stdio: 'pipe'
};
if (process.platform === 'win32') {
options.shell = 'powershell.exe';
}
const result = child_process_1.default.execSync(command, options).toString().trim();
return new UnifiedPath_1.UnifiedPath(result);
// eslint-disable-next-line @typescript-eslint/no-unused-vars
}
catch (error) {
return null;
}
}
static uncommittedFiles() {
const repositoriesRootDir = GitHelper.getRepositoriesRootDir();
if (repositoriesRootDir === null) {
return null;
}
const command = 'git diff HEAD --name-only -z';
try {
const options = {
stdio: 'pipe'
};
if (process.platform === 'win32') {
options.shell = 'powershell.exe';
}
const result = child_process_1.default.execSync(command, options).toString().trim();
return result
.split('\0')
.map((filePath) => repositoriesRootDir.join(filePath));
// eslint-disable-next-line @typescript-eslint/no-unused-vars
}
catch (error) {
return null;
}
}
}
exports.GitHelper = GitHelper;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2l0SGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlci9HaXRIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0VBQTZEO0FBRTdELHVEQUFtRDtBQUluRCxNQUFhLFNBQVM7SUFDckIsTUFBTSxDQUFDLGlCQUFpQjtRQUN2QixNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQTtRQUNwQyxNQUFNLE9BQU8sR0FBb0I7WUFDaEMsS0FBSyxFQUFFLE1BQU07U0FDYixDQUFBO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUE7UUFDakMsQ0FBQztRQUNELElBQUksQ0FBQztZQUNKLE9BQU8sdUJBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztpQkFDNUMsUUFBUSxFQUFFO2lCQUNWLElBQUksRUFBb0IsQ0FBQTtZQUMxQiw2REFBNkQ7UUFDOUQsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDaEIsT0FBTyxTQUFTLENBQUE7UUFDakIsQ0FBQztJQUNGLENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCO1FBQzVCLE1BQU0sT0FBTyxHQUFHLCtCQUErQixDQUFBO1FBQy9DLElBQUksQ0FBQztZQUNKLE1BQU0sT0FBTyxHQUFvQjtnQkFDaEMsS0FBSyxFQUFFLE1BQU07YUFDYixDQUFBO1lBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNsQyxPQUFPLENBQUMsS0FBSyxHQUFHLGdCQUFnQixDQUFBO1lBQ2pDLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyx1QkFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDeEUsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDdkIsNkRBQTZEO1FBQzlELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2hCLE9BQU8sU0FBUyxDQUFBO1FBQ2pCLENBQUM7SUFDRixDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQjtRQUM1QixNQUFNLE9BQU8sR0FBRywrQkFBK0IsQ0FBQTtRQUMvQyxJQUFJLENBQUM7WUFDSixNQUFNLE9BQU8sR0FBb0I7Z0JBQ2hDLEtBQUssRUFBRSxNQUFNO2FBQ2IsQ0FBQTtZQUNELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDbEMsT0FBTyxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQTtZQUNqQyxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsdUJBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ3hFLE9BQU8sSUFBSSx5QkFBVyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQzlCLDZEQUE2RDtRQUM5RCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQTtRQUNaLENBQUM7SUFDRixDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQjtRQUN0QixNQUFNLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO1FBQzlELElBQUksbUJBQW1CLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUE7UUFDWixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsOEJBQThCLENBQUE7UUFDOUMsSUFBSSxDQUFDO1lBQ0osTUFBTSxPQUFPLEdBQW9CO2dCQUNoQyxLQUFLLEVBQUUsTUFBTTthQUNiLENBQUE7WUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUE7WUFDakMsQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLHVCQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUN4RSxPQUFPLE1BQU07aUJBQ1gsS0FBSyxDQUFDLElBQUksQ0FBQztpQkFDWCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1lBQ3ZELDZEQUE2RDtRQUM5RCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQTtRQUNaLENBQUM7SUFDRixDQUFDO0NBQ0Q7QUEvRUQsOEJBK0VDIn0=