1 | const { exec } = require('child_process')
|
2 |
|
3 | const execPromise = (cmd, opts) => new Promise((resolve, reject) => {
|
4 | exec(cmd, opts, (err, stdout, stderr) => {
|
5 | if (err) return reject(err)
|
6 | return resolve({ stdout, stderr })
|
7 | })
|
8 | })
|
9 |
|
10 | module.exports = async (cwd) => {
|
11 | try {
|
12 | const origin = (await execPromise('git config --get remote.origin.url', { cwd })).stdout.trim()
|
13 | const branch = (await execPromise('git rev-parse --abbrev-ref HEAD'), { cwd }).stdout.trim()
|
14 | const commit = (await execPromise('git rev-parse HEAD'), { cwd }).stdout.trim()
|
15 |
|
16 | return {
|
17 | url: origin,
|
18 | branch,
|
19 | commit
|
20 | }
|
21 | } catch (e) {
|
22 | return null
|
23 | }
|
24 | }
|