file
This commit is contained in:
parent
b441b5d44e
commit
04761378d2
111
main.sh
Executable file
111
main.sh
Executable file
@ -0,0 +1,111 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 注册到全局命令(临时)
|
||||||
|
# alias todo="sh ~/Desktop/automation/todo.sh"
|
||||||
|
# 注册到全局命令(永久)
|
||||||
|
# echo 'alias todo="sh ~/Desktop/automation/todo.sh"' >> ~/.bashrc
|
||||||
|
# source ~/.bashrc
|
||||||
|
|
||||||
|
|
||||||
|
# 正则检查文件中所有 TODO 的行
|
||||||
|
function search_todo() {
|
||||||
|
grep "^.*#TODO:" $file
|
||||||
|
}
|
||||||
|
|
||||||
|
function ergodic() {
|
||||||
|
for file in `ls $1`
|
||||||
|
do
|
||||||
|
if [ -d $1"/"$file ]
|
||||||
|
then
|
||||||
|
ergodic $1"/"$file
|
||||||
|
else
|
||||||
|
echo "$file"
|
||||||
|
# 获取文件后缀, 仅检查支持的后缀类型
|
||||||
|
search_todo $1"/"$file
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function show() {
|
||||||
|
# 展示读取的列表
|
||||||
|
# 取用状态/完成未完成
|
||||||
|
# 按照序列操作
|
||||||
|
if [ -d '~/.todo/' ]; then
|
||||||
|
echo "todo init"
|
||||||
|
mkdir ~/.todo/
|
||||||
|
touch "~/.todo/main.md"
|
||||||
|
fi
|
||||||
|
loop=1
|
||||||
|
cat ~/.todo/main.md | while read line
|
||||||
|
do
|
||||||
|
echo -e "\e[2m $loop) $line \e[0m"
|
||||||
|
#echo -e “Default \e[39mDefault”
|
||||||
|
#echo -e "\e[1;32m Green \e[0m"
|
||||||
|
loop=`expr $loop + 1`
|
||||||
|
done
|
||||||
|
# 列出当前目录下排除git之后的所有可识别后缀的文件中的注释TODO
|
||||||
|
# 选中TODO时使用工具打开并跳到指定行
|
||||||
|
# echo -e "\e[1;32m Green \e[0m"
|
||||||
|
|
||||||
|
# 打印指定目录的最后修改时间
|
||||||
|
FILE_NAME='.'
|
||||||
|
LAST_MODIFY_TIMESTAMP=`stat -c %Y $FILE_NAME`
|
||||||
|
echo `date '+%Y-%m-%d %H:%M:%S' -d @$LAST_MODIFY_TIMESTAMP`
|
||||||
|
|
||||||
|
# 扫描目录中支持的文件格式, 并排除 .gitignore 列举的目录
|
||||||
|
ergodic "."
|
||||||
|
}
|
||||||
|
|
||||||
|
#TODO: 加入目录命令, 使之检查目录最后一次更改
|
||||||
|
#TODO: 如果目录中包含已加入的目录, 则合并
|
||||||
|
#TODO: 如果目录中包含 .gitignore 则排除其列举的文件
|
||||||
|
#TODO: 通过检查目录的最后更改状态, 避免大量文件的反复检查
|
||||||
|
#TODO: 每个超出记录时间后更新的文件, 都要被重新索引TODO
|
||||||
|
#TODO: 索引精确到行, 且按照各类文件支持不同格式的注释
|
||||||
|
#TODO: 可能存在编码格式问题
|
||||||
|
#TODO: 每次显示都从缓存, 如果时解压来的文件夹, 其时间并不被公信, 其不应该存在TODO
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
"" | list)
|
||||||
|
show
|
||||||
|
;;
|
||||||
|
add | create)
|
||||||
|
if [ -d '~/.todo/' ]; then
|
||||||
|
echo "todo init"
|
||||||
|
mkdir ~/.todo/
|
||||||
|
fi
|
||||||
|
echo $2 >> ~/.todo/main.md
|
||||||
|
show
|
||||||
|
;;
|
||||||
|
rm | del | remove | delete)
|
||||||
|
for i in $*
|
||||||
|
do
|
||||||
|
case $i in
|
||||||
|
[0-9]*)
|
||||||
|
sed -i "${2}d" ~/.todo/main.md
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
show
|
||||||
|
;;
|
||||||
|
[0-9]*)
|
||||||
|
sed -n "${1}p" ~/.todo/main.md
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
cat <<-EOF
|
||||||
|
**************************
|
||||||
|
TODO version 0.1
|
||||||
|
**************************
|
||||||
|
1) Add
|
||||||
|
2) Delete
|
||||||
|
3) Copy
|
||||||
|
4) Exit
|
||||||
|
**************************
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user