bitreich-memestats

metrics and graphs for the bitreich meme collection
git clone git://src.adamsgaard.dk/bitreich-memestats # fast
git clone https://src.adamsgaard.dk/bitreich-memestats.git # slow
Log | Files | Refs | LICENSE Back to index

commit 726dbaf74c47d4260c83251a2145d780a5d15bc9
parent e082f9a06845793bcfa455df769420c1c926a85e
Author: Christoph Lohmann <20h@r-36.net>
Date:   Sun, 29 Aug 2021 20:42:49 +0200

Cache last revision and speed up generation.

Diffstat:
MMakefile | 2+-
Mextract-memecount.sh | 31+++++++++++++++++++++++++++----
2 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/Makefile b/Makefile @@ -17,7 +17,7 @@ memecount_semilog: plot-memecount.sh memecount.log # output format: date<tab>commit<tab>n_memes memecount.log: extract-memecount.sh - ./extract-memecount.sh $(ANNNA) > $@ + ./extract-memecount.sh $(ANNNA) $@ clean: rm -f media-stats diff --git a/extract-memecount.sh b/extract-memecount.sh @@ -1,16 +1,36 @@ #!/bin/sh # generate table of hashtag numbers over time -annnadir="${1:-$HOME/code/annna}" +if [ $# -lt 1 ]; +then + printf "usage: %s annnadir [memecount.log]\n" "$(basename "$0")" >&2 + exit 1 +fi + +annnadir="${1}" memefile="modules/hashtags/hashtags.txt" update_annna=yes -fromrevision="${2}" +outputfile="${2:-memecount.log}" +revisionrange="" if [ ! -e "${annnadir}/${memefile}" ]; then printf 'error: could not open %s\n' "${annnadir}/${memefile}" exit 1 fi +if [ -f "${outputfile}" ]; then + lastrevision="$(tail -n 1 "${outputfile}" | cut -f 2)" + revisionrange="${lastrevision}..HEAD" +fi + +case "${outputfile}" in +/*) + ;; +*) + outputfile="$(pwd)/${outputfile}" + ;; +esac + cd "$annnadir" if [ "$update_annna" = "yes" ]; then git pull >/dev/null 2>&1 @@ -19,7 +39,8 @@ fi headcommit="$(git rev-parse HEAD)" i=0 # derived from Hiltjo Posthuma's loc.sh -git log --pretty='format:%H %cd %at' --date="format:%Y-%m-%d" | \ +git log --pretty='format:%H %cd %at' --date="format:%Y-%m-%d" \ + "${revisionrange}" | \ sort -k 2 | uniq -f 1 | \ while read -r commit date timestamp; do @@ -52,8 +73,10 @@ git log --pretty='format:%H %cd %at' --date="format:%Y-%m-%d" | \ lastprintdate="$date" printf '%s\t%s\t%s\t%s\t%s\n' \ - "$date" "$commit" "$n" "$timestamp" "$dn_dt" + "$date" "$commit" "$n" "$timestamp" "$dn_dt" \ + >> "${outputfile}" fi fi done +