@@ -23,6 +23,9 @@ module.exports = function(grunt) {
23
23
var updateModulesPackageDef = function ( content , srcPath ) {
24
24
return updatePackageDef ( content , function ( contentAsObject ) {
25
25
contentAsObject . version = localCfg . packageVersion ;
26
+ if ( localCfg . commitSHA ) {
27
+ contentAsObject . repository . url += "/commit/" + localCfg . commitSHA ;
28
+ }
26
29
} ) ;
27
30
} ;
28
31
@@ -33,6 +36,15 @@ module.exports = function(grunt) {
33
36
contentAsObject . name = "tns-samples-" + currentAppName ;
34
37
contentAsObject . description = "Nativescript " + currentAppName + " sample application" ;
35
38
contentAsObject . license = "BSD" ;
39
+ if ( ! contentAsObject . repository ) {
40
+ contentAsObject . repository = { } ;
41
+ }
42
+ if ( ! contentAsObject . repository . url ) {
43
+ contentAsObject . repository . url = localCfg . mainPackageContent . repository . url ;
44
+ }
45
+ if ( localCfg . commitSHA ) {
46
+ contentAsObject . repository . url += "/commit/" + localCfg . commitSHA ;
47
+ }
36
48
} ) ;
37
49
} ;
38
50
@@ -42,16 +54,32 @@ module.exports = function(grunt) {
42
54
contentAsObject . name = "tns-definitions" ;
43
55
contentAsObject . description = "NativeScript Module definitions" ;
44
56
contentAsObject . license = "Apache-2.0" ;
57
+ if ( localCfg . commitSHA ) {
58
+ contentAsObject . repository . url += "/commit/" + localCfg . commitSHA ;
59
+ }
45
60
} ) ;
46
- }
61
+ } ;
62
+
63
+ var getCommitSha = function ( ) {
64
+ if ( process . env . GIT_COMMIT ) {
65
+ return process . env . GIT_COMMIT ;
66
+ }
67
+ return "" ;
68
+ } ;
47
69
48
- var getPackageVersion = function ( packageFilePath ) {
49
- packageContent = grunt . file . readJSON ( packageFilePath ) ;
70
+ var assignGitSHA = function ( err , stdout , stderr , cb ) {
71
+ if ( ! localCfg . commitSHA ) {
72
+ localCfg . commitSHA = stdout . replace ( "\n" , "" ) ;
73
+ }
74
+ cb ( ) ;
75
+ } ;
76
+
77
+ var getPackageVersion = function ( ) {
50
78
var buildVersion = process . env . PACKAGE_VERSION ;
51
79
if ( ! buildVersion ) {
52
- return packageContent . version ;
80
+ return localCfg . mainPackageContent . version ;
53
81
}
54
- return packageContent . version + "-" + buildVersion ;
82
+ return localCfg . mainPackageContent . version + "-" + buildVersion ;
55
83
} ;
56
84
57
85
var processAppFile = function ( content , srcPath ) {
@@ -88,7 +116,10 @@ module.exports = function(grunt) {
88
116
"!./ui/slide-out/**/*.*"
89
117
]
90
118
} ;
119
+
120
+ localCfg . mainPackageContent = grunt . file . readJSON ( localCfg . packageJsonFilePath ) ;
91
121
localCfg . packageVersion = getPackageVersion ( localCfg . packageJsonFilePath ) ;
122
+ localCfg . commitSHA = getCommitSha ( ) ;
92
123
localCfg . defaultExcludes = [
93
124
"!" + localCfg . outDir + "/**/*.*" ,
94
125
"!./node_modules/**/*.*" ,
@@ -283,6 +314,14 @@ module.exports = function(grunt) {
283
314
return targetDirs ;
284
315
} ( )
285
316
}
317
+ } ,
318
+ shell : {
319
+ getGitSHA : {
320
+ command : "git rev-parse HEAD" ,
321
+ options : {
322
+ callback : assignGitSHA
323
+ }
324
+ }
286
325
}
287
326
} ) ;
288
327
@@ -292,6 +331,7 @@ module.exports = function(grunt) {
292
331
grunt . loadNpmTasks ( "grunt-exec" ) ;
293
332
grunt . loadNpmTasks ( "grunt-tslint" ) ;
294
333
grunt . loadNpmTasks ( "grunt-multi-dest" ) ;
334
+ grunt . loadNpmTasks ( "grunt-shell" ) ;
295
335
296
336
var cloneTasks = function ( originalTasks , taskNameSuffix )
297
337
{
@@ -403,6 +443,7 @@ module.exports = function(grunt) {
403
443
404
444
grunt . registerTask ( "default" , ( ( typeof ( grunt . option ( 'runtslint' ) ) != "undefined" && ! grunt . option ( 'runtslint' ) ) ? [ ] : [ "tslint:build" ] ) . concat ( [
405
445
"clean:build" ,
446
+ "shell:getGitSHA" ,
406
447
407
448
"collect-apps-raw-files" ,
408
449
"collect-definitions-raw-files" ,
0 commit comments