@@ -12,7 +12,7 @@ var src = {
1212 filter : tag => {
1313 var match = / ^ v e r s i o n _ ( \d + ) $ / . exec ( tag ) ; // see: https://github.com/WebAssembly/binaryen/issues/1156
1414 return match ? {
15- tag : tag ,
15+ tag,
1616 version : match [ 1 ] + ".0.0" ,
1717 } : null ;
1818 }
@@ -23,41 +23,47 @@ var dst = {
2323 filter : tag => {
2424 var match = / ^ v ( \d + \. \d + \. \d + ) (?: \- | $ ) / . exec ( tag ) ;
2525 return match ? {
26- tag : tag ,
26+ tag,
2727 version : match [ 1 ]
2828 } : null ;
2929 }
3030} ;
3131
32- function latest ( repo ) {
33- return new Promise ( ( resolve , reject ) => {
34- repo . git . tags ( { "--sort" : "-committerdate" } , ( err , tags ) => {
35- if ( err ) return reject ( err ) ;
36- for ( var i = 0 ; i < tags . all . length ; ++ i ) {
37- var result = repo . filter ( tags . all [ i ] ) ;
38- if ( result !== null ) {
39- repo . tag = result . tag ;
40- repo . version = result . version ;
41- return resolve ( ) ;
42- } ;
32+ async function latest ( repo ) {
33+ try {
34+ const tags = await repo . git . tags ( { "--sort" : "-committerdate" } ) ;
35+ for ( let i = 0 ; i < tags . all . length ; i ++ ) {
36+ const tag = tags . all [ i ] ;
37+ const res = repo . filter ( tag ) ;
38+ if ( res !== null ) {
39+ return res ;
4340 }
44- return reject ( Error ( "no matching tags: " + tags . all . join ( ", " ) ) ) ;
45- } ) ;
46- } ) . catch ( err => {
41+ }
42+ return { version : null , tag : null } ;
43+ } catch ( err ) {
4744 console . error ( err . stack ) ;
4845 process . exit ( 1 ) ;
49- } ) ;
46+ }
5047}
5148
52- if ( process . argv [ 2 ] === "tag" ) {
53- latest ( src ) . then ( ( ) => console . log ( src . tag ) ) ;
54- } else {
55- latest ( src ) . then ( ( ) => {
56- latest ( dst ) . then ( ( ) => {
57- if ( semver . gt ( src . version , dst . version ) )
58- console . log ( src . version ) ;
59- else
60- console . log ( src . version + "-nightly." + dateFormat ( Date . UTC ( ) , "yyyymmdd" ) ) ;
61- } ) ;
62- } ) ;
49+ async function main ( ) {
50+ if ( process . argv [ 2 ] === "tag" ) {
51+ const { tag } = await latest ( src ) ;
52+ console . log ( tag ) ;
53+ return ;
54+ }
55+
56+ let { version : srcVer } = await latest ( src ) ;
57+ let { version : dstVer } = await latest ( dst ) ;
58+
59+ srcVer = semver . clean ( srcVer ) ;
60+ dstVer = semver . coerce ( dstVer ) ;
61+
62+ if ( ! dstVer || semver . gt ( srcVer , dstVer ) ) {
63+ console . log ( srcVer ) ;
64+ } else {
65+ console . log ( `${ srcVer } -nightly.${ dateFormat ( Date . UTC ( ) , "yyyymmdd" ) } ` ) ;
66+ }
6367}
68+
69+ main ( ) ;
0 commit comments