#!/usr/bin/env bash # Simple todo list FILE="$HOME/.todo" function is_int() { return $(test "$@" -eq "$@" > /dev/null 2>&1); } function help(){ echo "TODO" echo "====" echo "Simple todo list manager" echo "" ( echo "list|l List contents of to do list" echo "add|a \"Description\" Add an item to the todo list" echo "delete|del|d \"item id\" Delete an item from the todo list" ) | column -t -s' ' } function list(){ if [ -f "$FILE" ]; then awk '{printf("%5d : %s\n", NR,$0)}' "$FILE" else echo "$FILE does not exist" exit 1 fi } function add(){ echo "$@" >> "$FILE" } function delete(){ while [ -n "$1" ]; do if is_int "$1"; then sed -i "${1}d" "$FILE" fi shift done exit } if [ -n "$1" ]; then while [ -n "$1" ]; do case "$1" in "list"|"l") shift list "$@" exit 0 ;; "add"|"a") shift add "$@" exit 0 ;; "delete"|"del"|"d") shift delete "$@" exit 0 ;; "help"|"--help"|"-h") help exit 0 ;; *) echo "Command $1 unknown" exit 1 esac done else list fi exit