Skip to content

Instantly share code, notes, and snippets.

@chathurawidanage
Created November 14, 2018 15:30
Show Gist options
  • Save chathurawidanage/932389359ab1dcca36bf463cf2082fc3 to your computer and use it in GitHub Desktop.
Save chathurawidanage/932389359ab1dcca36bf463cf2082fc3 to your computer and use it in GitHub Desktop.
Twister2 mvn artifact script
let fs = require('fs');
let http = require('http');
let crypto = require('crypto');
var algo = 'sha256';
function getSha(file, cb) {
var shasum = crypto.createHash(algo);
var s = fs.ReadStream(file);
s.on('data', function (d) {
shasum.update(d);
});
s.on('end', function () {
var d = shasum.digest('hex');
cb(d);
});
}
function downloadAndProcess(artifact) {
let parts = artifact.split(":");
//console.log(parts)
let fileName = artifact.replace(/[:\.]/g, "_") + ".jar";
var file = fs.createWriteStream(fileName);
let url = `http://repo.maven.apache.org/maven2/${parts[0].replace(/\./g, "/")}/${parts[1]}/${parts[2]}/${parts[1]}-${parts[2]}.jar`;
//console.log(url);
var request = http.get(url, function (response) {
if (response.statusCode === 200) {
var stream = response.pipe(file);
stream.on('finish', function () {
getSha(fileName, function (sha) {
console.log(`_maven_import(artifact = "${artifact}",licenses = ["notice"],sha256 = "${sha}",)`)
});
});
} else {
console.log("Failed ", url);
}
});
}
fs.readFile('./WORKSPACE', 'utf8', function (err, contents) {
let regex = new RegExp("maven_jar\\(\\s+.+\\s+artifact\\s=\\s\\\"([a-zA-Z0-9_\\.:-]+)\"", "g");
let groups = regex.exec(contents);
while (groups) {
downloadAndProcess(groups[1]);
groups = regex.exec(contents);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment