1- /*---------------------------------------------------------------------------------------------
2- * Copyright (c) Microsoft Corporation. All rights reserved.
3- * Licensed under the MIT License. See License.txt in the project root for license information.
4- *--------------------------------------------------------------------------------------------*/
5-
6- var path = require ( 'path' ) ;
7- var fs = require ( 'fs' ) ;
8-
9- exports . getVersion = function ( repo ) {
10- var git = path . join ( repo , '.git' ) ;
11- var headPath = path . join ( git , 'HEAD' ) ;
12- var head ;
13-
14- try {
15- head = fs . readFileSync ( headPath , 'utf8' ) . trim ( ) ;
16- } catch ( e ) {
17- return void 0 ;
18- }
19-
20- if ( / ^ [ 0 - 9 a - f ] { 40 } $ / i. test ( head ) ) {
21- return head ;
22- }
23-
24- var refMatch = / ^ r e f : ( .* ) $ / . exec ( head ) ;
25-
26- if ( ! refMatch ) {
27- return void 0 ;
28- }
29-
30- var ref = refMatch [ 1 ] ;
31- var refPath = path . join ( git , ref ) ;
32-
33- try {
34- return fs . readFileSync ( refPath , 'utf8' ) . trim ( ) ;
35- } catch ( e ) {
36- // noop
37- }
38-
39- var packedRefsPath = path . join ( git , 'packed-refs' ) ;
40- var refsRaw ;
41-
42- try {
43- refsRaw = fs . readFileSync ( packedRefsPath , 'utf8' ) . trim ( ) ;
44- } catch ( e ) {
45- return void 0 ;
46- }
47-
48- var refsRegex = / ^ ( [ 0 - 9 a - f ] { 40 } ) \s + ( .+ ) $ / gm;
49- var refsMatch ;
50- var refs = { } ;
51-
52- while ( refsMatch = refsRegex . exec ( refsRaw ) ) {
53- refs [ refsMatch [ 2 ] ] = refsMatch [ 1 ] ;
54- }
55-
56- return refs [ ref ] ;
57- } ;
1+ /*---------------------------------------------------------------------------------------------
2+ * Copyright (c) Microsoft Corporation. All rights reserved.
3+ * Licensed under the MIT License. See License.txt in the project root for license information.
4+ *--------------------------------------------------------------------------------------------*/
5+ "use strict" ;
6+ var path = require ( 'path' ) ;
7+ var fs = require ( 'fs' ) ;
8+ /**
9+ * Returns the sha1 commit version of a repository or undefined in case of failure.
10+ */
11+ function getVersion ( repo ) {
12+ var git = path . join ( repo , '.git' ) ;
13+ var headPath = path . join ( git , 'HEAD' ) ;
14+ var head ;
15+ try {
16+ head = fs . readFileSync ( headPath , 'utf8' ) . trim ( ) ;
17+ }
18+ catch ( e ) {
19+ return void 0 ;
20+ }
21+ if ( / ^ [ 0 - 9 a - f ] { 40 } $ / i. test ( head ) ) {
22+ return head ;
23+ }
24+ var refMatch = / ^ r e f : ( .* ) $ / . exec ( head ) ;
25+ if ( ! refMatch ) {
26+ return void 0 ;
27+ }
28+ var ref = refMatch [ 1 ] ;
29+ var refPath = path . join ( git , ref ) ;
30+ try {
31+ return fs . readFileSync ( refPath , 'utf8' ) . trim ( ) ;
32+ }
33+ catch ( e ) {
34+ }
35+ var packedRefsPath = path . join ( git , 'packed-refs' ) ;
36+ var refsRaw ;
37+ try {
38+ refsRaw = fs . readFileSync ( packedRefsPath , 'utf8' ) . trim ( ) ;
39+ }
40+ catch ( e ) {
41+ return void 0 ;
42+ }
43+ var refsRegex = / ^ ( [ 0 - 9 a - f ] { 40 } ) \s + ( .+ ) $ / gm;
44+ var refsMatch ;
45+ var refs = { } ;
46+ while ( refsMatch = refsRegex . exec ( refsRaw ) ) {
47+ refs [ refsMatch [ 2 ] ] = refsMatch [ 1 ] ;
48+ }
49+ return refs [ ref ] ;
50+ }
51+ exports . getVersion = getVersion ;
0 commit comments