151 lines
5.4 KiB
JavaScript
151 lines
5.4 KiB
JavaScript
#! /usr/bin/env runjs
|
|
|
|
var argsEx = require('component-args.js');
|
|
var json = require('component-json-ex.js');
|
|
var gpg = require('component-gpg-ex.js');
|
|
var DefaultRollCounter = Packages.me.hatter.tools.commons.io.DefaultRollCounter;
|
|
|
|
// need pom?
|
|
var REPO_BASEURLS = {
|
|
'central': {
|
|
'jar': 'https://search.maven.org/remotecontent?filepath={gid}/{aid}/{ver}/{aid}-{ver}.jar',
|
|
'src': 'https://search.maven.org/remotecontent?filepath={gid}/{aid}/{ver}/{aid}-{ver}-sources.jar',
|
|
'pom': 'https://search.maven.org/remotecontent?filepath={gid}/{aid}/{ver}/{aid}-{ver}.pom'
|
|
},
|
|
'aliyun_central': {
|
|
'jar': 'https://maven.aliyun.com/repository/central/{gid}/{aid}/{ver}/{aid}-{ver}.jar',
|
|
'src': 'https://maven.aliyun.com/repository/central/{gid}/{aid}/{ver}/{aid}-{ver}-sources.jar',
|
|
'pom': 'https://maven.aliyun.com/repository/central/{gid}/{aid}/{ver}/{aid}-{ver}.pom'
|
|
}
|
|
};
|
|
|
|
var gpgEncryptedAuthToken = {/**LINES
|
|
-----BEGIN PGP MESSAGE-----
|
|
Comment: GPGTools - https://gpgtools.org
|
|
|
|
hQEMAwpgonLPA1NTAQf+MowR8XeAd6jtJhHE6s8FwmXyYEI1R8J3kEo+XBnUWXph
|
|
dVQYHUAj+lWl9Pd8YpJmImT+Qf9mseZSi0wbkUi6N1UJogwtx4sAu9szvLcEhYa2
|
|
68Oyl+AY8jdn608OKqXRwG8z4HVrzdFgyEBuyJ/GafDH+bXcLYNtROcb63FlMlhJ
|
|
zLymaJD85W3uKlmYqJ0/OHLxn+fruRvZz0ZxlN1w3lj8t0wqLk+cOcTVMZkpdiYD
|
|
BGj8fkS/OTQBBNACmsCJDoUdBEMSRpjU3z55Zn5EGK0R3uTkZfuo+pJjGaZEtz8m
|
|
kuM0Yxyvq38fzPC9zrGQKsyXBOH3B8/x7GqcNDEVRtJnAWDu4syv3FkiGAzyHiKZ
|
|
nEupU97rz+XL5fKU89i6+ttAAC+xIMkASAde/Z5CdOdGjwfjx3u7U+c8XmaAcQtE
|
|
ibIucc2d0dsCkynzket0EfqExEXj4NUqxmwIS118vKMZAwap3FnaxQ==
|
|
=fjt8
|
|
-----END PGP MESSAGE-----
|
|
*/};
|
|
|
|
var SITE_PROXY_MAP = {
|
|
"hatterink": "https://hatter.ink/pget.action?__auth_token={auth_token}&target={target}"
|
|
};
|
|
|
|
var __cachec_authToken = null;
|
|
|
|
var getRealUrl = (args, url) => {
|
|
var readlUrl = url;
|
|
var proxy = args.val('p', 'proxy');
|
|
if (proxy != null) {
|
|
var proxyUrl = SITE_PROXY_MAP[proxy];
|
|
if (proxyUrl == null) {
|
|
xprintln('[WARN] Unknown proxy: ' + proxy);
|
|
} else {
|
|
xprintln('[INFO] Using proxy: ' + proxy);
|
|
if (__cachec_authToken == null) {
|
|
__cachec_authToken = gpg.decryptArmor(gpgEncryptedAuthToken);
|
|
}
|
|
readlUrl = proxyUrl.replace('{auth_token}', __cachec_authToken).replace('{target}', encodeURIComponent(url));
|
|
}
|
|
}
|
|
return readlUrl;
|
|
};
|
|
|
|
var main = () => {
|
|
var args = argsEx.parseDefARGs(['use-wget']);
|
|
if (args == null || (args.length != 1 && args.length != 3)) {
|
|
println('Usage:');
|
|
println('mvnjar.js [--use-wget] [-r, --repo] [-p, --proxy] gid aid ver');
|
|
println('mvnjar.js [--use-wget] [-r, --repo] [-p, --proxy] gid:aid:ver');
|
|
println(' -r, --repo <REPO> x(central), central, aliyun_central')
|
|
println(' -p, --proxy <SITE> Site, hatterink')
|
|
return;
|
|
}
|
|
var repo = args.val('r', 'repo')
|
|
if (repo == null || repo == 'x') { repo = 'central'; }
|
|
|
|
var gid, aid, ver;
|
|
if (args.length == 1) {
|
|
var splitedArgs1 = $STR(args[0]).split(':');
|
|
if (splitedArgs1.length != 3) {
|
|
xprintln('[ERROR] Format error: ' + args[0]);
|
|
return;
|
|
}
|
|
gid = splitedArgs1[0];
|
|
aid = splitedArgs1[1];
|
|
ver = splitedArgs1[2];
|
|
} else {
|
|
gid = args[0];
|
|
aid = args[1];
|
|
ver = args[2];
|
|
}
|
|
|
|
var baseUrls = REPO_BASEURLS[repo];
|
|
if (baseUrls == null) {
|
|
xprintln('[ERROR] Repo not defined: ' + repo);
|
|
return;
|
|
}
|
|
var urlJar = baseUrls.jar;
|
|
var urlSrc = baseUrls.src;
|
|
var urlPom = baseUrls.pom;
|
|
|
|
var uj = urlJar.replace(/{gid}/g, gid.replace(/\./g, '/')).replace(/{aid}/g, aid).replace(/{ver}/g, ver);
|
|
println('JAR: ' + uj);
|
|
if (args.flg('use-wget')) {
|
|
$$.shell().commands('wget', uj, '-O', aid + '-' + ver + '.jar').run();
|
|
} else {
|
|
__.httprequest.fromUrl(getRealUrl(args, uj)).get(__.rfile.from(aid + '-' + ver + '.jar').file(), new DefaultRollCounter().prefix('Downloading ... '));
|
|
}
|
|
|
|
var hasSrc = true;
|
|
var us = urlSrc.replace(/{gid}/g, gid.replace(/\./g, '/')).replace(/{aid}/g, aid).replace(/{ver}/g, ver);
|
|
println('SRC: ' + us);
|
|
try {
|
|
if (args.flg('use-wget')) {
|
|
$$.shell().commands('wget', us, '-O', aid + '-' + ver + '-sources.jar').run();
|
|
} else {
|
|
__.httprequest.fromUrl(getRealUrl(args, us)).get(__.rfile.from(aid + '-' + ver + '-sources.jar').file(), new DefaultRollCounter().prefix('Downloading ... '));
|
|
}
|
|
} catch(e) {
|
|
hasSrc = false;
|
|
println('[WARN] download src failed.')
|
|
}
|
|
if (urlPom) {
|
|
var up = urlPom.replace(/{gid}/g, gid.replace(/\./g, '/')).replace(/{aid}/g, aid).replace(/{ver}/g, ver);
|
|
println('POM: ' + up);
|
|
if (args.flg('use-wget')) {
|
|
$$.shell().commands('wget', up, '-O', aid + '-' + ver + '-.pom').run();
|
|
} else {
|
|
__.httprequest.fromUrl(getRealUrl(args, up)).get(__.rfile.from(aid + '-' + ver + '.pom').file(), new DefaultRollCounter().prefix('Downloading ... '));
|
|
}
|
|
|
|
}
|
|
|
|
var b = {
|
|
repo: {
|
|
gid: gid,
|
|
aid: aid,
|
|
jar: aid + '-' + ver + '.jar',
|
|
pom: aid + '-' + ver + '.pom',
|
|
staticVersion: ver
|
|
}
|
|
};
|
|
if (hasSrc) {
|
|
b.repo.src = aid + '-' + ver + '-sources.jar';
|
|
}
|
|
var j = json.prettyJSON(b);
|
|
println(j);
|
|
__.rfile.from('build.json').write(j);
|
|
println('done')
|
|
};
|
|
|
|
main();
|