taskwarrior/scripts/add-ons/export-xml.rb
Paul Beckingham 8b28b013c4 Export commands deprecated
- Provided examplars of export commands re-implemented using the new
  _query command.
- Implemented export-xml.pl, export-xml.py, export-xml.rb.
- Implemented export-csv.pl.
- Implemented export-yaml.pl.
- Implemented export-ical.pl.
2011-01-29 17:11:06 -05:00

67 lines
2 KiB
Ruby
Executable file

#! /usr/bin/ruby
################################################################################
## taskwarrior - a command line task list manager.
##
## Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
## All rights reserved.
##
## This program is free software; you can redistribute it and/or modify it under
## the terms of the GNU General Public License as published by the Free Software
## Foundation; either version 2 of the License, or (at your option) any later
## version.
##
## This program is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
## details.
##
## You should have received a copy of the GNU General Public License along with
## this program; if not, write to the
##
## Free Software Foundation, Inc.,
## 51 Franklin Street, Fifth Floor,
## Boston, MA
## 02110-1301
## USA
##
################################################################################
require 'rubygems'
require 'json'
# Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON
lines = IO.popen("/usr/local/bin/task _query " + ARGV.join(" ")).readlines
# Generate output.
print "<tasks>\n"
lines.each do |line|
data = JSON.parse(line)
print " <task>\n"
data.each do |key,value|
if key == "annotations"
print " <annotations>\n"
value.each do |anno|
print " <annotation>\n"
anno.each do |key,value|
print " <#{key}>#{value}</#{key}>\n"
end
print " </annotation>\n"
end
print " </annotations>\n"
elsif key == "tags"
print " <tags>\n"
value.each do |tag|
print " <tag>#{tag}</tag>\n"
end
print " </tags>\n"
else
print " <#{key}>#{value}</#{key}>\n"
end
end
print " </task>\n"
end
print "</tasks>\n"
exit 0
################################################################################