From 5e2a7d478ed098e72e779780b2ac705e9e035cc4 Mon Sep 17 00:00:00 2001 From: Thaddee Tyl Date: Tue, 7 Jan 2014 15:52:59 +0100 Subject: [PATCH] Executable program. Generates SVG badges. --- gh-badge.js | 41 +++++++++++++++++++++++++++++++++++++++++ package.json | 3 ++- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100755 gh-badge.js diff --git a/gh-badge.js b/gh-badge.js new file mode 100755 index 0000000..1c90987 --- /dev/null +++ b/gh-badge.js @@ -0,0 +1,41 @@ +var badge = require('./badge.js'); +var colorscheme = require('./colorscheme.json'); +if (process.argv.length < 4) { + console.log('Usage: badge subject status :[colorscheme]'); + console.log('Or: badge subject status right-color [left-color]'); + console.log(); + console.log(' colorscheme: one of ' + + Object.keys(colorscheme).join(', ') + '.'); + console.log(' left-color, right-color:'); + console.log(' #xxx (three hex digits)'); + console.log(' #xxxxxx (six hex digits)'); + console.log(' color (CSS color)'); + console.log(); + console.log('Eg: badge grown cactus :green'); + console.log(); + process.exit(); +} + +var subject = process.argv[2]; +var status = process.argv[3]; +var color = process.argv[4] || ':green'; +var colorA = process.argv[5]; + +var badgeData = {text: [subject, status]}; + +function sixHex(s) { return /^[0-9a-fA-F]{6}$/.test(s); } + +if (color[0] === ':') { + color = color.slice(1); + if (colorscheme[color] == null) { + // Colorscheme not found. + console.error('Invalid color scheme.'); + process.exit(1); + } + badgeData.colorscheme = color; +} else { + badgeData.colorB = color; + if (colorA) { badgeData.colorA = colorA; } +} + +badge(badgeData, function(svg) { console.log(svg); }); diff --git a/package.json b/package.json index 01c7152..73da11f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gh-badges", - "version": "0.1.0", + "version": "0.1.1", "description": "GitHub badges implemented in SVG.", "keywords": ["GitHub", "badge", "SVG", "image"], "homepage": "http://b.adge.me", @@ -23,5 +23,6 @@ "es6-promise": "~0.1.1", "camp": "~13.11.9" }, + "bin": { "badge": "./gh-badge.js" }, "engines": { "node": "0.10.x" } }