mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-08-19 00:43:07 +02:00
Export
- Added export-html.pl. - Added error handling to export scripts.
This commit is contained in:
parent
8a7f1e03c7
commit
10e3f306dd
7 changed files with 150 additions and 4 deletions
|
@ -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
1
NEWS
|
@ -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.
|
||||||
|
|
|
@ -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
92
scripts/add-ons/export-html.pl
Executable 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;
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue