A dmenu calendar.

git clone git://watertao.xyz/programs/calcurse_dmenu.git

entries_expand_apts.awk (639B)


      1 #!/bin/awk
      2 function date_to_number(s){
      3 	return sprintf( "%s%s%s", substr(s,7,4), substr(s,1,2), substr(s,4,2) )
      4 }
      5 function number_to_date(s){
      6 	return sprintf( "%s/%s/%s", substr(s,5,2), substr(s,7,2), substr(s,1,4) )
      7 }
      8 {
      9 	# If not apt, skip to next record
     10 	if ( substr($0, 12, 1) != "@" ){ print $0; next }
     11 
     12 	# If apt range days match, skip and go to next
     13 	d1 = substr($0,1,10)
     14 	d2 = substr($0,23,10)
     15 	if (d1 == d2) { print $0; next }
     16 
     17 	d1 = date_to_number(d1)
     18 	d2 = date_to_number(d2)
     19 	day_total = d2 - d1 + 1
     20 	sub(/<[[:digit:]]+$/, "( "day_total" day apt ) &", $0)
     21 
     22 	for (i=d1; i<=d2; i++){
     23 		print number_to_date(i), substr($0,12)
     24 	}
     25 }