aboutsummaryrefslogtreecommitdiff
path: root/timew-shell
blob: 4e00273ebf1c7e4fa85bbf951d25d0a446bcb370 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
#
# Timewarrior shell.
#

# Parameters
TIMEW_HISTORY="$HOME/.timew_history"

# Load history
if [ -e "$TIMEW_HISTORY" ]; then
  history -r $TIMEW_HISTORY
fi

# Shell
function timew_shell {
  local last_exit_code="0"

  # While a "quit" command isn't entered, read STDIN
  while read -rep "$last_exit_code timew> " STDIN; do
    history -s "$STDIN"
    history -a $TIMEW_HISTORY

    if [ "$STDIN" == "quit" ] || [ "$STDIN" == "exit" ] || [ "$STDIN" == "bye" ]; then
      break
    elif [[ -n "$STDIN" && "$STDIN" != "#"* ]]; then
      # If line is not empty or commented, process command
      STDIN=($STDIN)

      if [ "$STDIN" == "status" ] || [ "$STDIN" == "st" ]; then
        timew
      else
        timew ${STDIN[@]}
      fi

      last_exit_code="$?"
    fi
  done
}

# Dispatch
timew_shell