Difference between revisions of "T1042 CLI Script"
Chris Tyler (talk | contribs) |
Chris Tyler (talk | contribs) (Redirected page to SICT AR Meeting Area CLI Script) |
||
(10 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | |||
+ | #REDIRECT [[SICT AR Meeting Area CLI Script]] | ||
+ | |||
+ | == Script == | ||
+ | |||
This is a bash script to display the t1042 bookings for a given day: | This is a bash script to display the t1042 bookings for a given day: | ||
#!/bin/bash | #!/bin/bash | ||
# | # | ||
− | # Script to display | + | # Script to display bookings in T1042/DB1042 |
+ | # Give a datespec on the command line, or no args for today. | ||
# | # | ||
− | # CTyler 2015-05-13 | + | # CTyler 2015-05-13, updated after wiki move 2016-08-05 |
+ | # updated with -w argument (week) 2017-01-30 | ||
# | # | ||
− | echo "T1042 schedule for $(date +%Y-%m-%d -d "$*"):" | + | 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 | ||
+ | } | ||
+ | |||
+ | if grep -qi t1042 <<<$0 | ||
+ | then | ||
+ | ROOMNAME="T1042" # traditional name | ||
+ | else | ||
+ | ROOMNAME="DB1042" # new name | ||
+ | fi | ||
+ | |||
+ | trap "rm \$TEMPFILE" SIGHUP SIGINT EXIT | ||
+ | |||
+ | TEMPFILE=$(mktemp) | ||
+ | curl https://wiki.cdot.senecacollege.ca/wiki/Meeting_Room_T1042 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: | To use this script, run it with no arguments for the current day, or specify a day: | ||
Line 25: | Line 93: | ||
t1042 last tuesday | t1042 last tuesday | ||
t1042 may 15 | t1042 may 15 | ||
− | t1042 | + | t1042 2020-02-01 |
− | t1042 june 7, | + | t1042 june 7, 2025 |
+ | |||
+ | You can also specify a <code>-w</code> argument to see a week at a time: | ||
+ | |||
+ | t1042 -w | ||
+ | t1042 -w next week | ||
+ | t1042 -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. | 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"| | ||
+ | |||
+ | --> |
Latest revision as of 20:10, 9 February 2019
Redirect to:
Script
This is a bash script to display the t1042 bookings for a given day:
#!/bin/bash # # Script to display bookings in T1042/DB1042 # 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 # 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 } if grep -qi t1042 <<<$0 then ROOMNAME="T1042" # traditional name else ROOMNAME="DB1042" # new name fi trap "rm \$TEMPFILE" SIGHUP SIGINT EXIT TEMPFILE=$(mktemp) curl https://wiki.cdot.senecacollege.ca/wiki/Meeting_Room_T1042 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:
t1042 t1042 tomorrow t1042 yesterday t1042 next friday t1042 next week friday t1042 last tuesday t1042 may 15 t1042 2020-02-01 t1042 june 7, 2025
You can also specify a -w
argument to see a week at a time:
t1042 -w t1042 -w next week t1042 -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