Mercurial > getan
view contrib/wochenbericht @ 151:1e35c24708dd
Allow to configure the action keys
Use new config and keybinding classes to allow to configure the action keys in
the states. This change decouples the actual action keys from the state
transtitions.
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Thu, 06 Dec 2012 12:30:27 +0100 |
parents | 4de86feae6ac |
children |
line wrap: on
line source
#!/bin/bash # # wochenbericht # ------------- # (c) 2008 by Sascha L. Teichmann # Little script to summarize times within a given week. # usage: # ./wochenbericht [<week of year>] [<getan database file>] # week defaults to current week, database to time.db # # This is Free Software in terms of GPLv3 or later. See # LICENSE coming with getan for details. # usage() { cat <<EOF usage: ./wochenbericht [<week of year>] [<year>] [<getan database file>] <week of year> defaults to current week <year> defaults to current year <getan database file> defaults to time.db EOF exit 1 } if [ "$1" == "--help" -o "$1" == "-h" ]; then usage fi if [[ "$1" -eq "" ]]; then WEEK=`date +'%W'` # remove hash below if you want previous week #WEEK=`expr ${WEEK} '-' 1 '|' 52` else WEEK=$1 fi if [[ "$2" -eq "" ]]; then YEAR=`date +'%Y'` else YEAR=$2 fi TIME_DB=${3:-time.db} if [ ! -f ${TIME_DB} ]; then echo "error: Database file ${TIME_DB} does not exist." usage fi sqlite3 ${TIME_DB} " SELECT coalesce(description, 'Verschiedenes'), total FROM projects INNER JOIN ( SELECT project_id, sum(strftime('%s', stop_time) - strftime('%s', start_time)) AS total FROM entries WHERE (strftime('%W', start_time) = '${WEEK}' AND strftime('%Y', start_time) = '${YEAR}') OR (strftime('%W', stop_time) = '${WEEK}' AND strftime('%Y', stop_time) = '${YEAR}') GROUP BY project_id ) ON id = project_id WHERE active; " | awk ' function human_time(t) { h = int(t / 3600) m = int((t % 3600)/60.0 + 0.5) while (m >= 60) { ++h; m -= 60 } return sprintf("%2d:%02dh", h, m) } BEGIN { FS="|"; sum = 0 } { sum += $2 printf("%s: %s\n", human_time($2), $1) } END { printf("%s: Gesamt\n", human_time(sum)) } '