From d24d2a57be3e90ef033a729c99ab7560c87b9663 Mon Sep 17 00:00:00 2001 From: Chris Koeritz Date: Sun, 20 May 2012 16:58:41 -0400 Subject: [PATCH] nice cleanup of script to generate report with functions. also added the "weight" of the to-dos, which is just how much disk space the files are taking up. --- scripts/notes/info_overload_report.sh | 137 +++++++++++++++++--------- 1 file changed, 90 insertions(+), 47 deletions(-) diff --git a/scripts/notes/info_overload_report.sh b/scripts/notes/info_overload_report.sh index 57667e6e..279a49b6 100644 --- a/scripts/notes/info_overload_report.sh +++ b/scripts/notes/info_overload_report.sh @@ -11,66 +11,109 @@ function calculate_depth() find "$dir" -type f -exec echo \"{}\" ';' | grep -v "\.svn" | grep -v "\.git"| grep -v "\.basket" | grep -v "\.version" | grep -v "\.keep" | wc -l | tr -d ' ' } -############## +# calculates the size in kilobytes of all the note files in a hierarchy. +# this is just a raw statistic for how much content all those notes make up. since +# we have not separated out all the to-dos in some files (most notably the metaverse +# backlogs and to-do lists), it's good to also know what kind of girth the notes have. +function calculate_weight() +{ + local dir="$1"; shift + find "$dir" -type f -exec echo \"{}\" ';' | grep -v "\.svn" | grep -v "\.git"| grep -v "\.basket" | grep -v "\.version" | grep -v "\.keep" | xargs ls -al | awk '{ print $5 }' | paste -sd+ | bc +} -# notes are individual files of tasks, usually, although some are combined. -note_depth=$(calculate_depth ~/cloud/grunty_notes) +# produces a report line in our format. +function format_report_line() +{ + local depth="$1"; shift + local weight="$1"; shift + weight=$((weight / 1024)) + echo " $depth\t${weight}kb\t$*\n" +} -# unsorted files haven't been categorized yet. -unsorted_depth=$(calculate_depth ~/cloud/unsorted) +# two parameters are needed: the directory to sum up and the label to use for it in the report. +# this will calculate the depth and weight for a hierarchy of notes, and then produce a +# line of reporting for those. +function analyze_hierarchy_and_report() +{ + local dir="$1"; shift + local label="$1"; shift + local depth=$(calculate_depth "$dir") + total_overload=$(($depth + $total_overload)) + local weight=$(calculate_weight "$dir") + total_weight=$(($total_weight + $weight)) + full_report+=$(format_report_line "$depth" "$weight" "$label") +} -# source examples need to be sucked into other places, other codebases. they are not -# supposed to pile up here. -source_example_depth=$(calculate_depth ~/cloud/example_source) +# scans through items in the notes folder that begin with a pattern. +# each of those is treated as an aggregable portion of the report. +# first parameter is the title in the report, second and so on are +# a list of directory patterns to scan and aggregate. +function analyze_by_dir_patterns() +{ + local title="$1"; shift + local hier_depth=0 + local hier_weight=0 + for i in $@; do + temp_depth=$(calculate_depth $i) + hier_depth=$(($hier_depth + $temp_depth)) + temp_weight=$(calculate_weight $i) + hier_weight=$(($hier_weight + $temp_weight)) + done + total_overload=$(($hier_depth + $total_overload)) + total_weight=$(($total_weight + $hier_weight)) + full_report+=$(format_report_line "$hier_depth" "$hier_weight" "$title") +} -# the list files are web documents with to-do lists. individual items are marked with
  • . -html_item_depth=$(find ~/cloud/grunty_notes/ -type f -iname "*.html" -exec grep ". +# we do this one a bit differently since we have different criteria for html to-do items. +html_item_depth=$(find ~/cloud/grunty_notes/ -type f -iname "*.html" -exec grep "