#!/usr/local/plan9/bin/rc # Parse time offset argument (e.g., +2d, -3h, +15m) offset=0 if(! ~ $#* 0) { arg=$1 # Extract components using awk sign=`{echo $arg | awk '{print substr($0,1,1)}'} num=`{echo $arg | awk '{s=substr($0,2); sub(/[a-z]$/,"",s); print s}'} unit=`{echo $arg | awk '{print substr($0,length($0))}'} # Calculate offset in seconds switch($unit) { case d offset=`{hoc -e 'int('$num' * 86400)'} case h offset=`{hoc -e 'int('$num' * 3600)'} case m offset=`{hoc -e 'int('$num' * 60)'} } # Apply sign if(~ $sign '-') { offset=`{hoc -e 'int(-1 * '$offset')'} } } # Calculate target timestamp epoch=`{date -n} targetepoch=`{hoc -e 'int('$epoch' + '$offset')'} # Get formatted date (e.g., "Wednesday 12 November 2025 22:11") datefull=`{date $targetepoch | awk ' BEGIN { m["Jan"]="January"; m["Feb"]="February"; m["Mar"]="March" m["Apr"]="April"; m["May"]="May"; m["Jun"]="June" m["Jul"]="July"; m["Aug"]="August"; m["Sep"]="September" m["Oct"]="October"; m["Nov"]="November"; m["Dec"]="December" d["Sun"]="Sunday"; d["Mon"]="Monday"; d["Tue"]="Tuesday" d["Wed"]="Wednesday"; d["Thu"]="Thursday"; d["Fri"]="Friday" d["Sat"]="Saturday" } { split($4, t, ":") print d[$1], $3, m[$2], $6, t[1]":"t[2] }'} # Extract date-only part (remove time) and convert to lowercase dateonly=`{echo $datefull | awk '{print tolower($1 " " $2 " " $3 " " $4)}'} # Apply filter - use full datetime if offset arg provided, date-only otherwise if(! ~ $#* 0) { # With offset: filter by full datetime for precise matching filterdate=`{echo $datefull | awk '{print tolower($0)}'} echo 'filter title:'''$"filterdate'''' | 9p write denote/ctl } if not echo 'filter title:'''$"dateonly'''' | 9p write denote/ctl # Check if there are any results results=`{9p read denote/index} # If no results, create new journal entry if(~ $#results 0) { echo '''journal/:'$"datefull''' journal' | 9p write denote/new } if not Denote 'denote:'$results(1) # Clear filter echo 'filter' | 9p write denote/ctl