11#!/usr/bin/env node
22
3- const fs = require ( 'fs' ) ;
4- const path = require ( 'path' ) ;
3+ import { readFileSync } from 'node:fs' ;
4+ import { basename , join } from 'node:path' ;
5+ import { execSync } from 'node:child_process' ;
56
67// Grab last git commit
78function getCommitHasForPath ( path ) {
8- return require ( 'child_process' )
9- . execSync ( `git log -1 --format=%H HEAD -- ${ path } ` )
10- . toString ( )
11- . trim ( ) ;
9+ return execSync ( `git log -1 --format=%H HEAD -- ${ path } ` ) . toString ( ) . trim ( ) ;
1210}
1311
14- const stackbrewPath = path . basename ( __filename ) ;
12+ const stackbrewPath = basename ( import . meta . filename ) ;
1513
1614// Header
1715let stackbrew = `# this file is generated via https://github.com/nodejs/docker-node/blob/${ getCommitHasForPath ( stackbrewPath ) } /${ stackbrewPath }
@@ -21,8 +19,7 @@ GitRepo: https://github.com/nodejs/docker-node.git
2119GitFetch: refs/heads/main\n` ;
2220
2321// Loop versions
24-
25- const config = require ( './versions.json' ) ;
22+ const config = JSON . parse ( readFileSync ( 'versions.json' ) ) ;
2623
2724const versions = Object . keys ( config ) . reverse ( ) ;
2825
@@ -45,13 +42,13 @@ for (const version of versions) {
4542 let defaultDebian = config [ version ] [ 'debian-default' ] ;
4643 let variants = config [ version ] . variants ;
4744 for ( const variant in variants ) {
48- let dockerfilePath = path . join ( version , variant , 'Dockerfile' ) ;
45+ let dockerfilePath = join ( version , variant , 'Dockerfile' ) ;
4946 let isAlpine = alpineRE . test ( variant ) ;
5047 let isSlim = slimRE . test ( variant ) ;
5148 let isDefaultSlim = new RegExp ( `${ defaultDebian } -slim` ) . test ( variant ) ;
5249
5350 // Get full version from the Dockerfile
54- let dockerfile = fs . readFileSync ( dockerfilePath , 'utf-8' ) ;
51+ let dockerfile = readFileSync ( dockerfilePath , 'utf-8' ) ;
5552 let fullVersion = dockerfile . match (
5653 / E N V N O D E _ V E R S I O N = (?< major > \d + ) \. (?< minor > \d + ) \. (?< patch > \d + ) / ,
5754 ) ;
@@ -157,14 +154,14 @@ for (const version of versions) {
157154 }
158155 }
159156
160- // remove duplicates
161- tags = tags . filter ( ( x , i , a ) => a . indexOf ( x ) == i ) ;
162- tags = tags . sort ( ) ;
163- let directory = ` ${ version } / ${ variant } ` ;
164- stackbrew += `\nTags: ${ tags . join ( ', ' ) } \n` ;
165- stackbrew += ` Architectures: ${ config [ version ] . variants [ variant ] . join ( ', ' ) } \n` ;
166- stackbrew += ` GitCommit: ${ getCommitHasForPath ( directory ) } \n` ;
167- stackbrew += ` Directory: ${ directory } \n`;
157+ stackbrew += `
158+ Tags: ${ tags
159+ . filter ( ( x , i , a ) => a . indexOf ( x ) == i )
160+ . sort ( )
161+ . join ( ', ' ) }
162+ Architectures: ${ config [ version ] . variants [ variant ] . join ( ', ' ) }
163+ GitCommit: ${ getCommitHasForPath ( ` ${ version } / ${ variant } ` ) }
164+ Directory: ${ ` ${ version } / ${ variant } ` } \n` ;
168165 }
169166}
170167
0 commit comments