tools/vscode_sql_extraction/copy_binaries.js (33 lines of code) (raw):

const {spawn} = require('child_process'); const fs = require('fs'); const path = require('path'); const rimraf = require('rimraf'); const sqlExtractionProjectDir = '../sql_extraction/'; const destinationDir = './resources/sql_extraction'; // launch gradle build let jarBuild; if (process.platform === 'win32') { const batchScript = path.resolve( path.join(sqlExtractionProjectDir, 'gradlew.bat') ); jarBuild = spawn(batchScript, ['installDist'], { cwd: sqlExtractionProjectDir, }); } else { jarBuild = spawn('sh', ['gradlew', 'installDist'], { cwd: sqlExtractionProjectDir, }); } jarBuild.stdout.pipe(process.stdout); jarBuild.stderr.pipe(process.stderr); jarBuild.on('close', code => { if (code === 0) { // delete previous copy if (fs.existsSync(destinationDir)) { rimraf.sync(destinationDir); } // move binaries to resources folder fs.renameSync( path.join(sqlExtractionProjectDir, 'build/install/sql_extraction'), destinationDir ); console.log('\nSQL Extraction binaries updated successfully!'); } });