#!/bin/sh
# Nico Schottelius, 2010
# Copying: GPLv3
#
# Add the following line to your .netrc:
#  machine wiki.systems.ethz.ch login YOURLOGNIN password YOURPASSWORD
#

site='https://wiki.systems.ethz.ch/systems_utilisation?action=raw'

export year="$(date +%Y)"
export month="$(date +%m)"
export day="$(date +%d)"

# 
# get reservations
# get current date
# do not change reservations that
# 
#  a) are permanent
#  b) end in the future
#  c) are empty
# 
# for all other reservations: delete
# 
# Sample lines:
# || node1 || nicosc || 2010-04-12 - 2010-04-14 || Resevered for fun, past entry || SHARED ||
# || node2 || nicosc || 2010-04-12 - 2020-04-14 || Still Resevered || EXCLUSIVE ||
# || node3 || nicosc || 14-04-2020 || Resevered wrong || EXCLUSIVE ||
# || node4 || nicosc || 2010-04-12 || Resevered wrong || FOOBAR ||


# FS="||" does not work -> regexp operator
# FS="\|\|" does not work -> \ interpreted by shell?
# FS="\\|\\|" works  -> \\ converted to \ and \| passed to awk?

curl --silent --netrc ${site} | \
   awk 'BEGIN { FS="\\|\\|" } 
      { print "- " $1 "--" }

      $4 !~ /(permanent|time-frame|^ *$)/ { 

      orig = $0

      # Dateformat: YYYY-MM-DD - YYYY-MM-DD
      # Remove beginning date
      sub(/....-..-.. - /, "", $4)
      split($4, enddate, "-")
      year = enddate[1]
      month = enddate[2]
      day = enddate[3]

      cyear = ENVIRON["year"]
      cmonth = ENVIRON["month"]
      cday = ENVIRON["day"]

      if(year >= cyear && month >= cmonth && day >= cday) {
         print orig
      } else {
         print "|| " $2 " || || || || BOOKABLE ||"
      }

      print $2 ":" year cyear " " month " " day
   }
      # print unchangable lines
      $4 ~ /(permanent|time-frame|^ *$)/ { print $0 }
   '