parent
043b32b680
commit
bd0a26f264
3 changed files with 68 additions and 1 deletions
@ -0,0 +1,60 @@ |
||||
#!/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 |
Loading…
Reference in new issue