adicione a linha abaixo no .bashrc
# To-Do List
export TODO="${HOME}/Documentos/todo.txt"
tla() { [ $# -eq 0 ] && cat $TODO || echo "$(echo $* | md5sum | cut -c 1-5) → $*" >> $TODO ;}
tlr() { [ $# -z ] 2>/dev/null && read -n1 -p "press ENTER to delete all tasks or CTRL+C to cancel" ; sed -i "/^$*/d" $TODO ;}
salve o arquivo e rode o comando
$ source .bashrc
para adicionar uma tarefa
$ tla 'texto'
para remover
$ tlr 'id'
para remover todas as tarefas
$ tlr
outra opção com numeração das linhas utilizando o nl
# To-Do List
export TODO="${HOME}/Documentos/todo.txt"
tla(){
if [ $# -eq 0 ]; then
echo "$(sed -i 's/^ *[0-9]\+.//g' $TODO ; nl -s " " $TODO )" > $TODO ; sed -i 's/^[ \t]*//' $TODO
cat $TODO
else
sed -i '/^[[:space:]]*$/d' $TODO ; echo "→ $*" >> $TODO ; echo "$(sed -i 's/^ *[0-9]\+.//g' $TODO ; nl -s " " $TODO )" > $TODO ; sed -i 's/^[ \t]*//' $TODO
fi
}
tlr() { [ $# -eq 0 ] 2>/dev/null && read -n1 -p "press ENTER to delete all tasks or CTRL+C to cancel" ; sed -i "/^$*/d" $TODO ;}
alternativa
caso não queira utilizar o md5sum ou nl para gerar o id utilize
tla() { [ $# -eq 0 ] && cat $TODO || echo "$(echo $* | cat
/dev/urandom | tr -dc '0-9a-zA-Z' | fold -w 5 | head -n 1)
→ $*" >> $TODO ;}
OBS: caso queira enviar a lista de afazeres para um e-mail fiz essa alternativa
adicione as linhas abaixo no .bashrc
export TODO_BACKUP="${HOME}/Documentos/todo_backup.txt"
tlb() { read -sp "Enter your Google App password : " password ; echo 'From: "username" <email@gmail.com>' >> "${TODO_BACKUP}" ; echo 'To: "user" <email@receiver.com>' >> "${TODO_BACKUP}" ; echo 'Subject: To-Do List' >> "${TODO_BACKUP}" ; echo >> "${TODO_BACKUP}" ; cat "${TODO}" >> "${TODO_BACKUP}" ; echo "" >> "${TODO_BACKUP}" ; curl --ssl-reqd --url 'smtps://smtp.gmail.com:465' --user 'username@gmail.com:'"${password}"'' --mail-from 'username@gmail.com' --mail-rcpt 'email@receiver.com' --upload-file ''"${TODO_BACKUP}"'' ; rm -r "${TODO_BACKUP}" ; unset password ;}
após configurar a função tlb com seu email de envio e recebimento, execute o comando
$ source .bashrc
OBS: lembrando que não é necessário configurar o password, justamente por
isso coloquei o read para pegar ele e o unset para resetar a variável
lembrando que é necessario autorizar o google a utilizar o curl
site 1: https://www.google.com/settings/security/lesssecureapps
site 2: https://accounts.google.com/DisplayUnlockCaptcha
após configurar, para enviar a lista para email é simples
$ tlb
OBS 2:
o comando tlr deleta os arquivos se o usuario apertar qualquer tecla, para resolver isso use o tlr abaixo
tlr(){ read -p "Yes to delete all tasks No to cancel: " answer
case ${answer:0:1} in
y|Y )
sed -i "/^$*/d" $TODO
;;
* )
echo
;;
esac
}