| 'use strict'; |
| |
| var fs = require('fs'); |
| var path = require('path'); |
| |
| module.exports = function () { |
| var packageVersion = require('../package.json').version; |
| var output = [packageVersion]; |
| var gitPath = path.join(__dirname,'..','.git'); |
| var headFilePath = path.join(gitPath, 'HEAD'); |
| |
| if (packageVersion.indexOf('+') > -1) { |
| try { |
| if (fs.existsSync(headFilePath)) { |
| var headFile = fs.readFileSync(headFilePath, {encoding: 'utf8'}); |
| var branchName = headFile.split('/').slice(-1)[0].trim(); |
| var refPath = headFile.split(' ')[1]; |
| var branchSHA; |
| |
| if (refPath) { |
| var branchPath = path.join(gitPath, refPath.trim()); |
| branchSHA = fs.readFileSync(branchPath); |
| } else { |
| branchSHA = branchName; |
| } |
| |
| output.push(branchSHA.slice(0,10)); |
| } |
| } catch (err) { |
| console.error(err.stack); |
| } |
| return output.join('.'); |
| } else { |
| return packageVersion; |
| } |
| }; |