@@ -39,6 +39,7 @@ const fs = require('fs')
3939 , `${ githubContentUrl } /src/node.h`
4040 ]
4141 , ltsVersionUrl = `${ githubContentUrl } /src/node_version.h`
42+ , isSecurityUrl = `${ githubContentUrl } /src/node_version.h`
4243 , githubOptions = { headers : {
4344 'accept' : 'text/plain,application/vnd.github.v3.raw'
4445 } }
@@ -338,6 +339,26 @@ function fetchLtsVersion (gitref, callback) {
338339 } )
339340}
340341
342+ function fetchIsSecurity ( gitref , callback ) {
343+ var security = cacheGet ( gitref , 'security' )
344+
345+ if ( security || security === false )
346+ return setImmediate ( callback . bind ( null , null , security ) )
347+
348+ fetch ( isSecurityUrl , gitref , function ( err , rawData ) {
349+ if ( err )
350+ return callback ( err )
351+
352+ var m = rawData . match ( / ^ # d e f i n e N O D E _ V E R S I O N _ I S _ S E C U R I T Y _ R E L E A S E 1 $ / m)
353+ if ( m ) {
354+ security = true
355+ } else
356+ security = false
357+
358+ cachePut ( gitref , 'security' , security )
359+ callback ( null , security )
360+ } )
361+ }
341362
342363function dirDate ( dir , callback ) {
343364 fs . readdir ( path . join ( argv . dist , dir ) , function ( err , files ) {
@@ -392,6 +413,7 @@ function inspectDir (dir, callback) {
392413 , zlibVersion
393414 , modVersion
394415 , ltsVersion
416+ , isSecurity
395417 , date
396418
397419 if ( ! gitref ) {
@@ -412,7 +434,7 @@ function inspectDir (dir, callback) {
412434
413435 files = _files
414436
415- var done = after ( 8 , afterAll )
437+ var done = after ( 9 , afterAll )
416438
417439 dirDate ( dir , function ( err , _date ) {
418440 if ( err )
@@ -484,6 +506,15 @@ function inspectDir (dir, callback) {
484506 ltsVersion = version
485507 done ( )
486508 } )
509+
510+ fetchIsSecurity ( gitref , function ( err , security ) {
511+ if ( err ) {
512+ console . error ( err )
513+ console . error ( '(ignoring error fetching security for %s)' , gitref )
514+ }
515+ isSecurity = security
516+ done ( )
517+ } )
487518 } )
488519
489520 function afterAll ( err ) {
@@ -504,6 +535,7 @@ function inspectDir (dir, callback) {
504535 , openssl : sslVersion
505536 , modules : modVersion
506537 , lts : ltsVersion
538+ , security : isSecurity
507539 } )
508540 }
509541}
@@ -533,7 +565,7 @@ function afterMap (err, dirs) {
533565 }
534566
535567 jsonOut . write ( '[\n' )
536- tabWrite ( 'version' , 'date' , 'files' , 'npm' , 'v8' , 'uv' , 'zlib' , 'openssl' , 'modules' , 'lts' )
568+ tabWrite ( 'version' , 'date' , 'files' , 'npm' , 'v8' , 'uv' , 'zlib' , 'openssl' , 'modules' , 'lts' , 'security' )
537569
538570 dirs . forEach ( function ( dir , i ) {
539571 jsonOut . write ( JSON . stringify ( dir ) + ( i != dirs . length - 1 ? ',\n' : '\n' ) )
@@ -548,6 +580,7 @@ function afterMap (err, dirs) {
548580 , dir . openssl
549581 , dir . modules
550582 , dir . lts
583+ , dir . security
551584 )
552585 } )
553586
0 commit comments