/
gitFlowSettings.js
32 lines (32 loc) · 1.12 KB
/
gitFlowSettings.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
"use strict";
/**
* Generate Release
* Written by Kevin Gravier <kevin@mrkmg.com>
* MIT License 2018
*/
Object.defineProperty(exports, "__esModule", { value: true });
var fs_1 = require("fs");
var iniparser_1 = require("iniparser");
var BRANCH_CONFIG = 'gitflow "branch"';
var PREFIX_CONFIG = 'gitflow "prefix"';
function gitFlowSettings(projectPath) {
var file = projectPath + "/.git/config";
if (!fs_1.existsSync(file)) {
throw new Error("Git Config File is missing: " + file);
}
var iniData = iniparser_1.parseSync(file);
if (!iniData) {
throw new Error("Failed to parse init file");
}
if (!iniData[BRANCH_CONFIG] || !iniData[BRANCH_CONFIG].master || !iniData[BRANCH_CONFIG].develop) {
throw new Error("Git config missing git-flow branch configuration");
}
if (!iniData[PREFIX_CONFIG] || iniData[PREFIX_CONFIG].versiontag === undefined) {
throw new Error("Git config missing git-flow prefix configuration");
}
return {
develop: iniData[BRANCH_CONFIG].develop,
master: iniData[BRANCH_CONFIG].master,
};
}
exports.gitFlowSettings = gitFlowSettings;