# requires dateutils (https://www.fresse.org/dateutils/). 'unset -v LDFLAGS CXXFLAGS CFLAGS CPPFLAGS' required for compilation due to include folders and -Qunused-arguments # inefficient, ugly, slow mess nojack-tracker() { ddifffmat() { date -u -d @$(date "+%s" -d "$@") +"%Y-%m-%dT%H:%M:%S" ; } njhll() { if [ -a ~/nojack-history ] ; then tail -n 1 ~/nojack-history | tr -d '\n' ; fi ; } suffixeddate() { echo "$(< ~/nojack-date)" | xargs bash -c 'echo "${@:1:2}" "$3""$(case $3 in 1|21|31) echo "st";; 2|22) echo "nd";; 3|23) echo "rd";; *) echo "th";; esac)", "$4" @ "${@:5}"' argv0 ; } nojackdiff() { datediff "$(ddifffmat "$(< ~/nojack-date)")" "$(if [ "$1" == "now" ]; then echo -n "$1" ; else ddifffmat "$@" ; fi)" -f '%d %H %M' | xargs bash -c 'echo -n "${1#-} $(if [ "$1" -eq "1" ]; then echo -n "day" ; else echo -n "days" ; fi), $2 $(if [ "$2" -eq "1" ]; then echo -n "hour" ; else echo -n "hours" ; fi), $3 $(if [ "$3" -eq "1" ]; then echo -n "minute" ; else echo -n "minutes" ; fi)"' argv0 ; } if [ -z "$1" ]; then echo "Last served Satan, the NWO, perversion, degeneracy, sexual deviance, and dumb, repulsive, revolting, disgusting, filthy, evil cunt whores that are disgusted by you, that mock you, that hate you, that revel in the power they wield over you:" echo -n "$(nojackdiff now) ago" echo " ($(suffixeddate))" ; elif [ "$1" == "-set" ] && [ $# -gt 1 ]; then date +"%A, %B %e %Y %l:%M %P %Z" -d "$(echo "${@:2}")" | tr -d '\n' >~/nojack-date if [ -n "$(njhll)" ] ; then echo "(run lasted $(nojackdiff "$(njhll | cut -d' ' -f1-7)"))" | xargs bash -c 'echo "$(< ~/nojack-date)" "$@"' argv0 >> ~/nojack-history ; else echo "$(< ~/nojack-date)" >> ~/nojack-history ; fi chflags hidden ~/nojack-history ~/nojack-date echo "Date set to: $(suffixeddate) ($(nojackdiff now) ago)" ; elif [ "$1" == "-hist" ] && [ $# -eq 1 ]; then cat ~/nojack-history ; else echo $'Usage: nojack-tracker\n nojack-tracker -set [date]\n nojack-tracker -hist' fi unset -f ddifffmat njhll suffixeddate nojackdiff }