configorama 0.4.4 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/resolvers/valueFromGit.js +75 -23
- package/package.json +1 -1
|
@@ -22,7 +22,7 @@ async function _getValueFromGit(variableString) {
|
|
|
22
22
|
const variable = variableString.split(`${GIT_PREFIX}:`)[1]
|
|
23
23
|
let value = null
|
|
24
24
|
// console.log('variableStringvariableString', variableString)
|
|
25
|
-
if (variable.match(/^remote/)) {
|
|
25
|
+
if (variable.match(/^remote/i)) {
|
|
26
26
|
const hasParams = functionRegex.exec(variableString)
|
|
27
27
|
const remoteName = (hasParams && hasParams[2]) ? formatFunctionArgs(hasParams[2]) : 'origin'
|
|
28
28
|
value = await getGitRemote(remoteName)
|
|
@@ -30,22 +30,42 @@ async function _getValueFromGit(variableString) {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
const verifyMsg = `Verify the cwd has a .git directory\n`
|
|
33
|
+
const normalizedVar = (variable || '').toLowerCase()
|
|
33
34
|
|
|
34
|
-
switch (
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
35
|
+
switch (normalizedVar) {
|
|
36
|
+
// Repo owner/name
|
|
37
|
+
case 'repo':
|
|
38
|
+
case 'repository':
|
|
39
|
+
case 'reposlug':
|
|
40
|
+
case 'repo-slug':
|
|
41
|
+
const urla = await getGitRemote()
|
|
42
|
+
const parseda = GitUrlParse(urla)
|
|
43
|
+
value = parseda.full_name
|
|
44
|
+
break;
|
|
45
|
+
// Repo name
|
|
46
|
+
case 'name':
|
|
47
|
+
case 'reponame': // repoName
|
|
48
|
+
case 'repo-name':
|
|
49
|
+
value = await _exec('basename `git rev-parse --show-toplevel`')
|
|
50
|
+
break;
|
|
51
|
+
// Repo org or owner
|
|
52
|
+
case 'org':
|
|
53
|
+
case 'owner':
|
|
54
|
+
case 'organization':
|
|
55
|
+
case 'repoowner': // repoOwner
|
|
56
|
+
case 'repo-owner':
|
|
57
|
+
const url = await getGitRemote()
|
|
58
|
+
const parsed = GitUrlParse(url)
|
|
59
|
+
value = parsed.organization || parsed.owner
|
|
60
|
+
break;
|
|
61
|
+
// Repo url
|
|
62
|
+
case 'url':
|
|
63
|
+
case 'repourl': // repoUrl
|
|
64
|
+
case 'repo-url':
|
|
65
|
+
value = await getGitRemote()
|
|
66
|
+
break;
|
|
67
|
+
// Current commit sha
|
|
68
|
+
case 'sha':
|
|
49
69
|
case 'sha1':
|
|
50
70
|
try {
|
|
51
71
|
value = await _exec('git rev-parse --short HEAD')
|
|
@@ -53,38 +73,70 @@ async function _getValueFromGit(variableString) {
|
|
|
53
73
|
throw new Error(`\${git:sha1} error ${verifyMsg}`)
|
|
54
74
|
}
|
|
55
75
|
break
|
|
76
|
+
// Current commit full sha
|
|
56
77
|
case 'commit':
|
|
78
|
+
case 'commitsha':
|
|
79
|
+
case 'commit-sha':
|
|
80
|
+
case 'commithash':
|
|
81
|
+
case 'commit-hash':
|
|
57
82
|
try {
|
|
58
83
|
value = await _exec('git rev-parse HEAD')
|
|
59
84
|
} catch (err) {
|
|
60
85
|
throw new Error(`\${git:commit} error. ${verifyMsg}`)
|
|
61
86
|
}
|
|
62
87
|
break
|
|
88
|
+
// Branches
|
|
63
89
|
case 'branch':
|
|
90
|
+
case 'branchname':
|
|
91
|
+
case 'branch-name':
|
|
92
|
+
case 'currentbranch': // currentBranch
|
|
93
|
+
case 'current-branch':
|
|
64
94
|
try {
|
|
65
95
|
value = await _exec('git rev-parse --abbrev-ref HEAD')
|
|
66
96
|
} catch (err) {
|
|
67
97
|
throw new Error(`\${git:branch} error. ${verifyMsg}`)
|
|
68
98
|
}
|
|
69
99
|
break
|
|
100
|
+
// Commit msg
|
|
101
|
+
case 'msg':
|
|
70
102
|
case 'message':
|
|
103
|
+
case 'commitmessage': // commitMessage
|
|
104
|
+
case 'commit-message':
|
|
105
|
+
case 'commitmsg': // commitMsg
|
|
106
|
+
case 'commit-msg':
|
|
71
107
|
try {
|
|
72
108
|
value = await _exec('git log -1 --pretty=%B')
|
|
73
109
|
} catch (err) {
|
|
74
110
|
throw new Error(`\${git:message} error. ${verifyMsg}`)
|
|
75
111
|
}
|
|
76
|
-
break
|
|
112
|
+
break;
|
|
113
|
+
// Git tags
|
|
114
|
+
case 'tag':
|
|
115
|
+
case 'describe':
|
|
116
|
+
try {
|
|
117
|
+
value = await _exec('git describe --always')
|
|
118
|
+
} catch (err) {
|
|
119
|
+
throw new Error(`\${git:describeLight} error. ${verifyMsg}`)
|
|
120
|
+
}
|
|
121
|
+
break;
|
|
122
|
+
// Git tags
|
|
123
|
+
case 'describeLight':
|
|
124
|
+
case 'describelight':
|
|
125
|
+
case 'describe-light':
|
|
126
|
+
try {
|
|
127
|
+
value = await _exec('git describe --always --tags')
|
|
128
|
+
} catch (err) {
|
|
129
|
+
throw new Error(`\${git:describeLight} error. ${verifyMsg}`)
|
|
130
|
+
}
|
|
131
|
+
break;
|
|
132
|
+
// Is branch dirty
|
|
77
133
|
case 'isDirty':
|
|
134
|
+
case 'isdirty':
|
|
135
|
+
case 'is-dirty':
|
|
78
136
|
const writeTree = await _exec('git write-tree')
|
|
79
137
|
const changes = await _exec(`git diff-index ${writeTree} --`)
|
|
80
138
|
value = `${changes.length > 0}`
|
|
81
139
|
break
|
|
82
|
-
case 'repository':
|
|
83
|
-
value = await _exec('basename `git rev-parse --show-toplevel`')
|
|
84
|
-
break
|
|
85
|
-
case 'url': case 'repoUrl':
|
|
86
|
-
value = await getGitRemote()
|
|
87
|
-
break
|
|
88
140
|
default:
|
|
89
141
|
throw new Error(`Git variable ${variable} is unknown. Candidates are 'describe', 'describeLight', 'sha1', 'commit', 'branch', 'message', 'repository'`)
|
|
90
142
|
}
|