alfresco-ng2-components/scripts/upload-build-lib-in-cs.js
2018-09-06 09:38:31 +01:00

98 lines
2.7 KiB
JavaScript

var program = require('commander');
var AlfrescoApi = require('alfresco-js-api-node');
var fs = require('fs');
var path = require('path');
var archiver = require('archiver');
writeZipLib = async function (zipName, zipFolder) {
if (!fs.existsSync(zipFolder)) {
fs.mkdirSync(zipFolder);
}
// create a file to stream archive data to.
let output = fs.createWriteStream(path.join(zipFolder, `${zipName}.zip`));
let archive = archiver('zip', {
zlib: {level: 9} // Sets the compression level.
});
archive.pipe(output);
archive.directory(path.join(__dirname, `../lib/dist/${zipName}`), zipName);
return archive.finalize();
};
async function main() {
program
.version('0.1.0')
.usage('[options] <file ...>')
.option('-p, --password [type]', 'password')
.option('-u, --username [type]', 'username')
.option('-f, --folder [type]', 'Name of the folder')
.option('-host, --host [type]', 'URL of the CS')
.parse(process.argv);
let alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: program.host
});
let zipFolder = path.join(__dirname, '/../lib/dist/zip/');
await this.writeZipLib('core', zipFolder);
await this.writeZipLib('content-services', zipFolder);
await this.writeZipLib('process-services', zipFolder);
await this.writeZipLib('insights', zipFolder);
let files = fs.readdirSync(path.join(__dirname, '../lib/dist/zip'));
if (files && files.length > 0) {
alfrescoJsApi.login(program.username, program.password);
let folder;
if (!program.folder) {
program.folder = Date.now();
}
try {
folder = await alfrescoJsApi.nodes.addNode('-my-', {
'name': program.folder,
'relativePath': `Builds`,
'nodeType': 'cm:folder'
}, {}, {
'overwrite': true
});
} catch (error) {
console.log('error' + error);
}
for (const fileName of files) {
let pathFile = path.join(__dirname, '../lib/dist/zip', fileName);
console.log('Upload ' + pathFile);
let file = fs.createReadStream(pathFile);
try {
await alfrescoJsApi.upload.uploadFile(
file,
'',
folder.entry.id,
null,
{
'name': file.name,
'nodeType': 'cm:content'
});
} catch (error) {
console.log('error' + error);
}
}
}
}
main();