X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Fnotes%2Finfo_overload_report.sh;h=7dbd4fe8fbce4bf2d60826787e8e1c499f7b580c;hb=936edc460f256ba5ddba2ad1c80e8d278b9608cc;hp=d9275efa85a5513f3a00832dbd83519db507f93a;hpb=d18cd8304c44b5a0eb7e8d4399685a924c6f51fb;p=feisty_meow.git
diff --git a/scripts/notes/info_overload_report.sh b/scripts/notes/info_overload_report.sh
index d9275efa..7dbd4fe8 100644
--- a/scripts/notes/info_overload_report.sh
+++ b/scripts/notes/info_overload_report.sh
@@ -1,37 +1,126 @@
# these metrics are how bogged down we are in to-do type items.
-REPORT_FILE="$HOME/quartz/history_info_overload.txt"
+REPORT_FILE="$HOME/cloud/overload_history.txt"
-# notes are individual files of tasks, usually, although some are combined.
-note_depth=$(find ~/quartz/grunty_notes/ -type f -exec echo \"{}\" ';' | grep -v "\.svn" | grep -v "\.git" | wc -l | tr -d ' ')
+# given a path, this will find how many items are under it, ignoring svn and git files, plus
+# other patterns we happen to notice are not useful.
+function calculate_depth()
+{
+ local dir="$1"; shift
+ depth=$(find "$dir" -type f -exec echo \"{}\" ';' 2>/dev/null | grep -v "\.svn" | grep -v "\.git"| grep -v "\.basket" | grep -v "\.version" | grep -v "\.keep" | wc -l | tr -d ' ')
+ if [ -z "$depth" ]; then echo 0; else echo "$depth"; fi
+}
-# the list files are web documents with to-do lists. individual items are marked with
.
-item_depth=$(find ~/quartz/grunty_notes/ -type f -iname "*.html" -exec grep "/dev/null | grep -v "\.svn" | grep -v "\.git"| grep -v "\.basket" | grep -v "\.version" | grep -v "\.keep" | xargs ls -al | awk '{ print $5 }' | paste -sd+ | bc 2>/dev/null)
+ if [ -z "$weight" ]; then echo 0; else echo "$weight"; fi
+}
-# projects are slightly more productive, ongoing things that are very active.
-project_depth=$(find ~/quartz/projects/ -type f -exec echo \"{}\" ';' | grep -v "\.svn" | grep -v "\.git" | wc -l | tr -d ' ')
+# 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"
+}
-# source examples need to be sucked into other places, other codebases. they are not
-# supposed to pile up here.
-source_example_depth=$(find ~/quartz/example_source_code/ -type f -exec echo \"{}\" ';' | grep -v "\.svn" | grep -v "\.git" | wc -l | tr -d ' ')
+# 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")
+}
+
+# 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")
+}
+
+##############
-total_overload=$(($note_depth + $item_depth + $project_depth + $source_example_depth))
+# reset these before we add anything...
+total_overload=0
+total_weight=0
-report="\
+# start out the report with a header.
+full_report="\
\n\
Current information overload consists of:\n\
\n\
- $note_depth\tnote files\n\
- $item_depth\tto-do list items\n\
- $project_depth\tproject files\n\
- $source_example_depth\tsource examples\n\
- -------\n\
- $total_overload\ttotal items\n\
-\n\
-Gathered On: $(date)\n\
-\n\
+"
+
+# notes are individual files of tasks, usually, although some are combined.
+analyze_hierarchy_and_report ~/cloud/grunty_notes "grunty notes"
+
+####
+#hmmm: make an html todo scanning function from this.
+# scan web documents for to-do lists. individual items are marked with .
+# 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 "