#!/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
