Cache last revision and speed up generation. - bitreich-memestats - Bitreich meme statistics and graphs.
 (HTM) git clone git://bitreich.org/bitreich-memestats git://hg6vgqziawt5s4dj.onion/bitreich-memestats
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
 (DIR) LICENSE
       ---
 (DIR) commit 726dbaf74c47d4260c83251a2145d780a5d15bc9
 (DIR) parent e082f9a06845793bcfa455df769420c1c926a85e
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Sun, 29 Aug 2021 20:42:49 +0200
       
       Cache last revision and speed up generation.
       
       Diffstat:
         M Makefile                            |       2 +-
         M extract-memecount.sh                |      31 +++++++++++++++++++++++++++----
       
       2 files changed, 28 insertions(+), 5 deletions(-)
       ---
 (DIR) 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
 (DIR) 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
       +