SICT AR Meeting Area CLI Script
Revision as of 17:00, 9 February 2019 by Chris Tyler (talk | contribs) (Created page with " == Script == This is a bash script to display the SICT AR Meeting Area bookings for a given day: #!/bin/bash # # Script to display bookings in the SICT AR Meeting Ar...")
Script
This is a bash script to display the SICT AR Meeting Area bookings for a given day:
#!/bin/bash # # Script to display bookings in the SICT AR Meeting Area # Give a datespec on the command line, or no args for today. # # CTyler 2015-05-13, updated after wiki move 2016-08-05 # updated with -w argument (week) 2017-01-30 # updated to SICT AR Meeting Area 2019-02-09 # function show_day() { cat $TEMPFILE| egrep "</?td|</?tr"|tr -d "\012"| sed "s|</tr><tr>|</tr>\n<tr>|g"| sed -n "s|<tr><td>$(date +%Y-%m-%d -d "$*") \([0-2][0-9]:[0-5][0-9]-[0-2][0-9]:[0-5][0-9]\)</td><td>\([^<]\+\)</td>.*$| \1 \2|p"| sort } function check_day() { date -d "$*" >&/dev/null return $? } function usage() { exec >&2 echo "Invalid dateSpecification." echo "Usage: $(basename $0) [-w] dateSpecification" echo "Where: dateSpecification is valid date (e.g., 2038-01-01 or Next Tuesday)" echo " -w causes a full week to be output." exit 1 } ROOMNAME="SICT AR Meeting Area" # traditional name trap "rm \$TEMPFILE" SIGHUP SIGINT EXIT TEMPFILE=$(mktemp) curl https://wiki.cdot.senecacollege.ca/wiki/SICT_AR_Meeting_Area 2>/dev/null >$TEMPFILE echo if [ "$1" == "-w" ] then shift if check_day "$*" then echo "${ROOMNAME} schedule for the week of $(date -d "$*" +%Y-%m-%d):" for X in {0..6} do echo date -d "$(( X - $(date +%w) )) day" +" %A:" show_day "$(date -d "$(date -d "$*") + $(( X - $(date +%w) )) day")" done else usage exit 1 fi else if check_day "$*" then echo "${ROOMNAME} schedule for $(date +%Y-%m-%d -d "$*"):" show_day "$@" else usage exit 1 fi fi echo
Usage Examples
To use this script, run it with no arguments for the current day, or specify a day:
meeting meeting tomorrow meeting yesterday meeting next friday meeting next week friday meeting last tuesday meeting may 15 meeting 2020-02-01 meeting june 7, 2025
You can also specify a -w
argument to see a week at a time:
meeting -w meeting -w next week meeting -w may 1
The data displayed is taken from the Meeting Room T1042 page on this wiki, and the date and times must be formatted correctly (YYYY-MM-DD HH:MM-HH:MM) to display.
Contribute
To contribute to development of this script, see the GitHub repository at https://github.com/Seneca-CDOT/t1042