parent
2f0295dfd9
commit
98bd38fa81
@ -0,0 +1,59 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
######################################################################## |
||||||
|
# Using YAD to make a quick todo-txt entry GUI |
||||||
|
# by Steven Saus (c)2021 |
||||||
|
# Licensed under the MIT license |
||||||
|
# |
||||||
|
# First argument is the path to todo.txt if it's not already exported |
||||||
|
# as TODO_FILE. Simply designed for quick entry. |
||||||
|
# |
||||||
|
######################################################################## |
||||||
|
|
||||||
|
ToDoTxtFile="$1" |
||||||
|
|
||||||
|
if [ ! -f "${ToDoTxtFile}" ];then |
||||||
|
if [ -f "$TODO_FILE" ];then |
||||||
|
ToDoTxtFile="$TODO_FILE" |
||||||
|
else |
||||||
|
exit 99 |
||||||
|
fi |
||||||
|
fi |
||||||
|
|
||||||
|
projects=$(cat "$ToDoTxtFile" | grep -e '\+' | awk -F '+' '{print $2}' | awk '{print $1}' | sort | uniq | tr '\n' '!' | sed 's/!/\\!/g') |
||||||
|
contexts=$(cat "$ToDoTxtFile" | grep -e '\@' | awk -F '@' '{print $2}' | awk '{print $1}' | sort | uniq | tr '\n' '!' | sed 's/!/\\!/g') |
||||||
|
projects=$(echo " \!${projects::-2}") |
||||||
|
contexts=$(echo " \!${contexts::-2}") |
||||||
|
priority=" \!A\!B\!C\!D\!E\!F\!G\!H\!I\!J\!K\!L\!M\!N\!O\!P\!Q\!R\!S\!T\!U\!V\!W\!X\!Y\!Z" |
||||||
|
blankentry=" \!" |
||||||
|
|
||||||
|
OutString=$(yad --form --date-format="%Y:%m:%d" --width=400 --center --window-icon=gtk-info --borders 3 --field="Task" New_Task --field="Context:CBE" ${contexts} --field="Project:CBE" ${projects} --field="Priority:CBE" ${priority} --field="Due Date::DT" ) |
||||||
|
|
||||||
|
|
||||||
|
NewTask=$(echo "$OutString" | awk -F '|' '{print $1}') |
||||||
|
if [ "$NewTask" == "New_Task" ];then |
||||||
|
echo "Task not edited; exiting" |
||||||
|
exit 88 |
||||||
|
fi |
||||||
|
if [ "$NewTask" == "" ];then |
||||||
|
echo "Empty task; exiting" |
||||||
|
exit 88 |
||||||
|
fi |
||||||
|
|
||||||
|
NewContext=$(echo "$OutString" | awk -F '|' '{print $2}') |
||||||
|
if [ "$NewContext" != "" ];then |
||||||
|
NewContext=$(echo "@$NewContext") |
||||||
|
fi |
||||||
|
NewProject=$(echo "$OutString" | awk -F '|' '{print $3}') |
||||||
|
if [ "$NewProject" != "" ];then |
||||||
|
NewProject=$(echo "+$NewProject") |
||||||
|
fi |
||||||
|
NewPriority=$(echo "$OutString" | awk -F '|' '{print $4}') |
||||||
|
echo "$NewPriority" |
||||||
|
if [ "$NewPriority" != "" ];then |
||||||
|
NewPriority=$(echo "($NewPriority)") |
||||||
|
fi |
||||||
|
NewDate=$(echo "$OutString" | awk -F '|' '{print $5}') |
||||||
|
|
||||||
|
TaskString=$(printf "/usr/bin/todo-txt add \"%s %s %s %s %s\"" "$NewTask" "$NewContext" "$NewProject" "$NewPriority" "$NewDate") |
||||||
|
echo "$TaskString" |
Loading…
Reference in new issue