You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

76 lines
1.1 KiB

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