Changes

Jump to: navigation, search

SICT AR Meeting Area CLI Script

2,763 bytes added, 18:00, 9 February 2019
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 <code>-w</code> 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

<!-- THE CODE BELOW MAY PREVENT LINES FROM APPEARING IF THEY HAVE UNLINKED OR MISSING CONTACT DATA -- *FIXME*

If interested in the contact person as well, replace the last sed line with
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>.*>\([^<]\+\)</a>.*$| \1 \2 \t \3 |p"|

-->

Navigation menu