From ad58830df529aed869de6aee5d93f0d447238653 Mon Sep 17 00:00:00 2001 From: cesarferreira Date: Thu, 17 Aug 2017 20:05:57 +0100 Subject: [PATCH] jitpack on the works --- lib/metadata/jcenter.js | 2 +- lib/metadata/jitpack.js | 45 ++++++++++++++++++++++++++++++++++++++++ lib/metadata/maven.js | 2 +- lib/metadata/metadata.js | 13 ++++++++++-- lib/tasks/add.js | 4 ---- 5 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 lib/metadata/jitpack.js diff --git a/lib/metadata/jcenter.js b/lib/metadata/jcenter.js index f37fb4b..63e9cba 100644 --- a/lib/metadata/jcenter.js +++ b/lib/metadata/jcenter.js @@ -14,7 +14,7 @@ const self = module.exports = { return new Promise((resolve, reject) => { const substitute = info.dependency.replace(/\./g, '/').replace(/:/g, '/') let url = `https://jcenter.bintray.com/${substitute}/maven-metadata.xml` - log(url) + require('node-read-url') .promise(url) .then(response => { diff --git a/lib/metadata/jitpack.js b/lib/metadata/jitpack.js new file mode 100644 index 0000000..63e9cba --- /dev/null +++ b/lib/metadata/jitpack.js @@ -0,0 +1,45 @@ +#!/usr/bin/env node +'use strict'; + +const Chalk = require('chalk'); +const log = console.log; +const Constants = require('../utils/constants'); +const fs = require('fs-extra'); +const Hive = require('../handlers/Hive'); +const xml2js = require('xml2js'); + +// Main code // +const self = module.exports = { + getLatestVersion: (info) => { + return new Promise((resolve, reject) => { + const substitute = info.dependency.replace(/\./g, '/').replace(/:/g, '/') + let url = `https://jcenter.bintray.com/${substitute}/maven-metadata.xml` + + require('node-read-url') + .promise(url) + .then(response => { + xml2js.parseString(response, (err, result) => { + if (result.metadata.version.length === 1) { + resolve(result.metadata.version[0]) + } else { + resolve('+') + } + }); + }).catch(err => resolve('+')); + }).catch(err => resolve('+')); + }, + getLatestVersionByPair: (pair) => { + return Hive.get(pair) + .then(info => { + return self.getLatestVersion(info); + }).catch(err => { + log(`Cant find the pair: ${pair}`) + }); + } +}; + + +// self.getLatestVersionByPair('square/picasso2') +// .then(version => { +// log(`version: ${version}`) +// }) diff --git a/lib/metadata/maven.js b/lib/metadata/maven.js index 8c1e36e..5f8b57b 100644 --- a/lib/metadata/maven.js +++ b/lib/metadata/maven.js @@ -14,7 +14,7 @@ const self = module.exports = { return new Promise((resolve, reject) => { const substitute = info.dependency.replace(/\./g, '/').replace(/:/g, '/') let url = `http://repo1.maven.org/maven2/${substitute}/maven-metadata.xml` -log(url) + require('node-read-url') .promise(url) .then(response => { diff --git a/lib/metadata/metadata.js b/lib/metadata/metadata.js index 5dca803..06fac91 100644 --- a/lib/metadata/metadata.js +++ b/lib/metadata/metadata.js @@ -5,23 +5,32 @@ const Chalk = require('chalk'); const log = console.log; const Constants = require('../utils/constants'); const fs = require('fs-extra'); + const JCenter = require('./jcenter') const Maven = require('./jcenter') +const Jitpack = require('./jitpack') // Main code // const self = module.exports = { getLatestVersion: (info) => { let promise = {}; const server = info.repository.server.toLowerCase(); - log(server) switch (server) { case 'jcenter': promise = JCenter.getLatestVersion(info); break; case 'maven': - promise = Maven.getLatestVersion(info); + switch (info.repository.server.url) { + case 'https://jitpack.io': + promise = Jitpack.getLatestVersion(info); + break; + default: + promise = Maven.getLatestVersion(info); + break; + } break; default: + // What is the meaning of life?! break; } return promise; diff --git a/lib/tasks/add.js b/lib/tasks/add.js index ccf6940..fec89ec 100644 --- a/lib/tasks/add.js +++ b/lib/tasks/add.js @@ -11,10 +11,8 @@ const Metadata = require('../metadata/metadata'); // Main code // const self = module.exports = { init: (input) => { - QuickSearch.search(input[0]) .then(result => { - if (result.rating === 1) { log(Chalk.blue('==>') + Chalk.bold(' Found it!')); @@ -23,7 +21,6 @@ const self = module.exports = { Metadata.getLatestVersion(info) .then(version => { log(`${info.compileType} "${info.dependency}:${version}"`); - }) }); } else { @@ -31,6 +28,5 @@ const self = module.exports = { log(`${result.target}`); } }); - } };