Repository navigation
Expand file tree
/
Copy pathmytask
More file actions
executable file
·146 lines (127 loc) · 2.32 KB
/
Copy pathmytask
File metadata and controls
executable file
·146 lines (127 loc) · 2.32 KB
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#!/bin/sh
# written by Shotaro Fujimoto (https://github.com/ssh0)
#=#=#=
# ```
# NAME
# mytask - start my current tasks easily.
#
# USAGE
# mytask [option] [start|add|remove|list] [cmdoption]
#
# OPTION
# -h: Show this help message.
#
# COMMAND
# start Execute the taskset.
# add Add new taskset.
# edit Edit the existing taskset.
# remove Remove a taskset.
# list List all existing taskset.
# ```
#=#=
# mytaskroot=$HOME/.mytask
# taskset="$mytaskroot"/taskset
mytaskroot=$HOME/Workspace/.mytask
taskset="$mytaskroot"/taskset
if [ ! -d "$taskset" ]; then
mkdir -p "$taskset"
fi
f="$0"
usage() {
sed -n '/^#=#=#=/,/^#=#=/p' $f | sed -e '1d;$d' | cut -b3- | grep -v "\`\`\`"
exit 1
}
startmytask() {
taskname="$1"
if [ -f "$taskset/$taskname" ]; then
bash "$taskset/$taskname"
else
echo "$taskname doesn't exist."
usage
fi
}
settaskname() {
if [ ! "$taskname" = "" ]; then
return 0
fi
echo -n "Set the task name: "
read line
while [ "$line" = "" ]; do
echo "You must set the task name."
echo -n "Set the task name: "
read line
done
taskname="$line"
}
addmytask() {
taskname=""
if [ -f "$1" ]; then
taskname=$1
fi
while getopts o: OPT
do
case $OPT in
"o" ) taskname="${OPTARG}" ;;
esac
done
shift $((OPTIND-1))
settaskname "$taskname"
if [ "$1" = '' ]; then
$EDITOR "$taskset/$taskname"
elif [ -e "$1" ]; then
cp "$1" "$taskset/$taskname"
else
echo "$@" > "$taskset/$taskname"
fi
echo "$taskname added."
}
iftaskexist() {
if [ -f "$taskset/$1" ]; then
return 0
else
return 1
fi
}
editmytask() {
iftaskexist "$1" && $EDITOR "$taskset/$1"
}
removemytask() {
iftaskexist "$1" && rm "$taskset/$1"
echo "removed $taskset/$1"
}
listmytask() {
ls "$taskset"
}
# option handling
while getopts hH OPT
do
case $OPT in
"h" ) usage ;;
"H" ) usage_all "$f"; exit 0 ;;
esac
done
# two arguments must be taken
shift $((OPTIND-1))
if [ $# = 0 ];then
usage
fi
case $1 in
start)
shift 1
startmytask "$@" ;;
add)
shift 1
addmytask "$@" ;;
edit)
shift 1
editmytask "$@" ;;
remove)
shift 1
removemytask "$@" ;;
list)
shift 1
listmytask "$@" ;;
*)
echo "$1 is not defined for subcommand."
usage ;;
esac