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.
61 lines
750 B
61 lines
750 B
5 years ago
|
#!/usr/bin/env bash
|
||
|
|
||
|
# Simple todo list
|
||
|
|
||
|
FILE="$HOME/.todo"
|
||
|
|
||
|
function is_int() {
|
||
|
return $(test "$@" -eq "$@" > /dev/null 2>&1);
|
||
|
}
|
||
|
|
||
|
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
|
||
|
;;
|
||
|
*)
|
||
|
echo "Command $1 unknown"
|
||
|
exit 1
|
||
|
esac
|
||
|
done
|
||
|
else
|
||
|
list
|
||
|
fi
|
||
|
exit
|