Guest
2012-08-01, 08:14 AM
Quote:
Originally Posted by drongo
How do I get it to show tasks that are in a certain Single-Action list, project or folder?
|
Single-Action holders with names containing the string "misc"
Code:
#!/bin/sh
#OFOC=$(osascript -e 'tell application "Finder" to get id of application file id "OFOC"')
OFOC="com.omnigroup.OmniFocus" # For Appstore-purchased variant use (slower) line above instead
echo "SAMPLE LISTING:"
sqlite3 $HOME/Library/Caches/$OFOC/OmniFocusDatabase2 '
SELECT f.name, p.name, c.name, tt.name
FROM (((task t left join projectinfo pi on t.containingprojectinfo=pi.pk) tt
left join task p on tt.task=p.persistentIdentifier)
left join context c on tt.context = c.persistentIdentifier)
left join folder f on tt.folder=f.persistentIdentifier
WHERE tt.dateCompleted is null and tt.containsSingletonActions=1 and p.name like "%misc%"
ORDER BY p.name, c.name' | awk '
BEGIN {FS="\|"; fld=0; prj=0; ctx=0;}
{
# Whenever the value of col. 1 changes,
# write it out as a FOLDER header,
if ( fld!=$1) { fld=$1; if (length( fld) < 1) {print "\n(No folder)"}
else {print "\n[Folder: " toupper( fld) "]"}};
# and whenever the value of col. 2 changes,
# write it out as a PROJECT header.
if (prj!=$2) {prj=$2; if (length(prj) < 1) {print "\n\t(INBOX)"}
else {print "\n\t" toupper(prj)}};
# Whenever the value of col. 3 changes,
# write it out as a [CONTEXT] sub-header.
if (ctx!=$3) {ctx=$3; if (length(ctx) > 0 && length($4) > 0) {print "\t[" ctx "]"}};
# and whenever col 4. contains sth other than the project name,
# write it out as a • TASK.
if (length($4) > 0 && $4!=$2) {print "\t• " $4}
}'
Last edited by RobTrew; 2012-08-01 at 12:37 PM..