diff --git a/lib/index.js b/lib/index.js index 85e9300..3800957 100644 --- a/lib/index.js +++ b/lib/index.js @@ -12,7 +12,6 @@ var Ul = require("ul") , ChildProcess = require("child_process") , Exec = ChildProcess.exec , Spawn = ChildProcess.spawn - , ProgressBar = require("progress") ; // Constants @@ -370,42 +369,22 @@ GitStats.globalActivity = function (options, callback) { var commits = {} , today = null , cal = [] - , isFinished = false - , timeout = null - , progress = null - , complete = 0 ; - Exec("git rev-list HEAD --count", { cwd: options.repo }, function (err, commitCount) { - if (err) { return callback(err); } - commitCount = parseInt(commitCount); - setTimeout(function () { - if (isFinished) { return; } - progress = new ProgressBar(":bar", { total: commitCount - complete }); - }, 10); - // TODO Take only the commits from the provided range (start - end) - GitLogParser(Spawn("git", ["log"], { cwd: options.repo }).stdout).on("commit", function(commit) { - today = Moment(commit.date).format(DATE_FORMAT); - commits[today] = commits[today] || 0; - ++commits[today]; - ++complete; - if (progress) { - progress.tick(); - } - }).on("error", function (err) { - clearTimeout(timeout); - callback(err); - }).on("finish", function () { - clearTimeout(timeout); - isFinished = true; - Object.keys(commits).forEach(function (c) { - cal.push([c, commits[c]]) - }); - callback(null, CliGhCal(cal, { - theme: options.theme - , start: options.start - , end: options.end - })); + GitLogParser(Spawn("git", ["log", "--since", options.start.format(DATE_FORMAT), "--until", options.end.format(DATE_FORMAT)], { cwd: options.repo }).stdout).on("commit", function(commit) { + today = Moment(commit.date).format(DATE_FORMAT); + commits[today] = commits[today] || 0; + ++commits[today]; + }).on("error", function (err) { + callback(err); + }).on("finish", function () { + Object.keys(commits).forEach(function (c) { + cal.push([c, commits[c]]) }); + callback(null, CliGhCal(cal, { + theme: options.theme + , start: options.start + , end: options.end + })); }); };