From df43aef357a2f7b4d382838491184fd18e4cbd50 Mon Sep 17 00:00:00 2001 From: jweg <jweg@informatik.uni-kiel.de> Date: Mon, 10 Jul 2017 17:28:50 +0200 Subject: [PATCH] writes backend without addons to zip, backend and frontend together still not working --- app.js | 163 ++++++++++++++++++++++++++++++++------------------------- 1 file changed, 91 insertions(+), 72 deletions(-) diff --git a/app.js b/app.js index 1c532cf..485a3e4 100644 --- a/app.js +++ b/app.js @@ -17,12 +17,12 @@ const downloadFiles = require('./downloadFiles.json'); const downloadNames = Object.keys(downloadFiles); - var app = express(); + var app = express(); - app.use(bodyParser.urlencoded({ - extended: true - })); - app.use(bodyParser.json()); + app.use(bodyParser.urlencoded({ + extended: true + })); + app.use(bodyParser.json()); //set handlebars as view engine app.engine('.hbs', exphbs({extname: '.hbs'})); @@ -87,6 +87,7 @@ function backendClean(){ + console.log('in backendClean'); return new Promise((resolve,reject)=>{ exec('cd explorviz-ui-backend/plugins/net/explorviz/ && rm -rf plugins/*', (error, stdout,stderr)=>{ if (error) { @@ -104,7 +105,7 @@ } function backendPull(){ - + console.log('in backendPull'); return new Promise((resolve, reject)=> { exec('cd ' + fileName + ' git pull ', (error, stdout, stderr) => { @@ -124,7 +125,9 @@ } + function backendInstallAddons(){ + console.log('in backendInstallAddons'); return new Promise((resolve, reject)=>{ checkedPlugins = checkedFiles.filter(function(file){ return /\bexplorviz-backend-plugin-\w*/.exec(file); @@ -133,7 +136,7 @@ if(checkedPlugins.length !== 0 ){ checkedPlugins.forEach((pluginName) => { - exec('git clone ' + downloadFiles[pluginName] + ' && cp -R '+ pluginName + '/ '+' explorviz-ui-backend/plugins/net/explorviz/plugins/', (error, stdout, stderr) => { //'cd explorviz-ui-backend/plugins/net/explorviz/plugins/ ' + + exec('git clone ' + downloadFiles[pluginName] + ' && cd '+ pluginName + ' && cp -R ' + ' . '+' ../explorviz-ui-backend/plugins/net/explorviz/plugins/ ', (error, stdout, stderr) => { //'cd explorviz-ui-backend/plugins/net/explorviz/plugins/ ' + if (error) { reject(error); @@ -158,6 +161,7 @@ } function backendBuild(){ + console.log('in backendBuild'); return new Promise((resolve,reject)=>{ exec('cd '+ fileName + ' && mvn compile war:war ', (error,stdout,stderr)=> { if (error) { @@ -188,6 +192,7 @@ } promiseArray.push(backendAll()); + console.log('promiseArray:', promiseArray); finalizeZip(); } @@ -274,17 +279,17 @@ }) - console.log('resolve build:', resolve); - } + console.log('resolve build:', resolve); + } - function frontendAll() { + function frontendAll() { - return frontendPull().then(function(){ - return frontendInstallAddons().then(function(){ - return frontendBuild() - }) - }) - } + return frontendPull().then(function(){ + return frontendInstallAddons().then(function(){ + return frontendBuild() + }) + }) + } //frontend was selected and the next step (streaming to zip) has to wait until the frontend is built promiseArray.push(frontendAll()); finalizeZip(); @@ -310,59 +315,73 @@ function streamFilesToZip(){ console.log('in streamFilesToZip'); return new Promise((resolve,reject)=> { - + console.log('promiseArray:', promiseArray); Promise.all(promiseArray).then(files => { console.log('in Promise.all'); let finishedArray=[]; files.forEach(file => { if (file.zipFileName === 'backend.war'){ -// console.log('backendStream:'); -// backendStream = fs.createReadStream(file.path); -// console.log('zip.file:'); -// zip.file(file.zipFileName, backendStream); -// console.log('backend done:'); -// finishedArray.push('backend done'); -const backendStream = fs.readFileSync(file.path, "base64", function(error, data){ - if(error){ - console.log('error:', error) - } -}); - //console.log('backendStream:', backendStream); - const backendReadStream = fs.createReadStream(backendStream); - - zip.file(file.zipFileName, backendReadStream); - finishedArray.push('backend finished'); - if(finishedArray.length === files.length){ - resolve(); - } - - - - - } - if(file.zipFileName === 'frontend'){ - const frontendStream = fsReaddir(file.path) - .on('error', function(err) { - console.log('error:', err); - }).on('data', function(data){ - for (let i=0; i<data.length; i++) { - const frontendReadStream = fs.createReadStream(data[i]); - console.log('data[i]:', data[i]); - zip.file(data[i], frontendReadStream); - } - - }).on('finish', function(){ - finishedArray.push('frontend finished'); - if(finishedArray.length === files.length){ - resolve(); - } - }) - - } - - - - }) + console.log('in backend.war'); + + fs.readFileAsync = function(filePath){ + return new Promise(function (resolve, reject) { + fs.readFile(filePath, function(err, data) { + if (err) { + reject(err); + } else { + resolve(data); + } + + }); + }); + } + + function addBackendToZip(data){ + return new Promise(function(resolve,reject){ + zip.file(file.zipFileName, data); + resolve(); + }) + } + + + backendContent = fs.readFileAsync(file.path); + backendContent.then(function(data){ + addBackendToZip(data).then(function(){ + resolve(finishedArray.push('backend finished')); + }) + + }) + + if(finishedArray.length === files.length){ + resolve(); + } + + + + } + if(file.zipFileName === 'frontend'){ + const frontendStream = fsReaddir(file.path) + .on('error', function(err) { + console.log('error:', err); + }).on('data', function(data){ + for (let i=0; i<data.length; i++) { + const frontendReadStream = fs.createReadStream(data[i]); + zip.file(data[i], frontendReadStream); + } + + }).on('finish', function(){ + finishedArray.push('frontend finished'); + if(finishedArray.length === files.length){ + resolve(); + } + }) + console.log('frontendStream:', frontendStream); + + } + + + + }) }) @@ -372,16 +391,16 @@ const backendStream = fs.readFileSync(file.path, "base64", function(error, data) function createZip(){ console.log('in createZip'); - + return new Promise((resolve,reject) => { zip.generateNodeStream({type:'nodebuffer',streamFiles:true}).pipe(fs.createWriteStream('explorviz-builds.zip')).on('error', function(error){ - console.log('error in createZip:', error); - }).on('finish', function () { - console.log('explorviz-builds.zip written.'); - res.download('explorviz-builds.zip'); - }); - - }) + console.log('error in createZip:', error); + }).on('finish', function () { + console.log('explorviz-builds.zip written.'); + res.download('explorviz-builds.zip'); + }); + + }) } -- GitLab