-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtodo.ksh
executable file
·82 lines (69 loc) · 1.39 KB
/
todo.ksh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/usr/bin/env ksh
TASKFILE=$HOME/.todo.txt
function newTask {
echo -n ">"
read task
echo T $task >> ${TASKFILE}
}
function listTasks {
echo "What kind of task would you like to see?"
echo "ToDo(T), Done(D), In Progress(I), or All(A)"
read taskType
case "$taskType" in
'T')
token='T'
;;
'D')
token='D'
;;
'I')
token='I'
;;
'A')
token='A'
awk 'gsub("^T", "<Todo>\t\t") gsub("^D", "<Done>\t\t") gsub("^I", "<In Progress>\t")' ${TASKFILE}|cat -n
;;
*)
token='Other'
;;
esac
#Process the file
if [ $token != "A" -a $token != "Other" ] ; then
grep -i "^${token}" ${TASKFILE}|cut -d "${token}" -f 2-|cat -n
fi
}
#Display user menu
function showMenu {
print "1. New Task\n2. Update Existing Task\n3. List Existing Tasks\n4. Quit\n"
read iMenuOption
echo $iMenuOption
if [ $iMenuOption -ne '4' ] ; then
getMenuOption
fi
return $iMenuOption
}
function getMenuOption {
case "$iMenuOption" in
'1')
echo "Please enter your new task"
newTask
;;
'2')
#Update Existing Task
echo "Not implemented yet"
;;
'3')
#echo "list tasks"
listTasks
;;
#'4')
# exit
# ;;
*)
echo "invalid option"
;;
esac
}
until [ $? -eq '4' ] ; do
showMenu
done