diff --git a/index.html b/index.html
index 6e0b832..a6be10c 100644
--- a/index.html
+++ b/index.html
@@ -515,6 +515,10 @@ Pixel-perfect Retina-ready Fast Consistent Hackable
 |
https://img.shields.io/dub/v/vibe-d.svg |
+ homebrew: |
+  |
+ https://img.shields.io/homebrew/v/cake.svg |
+
Social
diff --git a/server.js b/server.js
index b02892f..0944924 100644
--- a/server.js
+++ b/server.js
@@ -4814,6 +4814,36 @@ cache(function(data, match, sendBadge, request) {
sendBadge(format, badgeData);
}));
+// homebrew integration
+// Example: /homebrew/v/cake.svg
+camp.route(/^\/homebrew\/v\/([^\/]+)\.(svg|png|gif|jpg|json)$/,
+cache(function(data, match, sendBadge, request) {
+ var package = match[1];
+ var format = match[2];
+ var apiUrl = 'http://braumeister.org/formula/' + package + '/version';
+
+ var badgeData = getBadgeData('homebrew', data);
+ request(apiUrl, { headers: { 'Accept': 'application/json' } }, function(err, res, buffer) {
+ if (err != null) {
+ badgeData.text[1] = 'inaccessible';
+ sendBadge(format, badgeData);
+ }
+ try {
+ var data = JSON.parse(buffer);
+ var version = data.stable;
+
+ var vdata = versionColor(version);
+ badgeData.text[1] = vdata.version;
+ badgeData.colorscheme = vdata.color;
+
+ sendBadge(format, badgeData);
+ } catch(e) {
+ badgeData.text[1] = 'invalid';
+ sendBadge(format, badgeData);
+ }
+ });
+}));
+
// StackExchange integration.
camp.route(/^\/stackexchange\/([^\/]+)\/([^\/])\/([^\/]+)\.(svg|png|gif|jpg|json)$/,
cache(function(data, match, sendBadge, request) {
diff --git a/try.html b/try.html
index acc69c0..90f5db7 100644
--- a/try.html
+++ b/try.html
@@ -518,6 +518,10 @@ Pixel-perfect Retina-ready Fast Consistent Hackable
 |
https://img.shields.io/aur/version/yaourt.svg |
+ homebrew: |
+  |
+ https://img.shields.io/homebrew/v/cake.svg |
+
Social