tmakefile - hashcrush - Compute Argon2id hashes
 (HTM) git clone git://git.z3bra.org/hashcrush.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
       tmakefile (1134B)
       ---
            1 include config.mk
            2 
            3 NPROC    != type nproc>/dev/null && nproc || sysctl -n hw.ncpu
            4 SEQ      != type seq>/dev/null && seq 0 $$((${NPROC} - 1)) || jot ${NPROC} 0
            5 CPU      != for n in ${SEQ}; do printf '.cpu%02d\n' $$n; done
            6 
            7 .PHONY: $(CPU:%=%.rec)
            8 
            9 all: ${OUTFILE}
           10 
           11 ${OUTFILE}:
           12         @printf 'HASHDUMP > %s\n' $(CPU:%=%.rec)
           13         @trap 'cat $(CPU:%=%.rec) > $@' EXIT TERM INT; \
           14         make -j${NPROC} $(CPU:%=%.rec) > $@
           15         @printf 'cat %s > %s\n' "$(CPU:%=%.rec)" "$@"
           16 
           17 $(CPU:%=%.rec): ${DICT} tools/hashgen
           18         while :; do ./tools/diceware -c ${WORDCOUNT} -f ${DICT} || exit; done \
           19                 | head -n $$((${COUNT}/${NPROC})) \
           20                 | awk '(NR%2){print toupper(substr($$0,1,1))substr($$0,2);} !(NR%2){print toupper($$0);}' \
           21                 | ./tools/hashdump > $@
           22         
           23 tools/hashgen:
           24         make -C hashgen
           25         mv hashgen/hashgen tools/hashgen
           26 
           27 ${DICT}:
           28         curl -sSfL "${WORDLIST}" | grep -E '^[1-6]{5}' | sed "s/ /\t/;s/['\"]/\\\\&/" > $@
           29 
           30 dist:
           31         make distclean
           32         mkdir rainbow
           33         rsync -a README config.mk makefile hashgen tools rainbow/
           34         tar -cj -f rainbow.tbz rainbow
           35         rm -rf rainbow
           36 
           37 clean:
           38         rm -f hashes.rec .cpu*.rec
           39 
           40 distclean:
           41         rm -f .cpu* ${OUTFILE} ${DICT} rainbow.tbz tools/hashgen