- Added export-html.pl.
- Added error handling to export scripts.
This commit is contained in:
Paul Beckingham 2011-04-23 21:34:26 -04:00
parent 8a7f1e03c7
commit 10e3f306dd
7 changed files with 150 additions and 4 deletions

View file

@ -20,6 +20,7 @@
+ Now ships with an add-on script, update-holidays.pl, which contacts + Now ships with an add-on script, update-holidays.pl, which contacts
http://holidata.net, and brings the installed holiday files up to date. http://holidata.net, and brings the installed holiday files up to date.
+ Extension system now controlled by the 'extensions' configuration variable. + Extension system now controlled by the 'extensions' configuration variable.
+ HTML export in the form of an external scripts export-html.pl.
# Tracked Features, sorted by ID. # Tracked Features, sorted by ID.
+ Added feature #523 & #659, adding 'status' as a reportable field (thanks to + Added feature #523 & #659, adding 'status' as a reportable field (thanks to

1
NEWS
View file

@ -9,6 +9,7 @@ New Features in taskwarrior 2.0.0
filter's results. filter's results.
- Status attribute can now be used in report. - Status attribute can now be used in report.
- Project names may now contain spaces. - Project names may now contain spaces.
- New export-html.pl script.
Please refer to the ChangeLog file for full details. There are too many to Please refer to the ChangeLog file for full details. There are too many to
list here. list here.

View file

@ -28,10 +28,23 @@
use strict; use strict;
use warnings; use warnings;
use JSON;
# Give a nice error if the (non-standard) JSON module is not installed.
eval "use JSON";
if ($@)
{
print "Error: You need to install the JSON Perl module.\n";
exit 1;
}
# Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON # Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON
my $command = '/usr/local/bin/task _query ' . join (' ', @ARGV); my $command = '/usr/local/bin/task _query ' . join (' ', @ARGV);
if ($command =~ /No matches/)
{
print stderr $command;
exit 1;
}
# Generate output. # Generate output.
print "'uuid','status','tags','entry','start','due','recur','end','project',", print "'uuid','status','tags','entry','start','due','recur','end','project',",

92
scripts/add-ons/export-html.pl Executable file
View file

@ -0,0 +1,92 @@
#! /usr/bin/perl
################################################################################
## 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
##
################################################################################
use strict;
use warnings;
# Give a nice error if the (non-standard) JSON module is not installed.
eval "use JSON";
if ($@)
{
print "Error: You need to install the JSON Perl module.\n";
exit 1;
}
# Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON
my $command = '/usr/local/bin/task _query ' . join (' ', @ARGV);
if ($command =~ /No matches/)
{
print stderr $command;
exit 1;
}
# Generate output.
print "<html>\n",
" <body>\n",
" <table>\n",
" <thead>\n",
" <tr>\n",
" <td>ID</td>\n",
" <td>Pri</td>\n",
" <td>Description</td>\n",
" <td>Project</td>\n",
" <td>Due</td>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n";
my $count = 0;
for my $task (split /,$/ms, qx{$command})
{
++$count;
my $data = from_json ($task);
print " <tr>\n",
" <td>", ($data->{'id'} || ''), "</td>\n",
" <td>", ($data->{'priority'} || ''), "</td>\n",
" <td>", ($data->{'description'} || ''), "</td>\n",
" <td>", ($data->{'project'} || ''), "</td>\n",
" <td>", ($data->{'due'} || ''), "</td>\n",
" </tr>\n";
}
print " </tbody>\n",
" <tfooter>\n",
" <tr>\n",
" <td>", $count, " matching tasks</td>\n",
" </tr>\n",
" </tfooter>\n",
" </table>\n",
" </body>\n",
"</html>\n";
exit 0;
################################################################################

View file

@ -28,10 +28,23 @@
use strict; use strict;
use warnings; use warnings;
use JSON;
# Give a nice error if the (non-standard) JSON module is not installed.
eval "use JSON";
if ($@)
{
print "Error: You need to install the JSON Perl module.\n";
exit 1;
}
# Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON # Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON
my $command = '/usr/local/bin/task _query ' . join (' ', @ARGV); my $command = '/usr/local/bin/task _query ' . join (' ', @ARGV);
if ($command =~ /No matches/)
{
print stderr $command;
exit 1;
}
# Generate output. # Generate output.
print "BEGIN:VCALENDAR\n", print "BEGIN:VCALENDAR\n",

View file

@ -28,10 +28,23 @@
use strict; use strict;
use warnings; use warnings;
use JSON;
# Give a nice error if the (non-standard) JSON module is not installed.
eval "use JSON";
if ($@)
{
print "Error: You need to install the JSON Perl module.\n";
exit 1;
}
# Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON # Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON
my $command = '/usr/local/bin/task _query ' . join (' ', @ARGV); my $command = '/usr/local/bin/task _query ' . join (' ', @ARGV);
if ($command =~ /No matches/)
{
print stderr $command;
exit 1;
}
# Generate output. # Generate output.
print "<tasks>\n"; print "<tasks>\n";

View file

@ -28,10 +28,23 @@
use strict; use strict;
use warnings; use warnings;
use JSON;
# Give a nice error if the (non-standard) JSON module is not installed.
eval "use JSON";
if ($@)
{
print "Error: You need to install the JSON Perl module.\n";
exit 1;
}
# Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON # Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON
my $command = '/usr/local/bin/task _query ' . join (' ', @ARGV); my $command = '/usr/local/bin/task _query ' . join (' ', @ARGV);
if ($command =~ /No matches/)
{
print stderr $command;
exit 1;
}
# Generate output. # Generate output.
print "%YAML 1.1\n", print "%YAML 1.1\n",