UNPKG

869 BJavaScriptView Raw
1var createFile = require('broccoli-file-creator');
2var path = require('path');
3var fs = require('fs');
4var gitRepoInfo = require('git-repo-info');
5var npmGitInfo = require('npm-git-info');
6
7function calculateVersion() {
8 var gitPath = path.join(__dirname, '..', '.git');
9 var pkg = require('../package.json');
10 var packageVersion = pkg.version;
11 var suffix = '';
12
13 var info;
14 if (fs.existsSync(gitPath)) {
15 info = gitRepoInfo(gitPath);
16 if (info.tag) {
17 return info.tag.replace(/^v/, '');
18 }
19
20 suffix = '+' + info.sha.slice(0, 10);
21 } else {
22 info = npmGitInfo(pkg);
23 if (info.isInstalledAsNpmPackage() && !info.hasVersionInRef()) {
24 suffix = '+' + info.abbreviatedSha;
25 }
26 }
27
28 return packageVersion + suffix;
29}
30
31module.exports = function() {
32 return createFile('version.js', 'export default "' + calculateVersion() + '";');
33};