1 | var createFile = require('broccoli-file-creator');
|
2 | var path = require('path');
|
3 | var fs = require('fs');
|
4 | var gitRepoInfo = require('git-repo-info');
|
5 | var npmGitInfo = require('npm-git-info');
|
6 |
|
7 | function 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 |
|
31 | module.exports = function() {
|
32 | return createFile('version.js', 'export default "' + calculateVersion() + '";');
|
33 | };
|