Skip to content

Instantly share code, notes, and snippets.

@secretGeek secretGeek/progress.ps1
Last active Aug 29, 2015

Embed
What would you like to do?
progress.ps1 (assumes commits are handled by count.ps1) give details about daily word and task counts, and show today's progress as a percent of goal.
# draw a bar (in the console) of a given size, n
function bar($n) {
$co = "green";
if ($n -lt 100) {
$co = "red"; #less than 100%: is RED
} elseif ($n -ge 500) {
$co = "blue"; #greater than 500% is Blue
}
1..([system.math]::min(50,$n/10)) | % { barbit($co);}
}
# writes a part of a bar graph (a bar-bit) in a given color
function barbit($cc) {
#todo... not always red
write-host " " -backgroundcolor $cc -nonewline
}
$target = 200;
write-host ("Daily target: " + $target + " words.") -foregroundcolor white
$hashy = @{}
$current = $null
$previous = $null
$num = 0;
$previous2 = ",:26541";
hg log --template "{date|shortdate},{desc}\n" | % {
$date = $_.split(',')[0]
if ($hashy[$date] -eq $null) {
$hashy[$date] = $_
$num = $num + 1;
$current2 = $previous2;
$previous2 = $_;
if ($current -eq $null) {
$current = $_;
} elseif ($previous -eq $null) {
$previous = $_;
}
if ($num -le 25) {
# only print the last 25 days.
#$_;
$currentWords2 = $current2.split(',')[1].split(':')[1]
$previousWords2 = $previous2.split(',')[1].split(':')[1]
$progress2 = (($currentWords2 - $previousWords2) / $target) * 100
if ($current2 -ne ",:26541") {
bar($progress2);
write-host (" " + $progress2 + "%");
}
#write-host (" " + $progress2 + " ") -nonewline;
write-host ($_ + " ") -nonewline;
}
}
}
write-host ""
$currentWords = $current.split(',')[1].split(':')[1]
$previousWords = $previous.split(',')[1].split(':')[1]
$currentTasks = $current.split(',')[2].split(':')[1].split('/')[0]
$previousTasks = $previous.split(',')[2].split(':')[1].split('/')[0]
# Goal Today... 200 ??
$progress = (($currentWords - $previousWords) / $target) * 100
$result = "" + ($currentWords - $previousWords) + " words today (" + ($progress) + "%), " + ($currentTasks - $previousTasks) + " tasks today"
$col = "white"
if ($progress -ge 100) {
$col = "green";
} elseif ($progress -le 10) {
$col = "red";
}
write-host $result -foregroundcolor $col
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.