Files
alpfiles/.local/bin/todo
2025-04-24 12:02:34 -07:00

46 lines
1019 B
Bash
Executable File

#!/bin/sh
TODO_FILE="$HOME/docs/todo/todo.txt"
ARCHIVE_FILE="$HOME/docs/todo/todo-archive.txt"
TODAY="$(date +%Y-%m-%d)"
case "$1" in
add)
shift
echo "($TODAY) $*" >> "$TODO_FILE"
echo "Added: ($TODAY) $*"
;;
la)
nl -w2 -s'. ' "$TODO_FILE"
;;
ls)
grep -v '^x ' "$TODO_FILE" | nl -w2 -s'. '
;;
done)
if [ -z "$2" ]; then
echo "Usage: $0 done <task-number>"
exit 1
fi
TASK=$(sed -n "${2}p" "$TODO_FILE")
[ -z "$TASK" ] && { echo "Invalid task number."; exit 1; }
sed -i "${2}s/^/x ($TODAY) /" "$TODO_FILE"
echo "Marked done: $TASK"
;;
archive)
grep '^x ' "$TODO_FILE" >> "$ARCHIVE_FILE"
sed -i '/^x /d' "$TODO_FILE"
echo "Archived completed tasks to $ARCHIVE_FILE"
;;
tags)
if [ -z "$2" ]; then
echo "Usage: $0 tags <+tag|@context>"
exit 1
fi
grep "$2" "$TODO_FILE" | grep -v '^x ' | nl -w2 -s'. '
;;
help|*)
echo "Usage: $0 {add <task> | list | done <number> | archive}"
;;
esac