Added yad-todo for quick GUI entry

master
Steven Saus 3 years ago
parent 2f0295dfd9
commit 98bd38fa81
  1. 59
      yad-todo.sh

@ -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…
Cancel
Save