alfresco-ng2-components/scripts/download-build-lib-in-cs.js
Maurizio Vitale 0ecb6c13ec [ADF-3538] Alfresco Process Service Cloud - new package with CLI (#3872)
* [ADF-3538] start creating new folder for cloud components

* [ADF-3538] added new package to the script and the builds

* [ADF-3538] added some more changes to scripts

* [ADF-3538] - starting the new package

* change index

* fix package

* Fix module structure with Cli

* add basic structure

* Create a library with angular cli

* Add a cloud component as example

* Skip the scss style

* add the import scss

* remove useless codes

* Add i18n example

* remove useless code

* Simplify the hello component
Fix the wrong path

* Fix process service cloud path

* Download process-service-cloud from the CS
2018-10-16 18:15:11 +01:00

115 lines
3.6 KiB
JavaScript

var program = require('commander');
var AlfrescoApi = require('alfresco-js-api-node');
var http = require('http');
var fs = require('fs');
var path = require('path');
var archiver = require('archiver');
var unzip = require('unzip-stream');
var exec = require('child_process').exec;
var alfrescoJsApi;
unzipRetry = (url, outputFolder, pacakge, tentativeNumber) => {
console.log(`Unzip ${pacakge} in ` + path.join(__dirname, `../${pacakge}.zip`));
fs.createReadStream(path.join(__dirname, `../${pacakge}.zip`))
.pipe(unzip.Extract({path: path.join(__dirname, `../${outputFolder}/@alfresco/`)}))
.on('error', (error) => {
console.log('Error' + error)
if (tentativeNumber <= 4) {
fs.unlinkSync(path.join(__dirname, `../${pacakge}.zip`));
setTimeout(() => {
downloadZip(url, outputFolder, pacakge, tentativeNumber);
}, 10000);
}
})
.on('finish', () => {
setTimeout(() => {
let oldFolder = path.join(__dirname, `../${outputFolder}/@alfresco/${pacakge}`)
let newFolder = path.join(__dirname, `../${outputFolder}/@alfresco/adf-${pacakge}`)
fs.rename(oldFolder, newFolder, (err) => {
console.log('renamed complete');
});
}, 10000);
})
}
downloadZip = async (url, outputFolder, pacakge, tentativeNumber) => {
if (!tentativeNumber) {
tentativeNumber = 0;
}
tentativeNumber++;
console.log(`Download ${pacakge} in OutputFolder ${outputFolder}`)
var file = fs.createWriteStream(`${pacakge}.zip`);
return await http.get(`http://${url}`, (response) => {
response.pipe(file);
file.on('finish', async () => {
file.close(() => {
unzipRetry(url, outputFolder, pacakge, tentativeNumber);
});
});
});
}
getUrl = async (folder, pacakge) => {
let zipDemoNode;
try {
zipDemoNode = await alfrescoJsApi.nodes.getNode('-my-', {
'relativePath': `Builds/${folder}/${pacakge}.zip`
});
} catch (error) {
console.log('error: ' + error);
}
return await alfrescoJsApi.content.getContentUrl(zipDemoNode.entry.id, true);
}
async function main() {
program
.version('0.1.0')
.option('-p, --password [type]', 'password')
.option('-u, --username [type]', 'username')
.option('-o, --output [type]', 'oputput folder')
.option('--base-href [type]', '')
.option('-f, --folder [type]', 'Name of the folder')
.option('-host, --host [type]', 'URL of the CS')
.parse(process.argv);
alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: program.host
});
if (!program.output) {
program.output = 'node_modules'
}
await alfrescoJsApi.login(program.username, program.password);
let coreUrl = await getUrl(program.folder, 'core');
downloadZip(coreUrl, program.output, 'core');
let contentUrl = await getUrl(program.folder, 'content-services');
downloadZip(contentUrl, program.output, 'content-services');
let processUrl = await getUrl(program.folder, 'process-services');
downloadZip(processUrl, program.output, 'process-services');
let insightUrl = await getUrl(program.folder, 'insights');
downloadZip(insightUrl, program.output, 'insights');
let processCloudUrl = await getUrl(program.folder, 'process-services-cloud');
downloadZip(processCloudUrl, program.output, 'process-services-cloud');
}
main();