2013-03-01 23:33:48 +01:00
|
|
|
#!/bin/gawk -f
|
2013-05-04 12:37:42 +02:00
|
|
|
|
|
|
|
## This script convert Task Warrior pending.data file to an org-mode compatible
|
|
|
|
## format. WARNING: unpolished work. Use at your own risk!
|
2013-03-01 23:33:48 +01:00
|
|
|
|
|
|
|
BEGIN {
|
|
|
|
FS="\" "
|
|
|
|
|
|
|
|
tagsep=" "
|
|
|
|
project_empty="<none>"
|
|
|
|
|
|
|
|
prio_array["H"]="[#A]"
|
|
|
|
prio_array["M"]="[#B]"
|
|
|
|
prio_array["L"]="[#C]"
|
|
|
|
|
|
|
|
recur_array["yearly"]="+1y"
|
|
|
|
recur_array["monthly"]="+1m"
|
|
|
|
recur_array["weekly"]="+1w"
|
|
|
|
recur_array["daily"]="+1d"
|
|
|
|
}
|
|
|
|
|
|
|
|
{
|
|
|
|
gsub(/^\[|\]$/,"")
|
|
|
|
gsub(/:"/,":")
|
|
|
|
|
|
|
|
description=""
|
|
|
|
project=project_empty
|
|
|
|
annotation=""
|
|
|
|
start=""
|
|
|
|
priority=""
|
|
|
|
recur=""
|
|
|
|
due=""
|
|
|
|
tags=""
|
|
|
|
|
|
|
|
for (i = 1; i <= NF; i++)
|
|
|
|
{
|
|
|
|
split($i, a, ":")
|
|
|
|
|
|
|
|
if (a[1] ~ "^description$")
|
|
|
|
description=a[2] " "
|
|
|
|
else if (a[1] ~ "^project$")
|
|
|
|
project=a[2]
|
|
|
|
else if (a[1] ~ "^annotation")
|
|
|
|
annotation=annotation "\n " a[2]
|
|
|
|
else if (a[1] ~ "^priority$")
|
|
|
|
priority=prio_array[a[2]] " "
|
|
|
|
else if (a[1] ~ "^tags$")
|
|
|
|
tags=tagsep ":" a[2] ": "
|
|
|
|
else if (a[1] ~ "^start$")
|
|
|
|
start="TODO "
|
2013-05-04 12:37:42 +02:00
|
|
|
|
2013-03-01 23:33:48 +01:00
|
|
|
if (a[1] ~ "^recur$")
|
|
|
|
recur=" " recur_array[a[2]]
|
|
|
|
|
|
|
|
if (a[1] ~ "^due$")
|
|
|
|
due="<" strftime("%F",a[2])
|
|
|
|
|
|
|
|
delete a
|
|
|
|
}
|
|
|
|
|
|
|
|
## Close 'due' after loop in case 'recur' was encountered after 'due'.
|
|
|
|
if (due != "")
|
|
|
|
due = due recur "> "
|
|
|
|
|
|
|
|
result[project]= result[project] "\n** " start priority description due tags annotation
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
function capitalize(s) {
|
|
|
|
return toupper(substr(s,1,1)) tolower(substr(s,2))
|
|
|
|
}
|
|
|
|
|
|
|
|
END {
|
|
|
|
for ( var in result)
|
|
|
|
printf ("\n* %s%s\n", capitalize(var), result[var])
|
|
|
|
}
|