2020
2121// MODULES //
2222
23- var exec = require ( 'child_process' ) . execSync ;
23+ var exec = require ( 'child_process' ) . execSync ; // eslint-disable-line no-sync
2424var logger = require ( 'debug' ) ;
2525var trim = require ( '@stdlib/string/trim' ) ;
26+ var extname = require ( '@stdlib/utils/extname' ) ;
2627
2728
2829// VARIABLES //
2930
3031var debug = logger ( 'remark-img-equations-src-urls:git' ) ;
3132
3233// Regular expression to extract a repository slug:
33- var RE = / (?: .+ g i t h u b \. c o m ) (?: \/ | : ) ( .+ ) (?: \. (?: . + ) | $ ) / ;
34+ var RE = / (?: .+ g i t h u b \. c o m ) (?: \/ | : ) ( .+ ) / ;
3435
3536
3637// MAIN //
@@ -42,16 +43,16 @@ var RE = /(?:.+github\.com)(?:\/|:)(.+)(?:\.(?:.+)|$)/;
4243* @returns {Object } repository info
4344*/
4445function git ( ) {
46+ var branch ;
4547 var origin ;
46- var hslug ;
47- var rslug ;
48+ var slug ;
4849 var opts ;
49- var hash ;
5050 var dir ;
5151 var cmd ;
5252 var out ;
53+ var ext ;
5354
54- // Get the local git repository path and remove any newline characters :
55+ // Get the local git repository path:
5556 dir = exec ( 'git rev-parse --show-toplevel' ) ;
5657 dir = trim ( dir . toString ( ) ) ;
5758 dir = dir . match ( / ( .+ ) / ) [ 1 ] ;
@@ -61,37 +62,36 @@ function git() {
6162 'cwd' : dir
6263 } ;
6364
65+ // Get the current branch:
66+ cmd = 'git rev-parse --abbrev-ref HEAD' ;
67+ out = exec ( cmd , opts ) ;
68+ branch = trim ( out . toString ( ) ) ;
69+ debug ( 'Branch: %s' , branch ) ;
70+
6471 // Get the remote origin:
6572 cmd = 'git config --get remote.origin.url' ;
6673 out = exec ( cmd , opts ) ;
6774 origin = trim ( out . toString ( ) ) ;
75+ ext = extname ( origin ) ; // e.g., https://github.com/stdlib-js/stdlib.git
76+ if ( ext ) {
77+ origin = origin . slice ( 0 , origin . length - ext . length ) ; // e.g., https://github.com/stdlib-js/stdlib
78+ }
6879 debug ( 'Remote origin: %s' , origin ) ;
6980
7081 // Extract the repository slug:
71- rslug = origin . match ( RE ) [ 1 ] ;
72- debug ( 'Repository slug: %s' , rslug ) ;
73-
74- // Get the current Git hash and remove any newline characters:
75- cmd = 'git rev-parse HEAD' ;
76- out = exec ( cmd , opts ) ;
77- out = trim ( out . toString ( ) ) ;
78- hash = out . match ( / ( .+ ) / ) [ 1 ] ;
79- debug ( 'Current hash: %s' , hash ) ;
80-
81- hslug = rslug + '/' + hash ;
82- debug ( 'Hash slug: %s' , hslug ) ;
82+ slug = origin . match ( RE ) [ 1 ] ;
83+ debug ( 'Repository slug: %s' , slug ) ;
8384
8485 out = {
8586 'dir' : dir ,
86- 'slug' : rslug ,
87- 'hash' : hash ,
87+ 'slug' : slug ,
8888 'origin' : origin ,
89- 'hslug ' : hslug
89+ 'branch ' : branch
9090 } ;
9191 return out ;
9292}
9393
9494
9595// EXPORTS //
9696
97- module . exports = git ( ) ;
97+ module . exports = git ;
0 commit comments