#!/usr/bin/env bash # Usage: recit entries [-p project-name] [-t time|today|yesterday|tomorrow] # Summary: Display entries, optionally for a Project and/or a certain time set -e project="" query_time="" recfile=$(recit-file) while getopts "p:t:" options; do case "${options}" in p) project=${OPTARG} ;; t) query_time=${OPTARG} ;; :) echo "Error: -${OPTARG} requires an argument." exit 1 ;; *) exit 1 ;; esac done expression="" if ! [[ "$query_time" = "" ]]; then if [[ "$query_time" = "today" ]]; then fmt_date=$(date '+%Y-%m-%d') elif [[ "$query_time" = "tomorrow" ]]; then fmt_date=$(perl -e "use POSIX qw(strftime); print strftime('%Y-%m-%d', localtime(time + 86400)), qq(\n);") elif [[ "$query_time" = "yesterday" ]]; then fmt_date=$(perl -e "use POSIX qw(strftime); print strftime('%Y-%m-%d', localtime(time - 86400)), qq(\n);") else fmt_date=$query_time fi expression="((Time >> '$fmt_date 00:00:00' && Time << '$fmt_date 23:59:59') || Time == '$fmt_date')" fi if ! [[ "$project" = "" ]]; then if recsel -t Project -p Id ${recfile} | grep "$project" > /dev/null; then if [[ "$expression" = "" ]]; then expression="ProjectRef = '$project'" else expression+=" && ProjectRef = '$project'" fi else echo "$project not found, list of available projects:" recit-recsel-projects exit 1 fi fi recit-recsel-entries "$expression"