diff --git a/index.html b/index.html
index cc0cf07..c855a16 100644
--- a/index.html
+++ b/index.html
@@ -547,6 +547,10 @@ Pixel-perfect Retina-ready Fast Consistent Hackable
 |
https://img.shields.io/apm/l/vim-mode.svg |
+ Bower: |
+  |
+ https://img.shields.io/bower/l/bootstrap.svg |
+
PyPI: |
 |
https://img.shields.io/pypi/l/Django.svg |
diff --git a/server.js b/server.js
index 6644587..e10f5b0 100644
--- a/server.js
+++ b/server.js
@@ -3228,6 +3228,30 @@ cache(function(data, match, sendBadge, request) {
});
}));
+// Bower license integration.
+camp.route(/^\/bower\/l\/(.*)\.(svg|png|gif|jpg|json)$/,
+cache(function(data, match, sendBadge, request) {
+ var repo = match[1]; // eg, `bootstrap`.
+ var format = match[2];
+ var badgeData = getBadgeData('bower', data);
+ var bower = require('bower');
+ bower.commands.info(repo, 'license')
+ .on('error', function() {
+ badgeData.text[1] = 'inaccessible';
+ sendBadge(format, badgeData);
+ })
+ .on('end', function(license) {
+ try {
+ badgeData.text[1] = license;
+ badgeData.colorscheme = 'blue';
+ sendBadge(format, badgeData);
+ } catch(e) {
+ badgeData.text[1] = 'void';
+ sendBadge(format, badgeData);
+ }
+ });
+}));
+
// Wheelmap integration.
camp.route(/^\/wheelmap\/a\/(.*)\.(svg|png|gif|jpg|json)$/,
cache(function(data, match, sendBadge, request) {
diff --git a/try.html b/try.html
index 02d8522..4c41f39 100644
--- a/try.html
+++ b/try.html
@@ -546,6 +546,10 @@ Pixel-perfect Retina-ready Fast Consistent Hackable
 |
https://img.shields.io/apm/l/vim-mode.svg |
+ Bower: |
+  |
+ https://img.shields.io/bower/l/bootstrap.svg |
+
PyPI: |
 |
https://img.shields.io/pypi/l/Django.svg |
---|