From e92d47d7ed1e845a5425d35fec1e211e63204fd4 Mon Sep 17 00:00:00 2001 From: Jakob Krigovsky Date: Fri, 19 Sep 2014 18:52:22 +0200 Subject: [PATCH] Add support for Bower --- package.json | 3 ++- server.js | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index aa59cdf..b5260c1 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,8 @@ "request": "~2.34.0", "redis": "~0.10.1", "camp": "~13.11.9", - "semver": "~2.3.0" + "semver": "~2.3.0", + "bower": "~1.3.11" }, "devDependencies": { "ass": "~0.0.6", diff --git a/server.js b/server.js index e15532e..469f9cf 100644 --- a/server.js +++ b/server.js @@ -1819,6 +1819,29 @@ cache(function(data, match, sendBadge) { }); })); +// Bower version integration. +camp.route(/^\/bower\/v\/(.*)\.(svg|png|gif|jpg)$/, +cache(function(data, match, sendBadge) { + var repo = match[1]; // eg, `bootstrap`. + var format = match[2]; + var badgeData = getBadgeData('bower', data); + var bower = require('bower'); + bower.commands.info(repo, 'version') + .on('error', function() { + badgeData.text[1] = 'inaccessible'; + sendBadge(format, badgeData); + }) + .on('end', function(version) { + badgeData.text[1] = 'v' + version; + if (version[0] === '0' || /dev/.test(version)) { + badgeData.colorscheme = 'orange'; + } else { + badgeData.colorscheme = 'blue'; + } + sendBadge(format, badgeData); + }); +})); + // Any badge. camp.route(/^\/(:|badge\/)(([^-]|--)+)-(([^-]|--)+)-(([^-]|--)+)\.(svg|png|gif|jpg)$/, function(data, match, end, ask) {