aboutsummaryrefslogtreecommitdiff
path: root/timew-shell
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2024-08-20 20:42:35 -0300
committerSilvio Rhatto <rhatto@riseup.net>2024-08-20 20:42:35 -0300
commit3c5c672e47737e6b3342dfeb730ccd8320f2d442 (patch)
treed08d27539f244e640cf1e92ed0f259929fdf5d32 /timew-shell
downloadutils-organization-3c5c672e47737e6b3342dfeb730ccd8320f2d442.tar.gz
utils-organization-3c5c672e47737e6b3342dfeb730ccd8320f2d442.tar.bz2
Initial import
Diffstat (limited to 'timew-shell')
-rwxr-xr-xtimew-shell32
1 files changed, 32 insertions, 0 deletions
diff --git a/timew-shell b/timew-shell
new file mode 100755
index 0000000..2ebbf28
--- /dev/null
+++ b/timew-shell
@@ -0,0 +1,32 @@
+#!/bin/bash
+#
+# Timewarrior shell.
+#
+
+# 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"
+
+ 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