Mokapop

novembre 7, 2010

Todoist cli

Filed under: Uncategorized — mokawi @ 3:56

Ceux qui me connaissent savent que sur mon ordinateur portable, j’ai une liste de choses à faire tout à fait périmée, puisque j’utilise maintenant todoist pour suivre mes projets. J’ai donc fait un petit script bash pour aller chercher mes « todos ». Attention: vous devez avoir iconv et curl d’installés, ainsi que json_xs, qui vient avec le paquet perl JSON::XS (que les distributions communes donnent donc généralement dans des paquets du genre « perl-json-xs »).

#!/bin/bash

logS=$(curl -s todoist.com/API/login?email=trucmuche@gmail.com\&password=lapatente)
tok=$(echo $logS|json_xs -t yaml|grep ^api_token|sed 's/^api_token: //')
id=$(echo $logS|json_xs -t yaml|grep ^id|sed 's/^id: //')
projls="$(curl -s todoist.com/API/getProjects?token=$tok|iconv -s -f l1 -t utf8|json_xs -t yaml|awk '/^ *id:/ { sub("^ *id: ?","");id=$0 } /^ *name:/ { sub("^ *name: ?","");print id, $0 }')"

pcount=$(echo "$projls"|wc -l)

for i in $(seq 1 $pcount); do

echo "$projls"|awk -v n=$i 'NR==n { sub($1 " ",""); print $0 }'| awk '{ a=$0; gsub(".","#",a); print "##" a "##"; print "# " $0 " #"; print "##" a "##" }'
curl -s todoist.com/API/getUncompletedItems?token=$tok\&project_id=$(echo "$projls"|awk -v n=$i -v q="'" 'NR==n { print $1 }')|iconv -s -f l1 -t utf8|json_xs -t yaml|awk '

/^ *content:/ {

sub("^ *content: ?\47?","")
sub("\47$","")
c=$0 }

/^ *indent:/ {

sub("^ *indent: ?","")
ind=""
for (i=1;i<=$1;i++) { ind=ind "   " }

}
/^ *date_string:/ { sub("^ *date_string: ?", ""); dd=$0 }
/^ *priority/ {

sub("^ *priority: ?","")
ps=""
p=$1
for (i=2;i<=p;p++) { ps=ps "!" }
print ind ps c "\t" dd

}
'|column -t -s"$(echo -e '\t')"

echo ""

done

Laissez un commentaire »

Aucun commentaire pour l’instant.

RSS feed for comments on this post. TrackBack URI

Laisser un commentaire

Créez un site Web ou un blog gratuitement sur WordPress.com.