var exec = require('child_process').exec, request = require('request'), _ = require('underscore'); var pages = function(dbot) { var rev, diff, branch, credit, authors = []; exec("git log --format='%cN¬' | sort -u | tr -d '\n'", function (error, stdout, sderr) { var credit = stdout.split("¬"); // nobody uses ¬, do they? for (var i = 0; i < credit.length; i++) { if ((credit[i].split(" ").length) == 2){ console.log(credit[i]); authors.push(credit[i]); } } }); exec("git rev-list --all | wc -l", function(error, stdout, stderr) { rev = stdout; }); exec("git rev-parse --abbrev-ref HEAD", function(error, stdout, stderr) { branch = stdout }); exec("git log -1", function(error, stdout, stderr) { diff = stdout }); /* TODO: merge back into github module */ var milestones; request({"url":"https://api.github.com/repos/" + dbot.config.modules.github.defaultrepo + "/milestones?state=open","headers":{"User-Agent":"reality/depressionbot (project module)"}}, function(error, response, body){ try { milestones = JSON.parse(body); } catch(err) { milestones = {}; } }); return { '/project': function(req, res) { dbot.api.quotes.getQuote(dbot.config.name, function(quote) { if(!quote) quote = dbot.config.name; res.render('project', { "translation": dbot.modules.project.api.translationProgress(), "configList": dbot.modules.project.api.configList(), "authors": authors, "credits": dbot.t("credits"), "thanks": dbot.t("thanks"), "name": dbot.config.name, "intro": dbot.t("dbotintro", { "botname": dbot.config.name }), "curr839": dbot.config.language, "repo": dbot.config.modules.github.defaultrepo, "branch": dbot.t("branch",{ "branch": branch }), "currver": dbot.config.version, "currlang": dbot.t("dbotspeaks",{ "lang839": dbot.config.language, "langen": dbot.strings[dbot.config.language]["en"], "lang": dbot.t(dbot.config.language), "name": dbot.config.name }), "projectstatus": dbot.t("projectstatus"), "revnum": dbot.t("revnum",{ "name": dbot.config.name, "rev": rev }), "modules": dbot.config.moduleNames, "loadmod": dbot.t("loadedmodules"), "debugmode": dbot.t("debugmode-" + dbot.config.debugMode), "milestones": milestones, "milestoneprog": dbot.t("milestoneprog"), "config": dbot.t("configoptions"), "milestonename": dbot.t("milestonename"), "openmilestone": dbot.t("openmilestone"), "closedmilestone": dbot.t("closedmilestone"), "development": dbot.t("development"), "dquote": quote, "diff": diff, "pagetitle": dbot.t("pagetitle", { "botname": dbot.config.name }), "git": dbot.t("git"), "milestonehead": dbot.t("milestones"), "propaganda": dbot.t("propaganda"), "languagecurr": dbot.t(dbot.config.language), "languagenati": dbot.t("langhead-native"), "languageeng": dbot.t("en"), "languageprog": dbot.t("langhead-progress"), "languagetrans": dbot.t("langhead-translations"), "languagetranshead": dbot.t("translations"), "pullreqs": dbot.t("outstanding-pullreq") }); }); } }; }; exports.fetch = function(dbot) { return pages(dbot); };