By Andrew McCombe
July 31, 2009
At work we keep track of work and time by using a web-based timesheet system. This requires employees to update their online timesheet on a daily basis.
Some of the Linux users use a text file to update the timesheet (via a python script written by a colleague) but there still remains the problem of remembering to update the text file when completing a job.
I have written a small bash script that uses Zenity to prompt me for information and then write it to my log file.
Here is the script:
export DISPLAY=:0.0 THETIME=`date +%H:%M` THEDATE=`date +%Y-%m-%d` LOG='~/bin/logs/'`date +%Y`'/'`date +%b`'/'`date +%d`'.txt' LOGFILE=`echo $LOG | tr "[:upper:]" "[:lower:]"` TEXT=`zenity --entry --title="Timesheet Update" --text="$THETIME: What are you working on?" --entry-text ""` # check if logfile exists and if not, create it if [ ! -f $LOGFILE ]; then touch $LOGFILE; echo "$THEDATE:" >> $LOGFILE; fi case $? in 0) echo "$THETIME - $TEXT" >> $LOGFILE;; 1) echo "Nothing Added.";; -1) echo "Nothing Added.";; esac
I set up a cron to run this script every 30 minutes during working hours.
At the end of the day I open the timesheet file, format it and send it to the python script to update my log. Simple.