@@ -38,7 +38,7 @@ function findWorkspaceRoot() {
3838}
3939
4040// Determine which version(s) to build based on command line argument --version
41- const allowedVersions = [ "msfs2020 " , "msfs2024 " ] ;
41+ const allowedVersions = [ "2020 " , "2024 " ] ;
4242
4343const { values } = parseArgs ( {
4444 args : Bun . argv ,
@@ -91,20 +91,28 @@ if (existsSync(outDir)) rmdirSync(outDir, { recursive: true });
9191const relativeWorkdDir = process . cwd ( ) . replace ( workspaceRoot , "" ) . replaceAll ( "\\" , "/" ) ;
9292
9393// Build the selected versions
94- for ( const version of versionsToBuild ) {
95- console . info ( `[*] Building for ${ version } ` ) ;
96-
97- // Create the subfolder
98- const simDir = join ( outDir , version ) ;
99- const relativeSimDir = simDir . replace ( workspaceRoot , "" ) . replaceAll ( "\\" , "/" ) ;
100- mkdirSync ( simDir , { recursive : true } ) ;
101-
102- // Run cargo-msfs
103- await $ `docker run \
104- -v ${ workspaceRoot } :/workspace \
105- -w /workspace${ relativeWorkdDir } \
106- ${ IMAGE_NAME } \
107- bash -c "cargo-msfs build ${ version } -i ./src/wasm -o ./${ relativeSimDir } /msfs_navigation_data_interface.wasm"` . catch (
108- ( err : { exitCode ?: number } ) => process . exit ( err . exitCode ?? 1 ) ,
109- ) ;
110- }
94+ await Promise . all (
95+ versionsToBuild . map ( async simVersion => {
96+ console . info ( `[*] Building for ${ simVersion } ` ) ;
97+
98+ // Create the subfolder
99+ const simDir = join ( outDir , simVersion ) ;
100+ const relativeSimDir = simDir . replace ( workspaceRoot , "" ) . replaceAll ( "\\" , "/" ) ;
101+ mkdirSync ( simDir , { recursive : true } ) ;
102+
103+ // Run cargo-msfs
104+ await $ `docker run \
105+ --rm -t \
106+ --name msfs-${ simVersion } -wasm-builder \
107+ -v ${ workspaceRoot } :/workspace \
108+ -w /workspace${ relativeWorkdDir } \
109+ -e CARGO_TARGET_DIR=/workspace/targets/${ simVersion } \
110+ ${ IMAGE_NAME } \
111+ bash -c "cargo-msfs build msfs${ simVersion } -i ./src/wasm -o ./${ relativeSimDir } /msfs_navigation_data_interface.wasm 1> >(sed "s/^/[${ simVersion } ]/") 2> >(sed "s/^/[${ simVersion } ]/" >&2)"` . catch (
112+ ( err : { exitCode ?: number ; stderr ?: Buffer } ) => {
113+ console . error ( `[-] Error building for ${ simVersion } : ${ err . exitCode } ${ err . stderr ?. toString ( ) } ` ) ;
114+ process . exit ( 1 ) ;
115+ } ,
116+ ) ;
117+ } ) ,
118+ ) ;
0 commit comments