Skip to content
Snippets Groups Projects
Commit 40a821cc authored by Josefine Wegert's avatar Josefine Wegert
Browse files

work in progress: add both files to zip

parent 98e7fdfd
No related branches found
No related tags found
No related merge requests found
......@@ -70,82 +70,78 @@ app.use(bodyParser.json());
const promiseArray = []
const checkedFiles = req.query.checkedFiles.split(',');
backendChecked = checkedFiles.find(function(file){
return file === 'explorviz-ui-backend';
});
if (backendChecked){
backendChecked = checkedFiles.find(function(file){
return file === 'explorviz-ui-backend';
});
if (backendChecked){
const fileName = backendChecked;
const fileName = backendChecked;
function backendAll(){
return backendFunctions.backendClean(fileName).then(function(){
return backendFunctions.backendPull(fileName).then(function(){
return backendFunctions.backendInstallAddons(checkedFiles,downloadFiles).then(function(){
return backendFunctions.backendBuild(fileName)
function backendAll(){
return backendFunctions.backendClean(fileName).then(function(){
return backendFunctions.backendPull(fileName).then(function(){
return backendFunctions.backendInstallAddons(checkedFiles,downloadFiles).then(function(){
return backendFunctions.backendBuild(fileName)
})
})
}).catch(function(error){
let response =
'There was an error during your backend build. ' +
'Please contact "explorviz-developers-request@listserv.dfn.de" ' +
'and add the following information: ' + error;
res.send(response);
})
}).catch(function(error){
let response =
'There was an error during your backend build. ' +
'Please contact "explorviz-developers-request@listserv.dfn.de" ' +
'and add the following information: ' + error;
res.send(response);
})
}
promiseArray.push(backendAll());
}
promiseArray.push(backendAll());
console.log('promiseArray in backendChecked:', promiseArray);
finalizeZip(promiseArray);
}
frontendChecked = checkedFiles.find(function(file){
return file === 'explorviz-ui-frontend';
});
}
if (frontendChecked){
const fileName = frontendChecked;
const downloadURL = downloadFiles[frontendChecked];
frontendChecked = checkedFiles.find(function(file){
return file === 'explorviz-ui-frontend';
});
function frontendAll() {
return frontendFunctions.frontendClean(fileName).then(function(){
return frontendFunctions.frontendPull(fileName).then(function(){
return frontendFunctions.frontendInstallAddons(checkedFiles, downloadFiles).then(function(){
return frontendFunctions.frontendBuild(fileName)
if (frontendChecked){
const fileName = frontendChecked;
const downloadURL = downloadFiles[frontendChecked];
function frontendAll() {
return frontendFunctions.frontendClean(fileName).then(function(){
return frontendFunctions.frontendPull(fileName).then(function(){
return frontendFunctions.frontendInstallAddons(checkedFiles, downloadFiles).then(function(){
return frontendFunctions.frontendBuild(fileName)
})
})
})
}).catch(function(error){
let response =
'There was an error during your frontend build. ' +
'Please contact "explorviz-developers-request@listserv.dfn.de" ' +
'and add the following information: ' + error;
res.send(response);
}).catch(function(error){
let response =
'There was an error during your frontend build. ' +
'Please contact "explorviz-developers-request@listserv.dfn.de" ' +
'and add the following information: ' + error;
res.send(response);
})
}
//frontend was selected and the next step (streaming to zip) has to wait until the frontend is built
promiseArray.push(frontendAll());
finalizeZip(promiseArray);
})
}
promiseArray.push(frontendAll());
};
};
finalizeZip();
//TODO put all zip-things in zipFunctions.js;
//problem: createZip has to know the res from /download-route and if just the other functions will be exported, the zip has to be passed to createZip with resolve()
// create a file to stream archive data to.
const zip = new JSZip();
zip.file("README.txt", "text for README");
let finishedArray=[];
function streamFilesToZip(promiseArray){
function streamFilesToZip(){
console.log('in streamFilesToZip');
return new Promise((resolve,reject)=> {
let finishedArray=[];
console.log('promiseArray in streamFilesToZip before Promise.all:', promiseArray);
Promise.all(promiseArray).then(files => {
console.log('in Promise.all, files:', files);
......@@ -165,10 +161,11 @@ function streamFilesToZip(promiseArray){
});
}
function addBackendToZip(data){
return new Promise(function(resolve,reject){
zip.file(file.zipFileName, data);
console.log('zip in addBackendToZip:', zip);
console.log('finishedArray in backend:', finishedArray);
resolve();
})
}
......@@ -178,14 +175,11 @@ function streamFilesToZip(promiseArray){
backendContent.then(function(data){
addBackendToZip(data).then(function(){
resolve(finishedArray.push('backend finished'));
})
})
}
if(file.zipFileName === 'frontend'){
const frontendStream = fsReaddir(file.path)
......@@ -198,29 +192,45 @@ function streamFilesToZip(promiseArray){
}
}).on('finish', function(){
console.log('zip in frontend:', zip);
resolve(finishedArray.push('frontend finished'));
console.log('finishedArray in frontend:', finishedArray);
})
}
})
})
if(finishedArray.length === files.length){
console.log('before resolve() in streamFilesToZip');
resolve();
}
})
};
}
function collectFilesToZip(finishedArray){
console.log('in collectFilesToZip');
console.log('finishedArray.length:', finishedArray.length);
console.log('promiseArray.length:', promiseArray.length);
return new Promise((resolve,reject)=> {
if(finishedArray.length === promiseArray.length){
console.log('in resolve()');
resolve(zip);
}
})
}
function finalizeZip(promiseArray){
return streamFilesToZip(promiseArray).then(function(){
return createZip()
function finalizeZip(){
return streamFilesToZip().then(function(){
return collectFilesToZip(finishedArray).then(function(zip){
return createZip(zip)
})
}).catch(function(error) {let response =
'There was an error during your build. ' +
'Please contact "explorviz-developers-request@listserv.dfn.de" ' +
......@@ -230,9 +240,8 @@ function finalizeZip(promiseArray){
}
function createZip(){
function createZip(zip){
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);
......
......@@ -51,7 +51,6 @@ function backendInstallAddons(checkedFiles,downloadFiles){
if(checkedPlugins.length !== 0 ){
checkedPlugins.forEach((pluginName) => {
exec('cd '+ pluginName + ' git pull ' + '&& rsync -av . ' + ' ../explorviz-ui-backend/plugins/net/explorviz/plugins/ ' + ' --exclude .git', (error, stdout, stderr) => { //'cd explorviz-ui-backend/plugins/net/explorviz/plugins/ ' +
if (error) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment