Compare commits

..

1832 Commits

Author SHA1 Message Date
Federico Hernandez
05f7948f7e Version number and release date for 2.2.0 2013-04-07 22:11:26 +02:00
Paul Beckingham
daae1749bc L10N
- Removed unnecessary es-ES.h entries for STRING_COLUMN_LABEL_FG and
  STRING_COLUMN_LABEL_BG that have been deprecated (thank to Wim Schuermann).
2013-04-07 13:56:07 -04:00
Fidel Mato
dbabeef54c Typo in several tips.something files: 'task edit 1' changed to 'task 1 edit'. 2013-04-07 12:56:35 -04:00
Fidel Mato
d1cac8c958 L10N
- Translated STRING_LABEL_COLUMN_MOD .
2013-04-07 09:52:18 -04:00
Paul Beckingham
66996b5eab L10N
- Added tips.es-ES (thanks to Fidel Mato).
2013-04-07 09:51:37 -04:00
Russell Steicke
51fd11a535 Adjust performance script for POSIX /bin/sh.
- Don't use brace expansion.
- Add the -f flag so we don't get errors on the first run.

Signed-Off-By: Russell Steicke <russells@adelie.cx>
2013-04-03 17:35:47 -04:00
YBSAR
be7628449a Added French translation of the tips file. 2013-04-03 17:34:36 -04:00
Paul Beckingham
2b8cb3e251 Bug
- Fixed a bug so that the report filter order is preserved, to enable an
  optimization that was being skipped.
2013-04-02 17:41:13 -04:00
Paul Beckingham
f420fb434e Code Cleanup
- Removed unused L10N string.
2013-04-02 16:35:18 -04:00
Federico Hernandez
d99e0db108 cmake
- removed the obsolete extensions directory from the
  install target
2013-04-02 22:18:17 +02:00
Federico Hernandez
7db5377d3b Removed the incomplete support for the Lua extensions. 2013-04-02 21:52:13 +02:00
Federico Hernandez
c7df1f7acc Bumping to 2.2.0.beta3 2013-04-02 17:51:06 +02:00
Fidel Mato
3cfd57b46f L10N
- Translated STRING_VIEW_TOO_SMALL .
2013-04-02 06:43:11 -04:00
Paul Beckingham
7e4adbc091 Build Warnings
- Eliminated a build warning.
2013-04-01 21:05:50 -04:00
Paul Beckingham
656e350291 Date Formatting
- Some bad inefficiencies in date formatting were noticed, and when addressed,
  caused a bug to surface.  The length of a formatted date can be calculated
  from the dateformat, but was done incorrectly.  Very, very incorrectly.
- Added unit tests.
- Promoted date column-specific "countdown" size measurements up to the ColDate
  base class.  This neatly falls out from work on #1218.
- Noted a potential I18N problem in Date.cpp.
2013-04-01 20:01:54 -04:00
Paul Beckingham
d895c4a249 Bug #1218
- Fixed bug #1218 so that description columns minimum width is calculated
  correctly.
2013-04-01 18:07:25 -04:00
Paul Beckingham
d14a9cacec Text Formatting
- Added a format overload for three integers.
2013-04-01 15:50:16 -04:00
Paul Beckingham
1de2f9e6f1 Virtual Tag
- Added 'ANNOTATED' virtual tag.  This fell out of a change mandated by #1218.
2013-04-01 15:47:51 -04:00
Paul Beckingham
6824fb1527 Doc, Unit Tests
- Updated DEVELOPER file to be accurate once 2.2.0 is released.
- Added unit test for utf8_codepoint.  The tests have been siting there for a
  while, and may as well be committed.  Low risk.
2013-03-31 17:30:43 -04:00
Federico Hernandez
baeee7566d Bumping to 2.2.0.beta2 2013-03-31 14:51:08 +02:00
Fidel Mato
16635a4262 L10N
- Translated STRING_TRANSPORT_SHELL_NOPATH .
- Translated STRING_SHELL_FAIL .
- Changed (to plural) STRING_CMD_HISTORY_ADDED, _COMP, _DEL, and _NET .
2013-03-30 16:19:23 -04:00
Russell Steicke
e4da3aca0d Expand braces internally, as POSIX /bin/sh does not do {} expansion.
Signed-off-by: Russell Steicke <russells@adelie.cx>
2013-03-30 14:15:33 -04:00
Russell Steicke
0cc7bc337d Test for bug 1192 - brace expansion.
Commit 968d1c3 (Portability) introduced a bug with some very POSIX
compliant shells (eg dash), which don't do brace expansion.  So add a
test for that.

The test runs by adding a new protocol in Uri, sh+cp://path/.  This
protocol is not intended to be used normally, but is only for testing
the push and pull code.

Signed-off-by: Russell Steicke <russells@adelie.cx>
2013-03-30 14:08:50 -04:00
Paul Beckingham
983e07ab01 Feature
- Added some more low-effort, low-risk virutal tags.  Why not.
- Updated man page.
2013-03-30 13:06:06 -04:00
Paul Beckingham
a7b06bd0ee Bug #1199
- Fixed bug #1199, where 'stat' was used instead of 'lstat' (thanks to Jakub
  Wilk).
2013-03-30 12:43:29 -04:00
Paul Beckingham
6d852a96ca Bug #1200
- Fixed bug #1200, where directory removal didn't handle d_type==DT_UNKNOWN
  (thanks to Jakub Wilk).
2013-03-30 10:56:04 -04:00
Scott Kostyshak
6c0561cb4d Bug #1210
- Fixed bug #1210 so that widths are taken from localized strings
  instead of hardcoded.
2013-03-26 22:37:05 -04:00
Paul Beckingham
e88b52b67d Documentation
- Updated AUTHORS.
2013-03-26 22:21:53 -04:00
Federico Hernandez
4afcc14ca4 Update Changelog with bug fix #1209 2013-03-19 20:49:21 +01:00
Federico Hernandez
9fea189d25 Bug #1209
- fixed bug #1209, spelling mistake in reference page.
2013-03-19 20:47:19 +01:00
Johannes Schlatow
168266febf Documentation 2013-03-12 07:40:46 +01:00
Johannes Schlatow
0a8c54ae57 Bug (missing quotes in execute command)
Fixed a bug where special characters within arguments passed to the
"execute" command needed to be escaped twice.
2013-03-12 07:34:38 +01:00
Paul Beckingham
e3afa04e2d Performance Testing
- Added 'performance' make target that constructs an 8,000+ task database and
  runs benchmark queries against it.
2013-03-11 23:55:17 -04:00
Paul Beckingham
9ed67f1a45 Documentation
- Updated the developer information.
2013-03-11 23:34:02 -04:00
Paul Beckingham
864b46a1b1 Unit Tests
- Improved two tests that always fail around summer time clock changes, by
  eliminating the dependence on 86,400.
- Fixed feature.891.t tests that fail on certain fortuitous random UUID
  permutations.  Now hard-coded UUID.
2013-03-11 23:05:30 -04:00
Paul Beckingham
da8258256d Documentation
- Updated docs to highly recommend libuuid.
2013-03-11 22:45:19 -04:00
Fidel Mato
14b7e9ff6e L10N
- Translated new error.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2013-03-11 22:40:02 -04:00
Paul Beckingham
82bd13bc7a Bug #1194
- Fixed bug #1194, so that $HOME has precedence over the passwd db when looking
  for the user's home directory (thanks to Jakub Wilk).
2013-03-09 17:36:48 -05:00
Paul Beckingham
a790cce6f6 Unit Tests
- Fixed hook tests to work on released code (thanks to Jakub Wilk).
2013-03-09 17:05:34 -05:00
Paul Beckingham
a40f424dad Documentation
- Documented virtual tags.
2013-03-09 16:53:43 -05:00
Paul Beckingham
88968ac36c Bug #1191
+ The 'execute' command should not be considered a 'write' command.
2013-03-06 21:04:46 -05:00
Paul Beckingham
08b959aafc Merge branch '2.2.0' of tasktools.org:task into 2.2.0 2013-03-06 20:53:34 -05:00
Johannes Schlatow
d4fee2b799 Merge branch '2.2.0' of tasktools.org:task into 2.2.0 2013-03-07 02:47:04 +01:00
Johannes Schlatow
7388cec75e Bug #1191
Added missing close().
2013-03-07 02:46:37 +01:00
Rainer Müller
48b9fdc152 [PATCH] Bug
- Do not print xterm titles without a tty. Writing escape sequences for xterm
  titles is unnecessary when the output is piped into another tool.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2013-03-05 21:15:51 -05:00
Rainer Müller
631d03ce38 [PATCH] Documentation
- Update the default value of rule.precedence.color in task-color.5 and taskrc.5
  manual pages.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2013-03-05 20:58:11 -05:00
Paul Beckingham
f3967e7d97 Revert "Fix: manpages were not installed when running an out-of-source build"
This reverts commit 9395a4d112.
2013-03-04 20:20:18 -05:00
Paul Beckingham
bcd414aad7 Unit Test
- Unfixed a unit test that got its date bumped along with the copyright.
2013-03-04 18:13:02 -05:00
Federico Hernandez
a409923916 Further date changes to 2013 2013-03-05 00:02:48 +01:00
Federico Hernandez
c2c4152669 Bumped 2012 to 2013 in doc/man 2013-03-04 23:54:23 +01:00
Federico Hernandez
699852b43b Merge branch '2.2.0' of git://tasktools.org/task into 2.2.0 2013-03-04 23:49:05 +01:00
Federico Hernandez
39dbbbda35 Bumped OS in NEWS file 2013-03-04 23:47:25 +01:00
Paul Beckingham
1dccd29643 Copyright 2013
- Updated copyright notices.
2013-03-04 17:47:12 -05:00
Federico Hernandez
430acab7ea Bumping version number 2.2.0.beta1
- Releasing first beta of 2.2.0
2013-03-04 23:03:10 +01:00
Paul Beckingham
c978b2b65a Transport Errors
- The 'push' and 'pull' commands now properly distinguish between a missing
  transport utility and other errors (thanks to Russell Steicke).
2013-03-03 09:34:54 -05:00
Russell Steicke
1428a4135b Clean up Transport::execute() and callers.
- Ensure that the real exit code of the child program is retrieved
  using WEXITSTATUS().

- Centralise the handling of code 127, which means that the child
  shell process could not execute its child (ssh, rsync, or curl.)

Signed-off-by: Russell Steicke <russells@adelie.cx>
2013-03-03 09:00:48 -05:00
Paul Beckingham
3dab5a1cb1 Bug #1181, #1087
- Fixed bug #1181, probably a result of other compounded fixes (thanks to Max
  Muller).
- Fixed bug #1087, forgot to update changelog.
2013-03-02 23:40:31 -05:00
Paul Beckingham
1b3165a18f Bug #1185
- Fixed bug #1185, correcting man page install location for out-of-tree
  builds (thanks to Jakub Wilk).
2013-03-02 18:39:53 -05:00
Paul Beckingham
6aa0277749 Bug #1189
- Fixed bug #1189, which caused wide Asian UTF8 characters to be measured as
  narrow characters (thanks to Roy Zuo).
2013-03-02 18:22:21 -05:00
Paul Beckingham
914447c885 UTF8
- Added more UTF8 unit tests for calculating string length, string width,
  formatted string length, formatted string width.
- Implemented UTF8 text width method for symmetry.
2013-03-02 18:14:56 -05:00
Paul Beckingham
551b4dbe90 UTF8
- Added UTF8 string width calculation.
2013-03-02 17:15:28 -05:00
Paul Beckingham
8e536fa4a8 Merge branch '2.2.0' of tasktools.org:task into 2.2.0 2013-03-02 10:59:46 -05:00
Paul Beckingham
fcf9ba983c Unit Tests
- Added unit tests for specific character width calculations.
2013-03-02 10:47:43 -05:00
Paul Beckingham
7327b0d537 Bug #1184
- Fixed bug #1184, correcting man page formatting (thanks to Jakub Wilk).
2013-02-26 16:37:57 -05:00
Paul Beckingham
7fc7093f68 Bug #1183
- Fixed bug #1183, correcting error message typos (thanks to Jakub Wilk).
2013-02-26 16:34:59 -05:00
Paul Beckingham
3d4bad3034 Horizontal Space
- Modified default report definitions to use shorter column labels, namely
  'Proj' and 'Urg'.  This results in less horizontal space use.
- Adjusted unit tests accordingly.
2013-02-24 16:31:31 -05:00
Paul Beckingham
330761e997 Blank Durations
- Instead of dispalying '-' for a zero-length duration, nothing is ('') is
  displayed instead.  This allows a completely empty duration column to be
  culled by the rc.print.empty.columns=no feature.
- Unit tests updated accordingly.
2013-02-24 14:26:52 -05:00
Scott Kostyshak
089b3e7d66 Enhancement
- 'print.empty.columns' now defaults to 'no'.
- Unit tests are updated accordingly.
2013-02-21 17:53:56 -05:00
Rainer Müller
0bcb22f8e4 Bug
- Do not print new line after xterm title.
  With xterm.title=on, each command displayed an empty line on the
  terminal, which is not only unnecessary but also changes output format
  for the helper subcommands starting with an underscore.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2013-02-19 22:19:47 -05:00
Rainer Müller
2bb601e6f2 Bug
- Match localized answers for confirmation

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2013-02-19 22:17:08 -05:00
Paul Beckingham
f9d74c9bed Documentation
- Forgot to update AUTHORS file.
2013-02-18 09:24:58 -05:00
Paul Beckingham
62dcd6398c Documentation
- Updated ChangeLog for prior commit.
2013-02-18 09:22:45 -05:00
Vincent Petithory
9395a4d112 Fix: manpages were not installed when running an out-of-source build 2013-02-18 09:19:43 -05:00
Paul Beckingham
ca330dc05d Unit Tests
- Corrected test count.
2013-02-18 08:40:26 -05:00
Scott Kostyshak
c68b2a149f Bug
- The bash completion script no longer expands IDs after 'depends:'.
  (Such expansion required running gc() which is not correct.)
- The unit tests for expanding 'depends:' were commented out (and not
  removed) in the case that someday we implement a command to list IDs
  without running gc().
- Unit tests to check that gc() is not run after 'depends:' were added.
2013-02-18 08:39:17 -05:00
Paul Beckingham
c87ce366a9 Documentation
- Added missing bug fix.
2013-02-18 08:38:29 -05:00
Paul Beckingham
2be52e1be2 Bug #1137
- Fixed bug #1137, which caused file locks to be non-blocking (thanks to Steve
  Rader).
2013-02-10 23:25:27 -05:00
Paul Beckingham
adacb96581 Bug #1047
- Fixed bug #1047, which caused extra commas in exported JSON when UDA orphans
  were present (thanks to Thomas Sullivan).
2013-02-10 22:39:01 -05:00
Paul Beckingham
36e371c5c0 Documentation
- Updated ChangeLog to reflect the completion of Bug #1177.
2013-02-10 22:23:05 -05:00
Paul Beckingham
aca76da3e5 Bug #642
- Fixed bug #642, so that the default 'data.location=~/.task' preserves the
  '~', leading to more portable .taskrc files (thanks to alparo).
2013-02-10 18:00:30 -05:00
Paul Beckingham
b6c28ecb7a Bug #1136
- Fixed bug #1136, which incorrectly line-wrapped tasks with annotations
  (thanks to Steve Rader).
2013-02-10 16:08:45 -05:00
Paul Beckingham
509f818b91 Merge branch '2.2.0' of tasktools.org:task into 2.2.0 2013-02-10 15:39:46 -05:00
Paul Beckingham
e6804a1679 UTF8 Line Extraction
- Minor efficiency modification, made while fixing a bug.
2013-02-10 08:46:19 -05:00
Paul Beckingham
09683f0bb9 Unit Tests
- Added confirmation to prevent hang on various platforms.
2013-02-08 15:15:01 -05:00
Federico Hernandez
f2ae8a13fa Bug #1178
- Fixed bug #1178, which inlcuded binary libraries in the source
  package.
2013-02-07 22:28:15 +01:00
Johannes Schlatow
b230da75e6 Feature #1054
Require confirmation for replacing the entire description of a single task.
2013-01-25 00:15:00 +01:00
Paul Beckingham
c6c99c2e38 Unit Tests
- Added template.t as an example for all new unit tests.
2013-01-19 15:47:41 -05:00
Paul Beckingham
e180dce1bc Bug #1063
- Fixed bug #1063, so that numeric UDA fields are now sortable (thanks to Max
  Muller).
2013-01-19 15:45:58 -05:00
Paul Beckingham
7e3ee1b284 Portability
- Fixed compiler error for new unit tests.
2013-01-19 13:45:58 -05:00
Louis-Claude Canon
a0d6b3198e Unit Tests
- More robust tests strategy: captured outputs are always compared to some
  expected result.
- Clearer and more consistent test.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2013-01-19 12:38:25 -05:00
Paul Beckingham
ee7fd7add0 Unit Tests
- Added more utf8 tests.
2013-01-17 06:11:28 -05:00
Paul Beckingham
01e589a172 I18N
- One does not simply std::string::substr a UTF8 string, like a bloody caveman.
  Implemented utf8_substr, and added unit tests.
2013-01-16 18:36:54 -05:00
Fidel Mato
ae58b85339 L10N - Error message
- Corrected error message in es-ES.h.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2013-01-16 16:06:06 -05:00
Scott Kostyshak
45202c292b Bug
- Fix regression introduced in 73043b86 where UDA edits
  were not detected for non-date types.
2013-01-15 07:55:03 -05:00
Johannes Schlatow
55813b6a09 Bug
- Colons are evil, fixed ZSH completion commands.
2013-01-15 01:05:28 +01:00
Paul Beckingham
26dbd8e790 Code Cleanup
- Made code more compact and consistent while reviewing sorting for UDAs.
2013-01-13 16:52:57 -05:00
Paul Beckingham
8271e973d8 Bug #1118
- Fixed bug #1118, which dropped changes after edits were rejected (thanks to
  Ben Boeckel).
2013-01-12 17:30:28 -05:00
Paul Beckingham
dd1f154376 Bug #1091
- Fixed bug #1091, allowing filters to use 'urgency.over:4.5'.
2013-01-12 16:49:48 -05:00
Paul Beckingham
76468f3ddd Code Cleanup
- Removed unused, untested DOM cache.
2013-01-12 14:47:34 -05:00
Paul Beckingham
30072cb75b UTF8
- Integrated latest UTF8 character width calculations from Markus Kuhn.
2013-01-12 13:54:49 -05:00
Paul Beckingham
46d5b34091 Unit Tests
- Fixed test with ambiguous Test::is signature.
2013-01-12 13:43:17 -05:00
Scott Kostyshak
19cc9177b9 Code Cleanup
- 'measure' now accepts unsigned ints for 'minimum' and 'maximum' args.
2013-01-09 17:37:49 -05:00
Paul Beckingham
40f2afeb8e Add-ons
- Suppressed output using rc.verbose=nothing.
- Removed [...] from output with rc.json.array=no.
2013-01-08 16:13:40 -05:00
Fidel Mato
d60af770a3 es-ES L10N
- Changed every occurrence of 'límite' to 'vencimiento'
2013-01-08 07:08:51 -05:00
Scott Kostyshak
3583e2ff58 Code Cleanup
- 'uft8_length' and 'utf8_text_length' now return unsigned ints.
2013-01-07 06:40:57 -05:00
Scott Kostyshak
4ca5c85054 Bug
- Fix a bug where 'print.empty.columns=no' resulted in never printing the
  project column because ColProject::measure did not take into account
  the length of the last word of the project name.
- Unit tests.
2013-01-03 23:43:16 -05:00
Paul Beckingham
21704e6705 Bug #1154
- Fixed bug #1154, which now allows priorities to be specified in any case.
2013-01-01 14:18:09 -05:00
Paul Beckingham
650c6cf6bb Documentation
- Updated NEWS file to include new config setting.
- Updated 'show' command so it knows about the new setting.
2013-01-01 10:13:09 -05:00
Scott Kostyshak
d7c225c87b Feature
- Add the configuration variable 'print.empty.columns'.
- If this variable is set to 'no', columns with all empty values are not
  printed. This variable defaults to 'yes' (thus nothing is changed
  by default).
- Updated taskrc.5.in to mention the new variable.
- Added unit tests.
2013-01-01 10:08:44 -05:00
Paul Beckingham
a7b20b7a4e Unit Tests
- Fixed some tests so they no longer fail at EOM, by using "30d" to project into
  the future, instead of just "eom".
- The count.t test script has 4 tests still failing at EOM, but warnings are now
  emitted until we figure out how to improve them.
- Added a test to bug.1110.t.
2012-12-31 10:07:48 -05:00
Paul Beckingham
cfac0c42e8 Dates
+ Fixed bug with 'socm' date calculation that failed on some days, by
  simplifying the implementation.
2012-12-31 08:48:57 -05:00
Paul Beckingham
b0bb56cfa8 Documentation
- Restored missing bug fix log entry.
2012-12-31 08:41:42 -05:00
Scott Kostyshak
0f4a366752 Bug #1110
- Fixed bug #1110, which did not treat 'status:Completed' the same
  as 'status:completed' (thanks to Aikido Guy).
2012-12-31 08:40:28 -05:00
Paul Beckingham
28523e97c6 Unit Tests
- Added unit tests to illustrate bug #1136.
2012-12-30 14:44:15 -05:00
Fidel Mato
5ec68d3e0c L10N
- Newly translated string.
2012-12-27 12:01:53 -05:00
Scott Kostyshak
73043b868e Bug
- Fix a bug where CmdEdit reported modifications to a date UDA when no
  modifications were made.
2012-12-27 11:46:45 -05:00
Paul Beckingham
eeb4cf3dd8 Bug #1053
- Fixed bug #1053, where ' characters were not escaped by export-csv.pl (thanks
  to John Florian).
2012-12-22 18:38:46 -05:00
Paul Beckingham
9b63fd6068 Bug #1128
- Fixed bug #1128, which caused 'age' columns to be right-justified instead of
  left-justified (thanks to Steve Rader).
2012-12-22 11:06:38 -05:00
Paul Beckingham
5d0e4249e3 Bug #1150
- Fixed bug #1150, which referenced deprecated features in the tutorial man
  page (thanks to Benjamin Weber).
2012-12-22 10:46:13 -05:00
Paul Beckingham
b515111f2b Code Cleanup
- Style: cuddled braces
- Style: one declaration per line
- Omission: ChangeLog not updated
- Omission: AUTHORS not updated
- Omission: en-US.h change not propagated to es-ES.h
2012-12-22 10:06:26 -05:00
Justin Forest
c0fbfcc58c Display duration of each activity session 2012-12-22 09:33:21 -05:00
Scott Kostyshak
745d24e124 Documentation
- Fix some typos in developer files.
- Add information on grid testing with flod.
2012-12-22 09:11:01 -05:00
Paul Beckingham
144ca70a36 Typo
- Fixed configuration setting typo (thanks to trHD).
2012-12-06 08:25:29 -05:00
Scott Kostyshak
14c17d5c4d Code Cleanup
- Move a newline out of localization and into source code.
2012-12-03 17:02:09 -05:00
Paul Beckingham
d89ee4d19c Merge branch '2.2.0' of tasktools.org:task into 2.2.0 2012-12-03 07:45:41 -05:00
Scott Kostyshak
8e5dd60687 Code Cleanup
- Some typos for the English localization suggested by Fidel Mato.
2012-12-03 07:38:24 -05:00
Paul Beckingham
1d3248bb1f Unit Tests
- Fixed problem with color.uda.t leaving default color.alternate active.
2012-12-01 23:30:33 -05:00
Paul Beckingham
f0bd5a4f20 Bug #947
- Looks like it was already fixed along with #1031.
2012-12-01 16:58:45 -05:00
Paul Beckingham
8659ff8292 Export
- Added sample TSB export add-on.
2012-12-01 16:28:08 -05:00
Paul Beckingham
3a2a500eb1 L10N
- Placeholder for date range checking.
2012-12-01 15:55:07 -05:00
Paul Beckingham
6ce3a8e27f Bug #1123
- Fixed bug #1123, which caused the undo of a 'log' command to corrupt the data
  file (thanks to Tim None).
2012-12-01 15:05:03 -05:00
Paul Beckingham
4e03832b68 Feature #1039
- Added Feature #1039, which adds new date shortcuts, 'socm' and 'eocm',
  meaning start and end of current month (thanks to Thomas Sullivan,
  Louis-Claude Canon).
2012-12-01 14:22:09 -05:00
Paul Beckingham
12b12c3a62 Feature #1061
- Added Feature #1061, which allows the 'columns' command to use a search
  string for the column name (thanks to Uli Martens).
2012-12-01 14:07:58 -05:00
Paul Beckingham
d8579730f5 Feature #1099
- Added Feature #1099, which supports the 'color.uda.<uda-name>' color rule
  (thanks to Florian Hollerweger).
2012-12-01 13:29:23 -05:00
Johannes Schlatow
7710c7a623 Merge bug
Hopefully found the ultimate cause of duplicated (completed) tasks.

The corresponding test case

 1. does not rely on the fact that there are modifications with equal
    timestamps and
 2. is a LOT simpler than the other ones.
2012-11-23 13:14:40 +01:00
Johannes Schlatow
0e28374131 Bug #1117
Fixed some other merge issues with the sorting order of equally timestamped
entries in undo.data (see #1104).

1. The fact that both files can begin with equal timestamps but different
   modifications has not been taken into account.

2. Besides the fact that the relative order within the same data file must
   be preservered as introduced before, we also need a unique order for entries
   of different data files so that each machine comes to the same merge result.
   This has now been achieved by taking the UUIDs into account as soon as the
   timestamps are equal.
2012-11-23 13:03:32 +01:00
Fidel Mato
69b63189f6 L10N
- Corrections, new strings.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-11-18 09:14:26 -05:00
Paul Beckingham
638a242476 Build System
- Removed code that searches for the pthreads and Lua51 libraries.
2012-11-17 15:20:31 -05:00
Paul Beckingham
92c3f0862d Feature #1124
- Added '_show' command to generate a machine-readable configuration settings
  list for use by third-party software (thanks to Jake Bell).
2012-11-17 12:48:30 -05:00
Scott Kostyshak
973e0ed56b Spanish (es-ES) Localization
- The latest translation update from Fidel Mato.
2012-11-11 13:08:35 -05:00
Scott Kostyshak
2afb893b2a Feature
- Bash now completes "rc:" with file names and
  "rc.data.location:" with folder names.
2012-10-30 17:02:06 -04:00
Paul Beckingham
9929dbb543 Spanish (es-ES) Localization
- The latest translation update from Fidel Mato.
2012-10-29 16:11:00 -04:00
Paul Beckingham
d9e24098b5 C -> C++
- Integrated wcwidth6.c more into text.cpp.
- Moved wcwidth6.c to wcwidth6.cpp, to cure some strange build issue.
2012-10-29 16:09:32 -04:00
Scott Kostyshak
4baaf52610 Bug
- Hyphenation is not needed when words are split with commas.
- Unit test added.
2012-10-20 14:34:12 -04:00
Scott Kostyshak
d6ce938c4a Code Cleanup
- Rename the class CmdStatistics to CmdStats for consistency
  because 'stats' is the command.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-10-18 22:45:04 -04:00
Paul Beckingham
fb427a4c6f Merge branch '2.2.0' of tasktools.org:task into 2.2.0 2012-10-13 22:20:33 -04:00
Paul Beckingham
42661312d6 Portability
- Detected birth time in struct stat.
2012-10-13 22:20:08 -04:00
Paul Beckingham
879ecf9505 Internationalization
- Fixed the mechanism used to select translations (thanks to Fidel Mato).
2012-10-13 15:32:00 -04:00
Paul Beckingham
9fe9f96f8f File::rename
- Added a rename method to permit safe file writes.
2012-10-03 22:13:47 -04:00
Paul Beckingham
d2f267a7da Unit Tests
- Made test output minimal by removing verbosity.
- Made the regexes more generalized, while still remaining valid.
2012-09-27 21:21:43 -04:00
Paul Beckingham
68963ad3e4 Feature #953
- Added Feature #953, which includes the total number of blocked and blocking
  tasks to the 'statistics' command output (thanks to T. Charles Yun).
2012-09-27 01:06:21 -04:00
Paul Beckingham
bb167b2275 Feature
- New 'modified' attribute, which contains the most recent modification date,
  if a modification has occurred.
2012-09-27 00:56:41 -04:00
Paul Beckingham
8d8bd653fa Feature #685
- Added Feature #685, which provides a 'blocking' report, and new color rule
  (thanks to Michelle Crane).
2012-09-26 23:52:06 -04:00
Paul Beckingham
61ccccabd8 Bug #1031
- Fixed bug #1031, which kept expanding aliases after the '--' operator (thanks
  to Jim B).
- Cleaned up mess in the ChangeLog, which should list features before bugs,
  reported issues before ad hoc issues, and in ascending numerical order.
2012-09-26 23:06:42 -04:00
Scott Kostyshak
9fb15b0d7d Bug #1056
-Complete the fix of #1056 by having CmdSummary print abstract parent
 names and not prefix children project names with parent project names.
-Unit tests for above.
2012-09-24 08:04:47 -04:00
Scott Kostyshak
be5dc8ab90 Bug #1056
- Fix #1056: the 'projects' command now outputs abstract parents
  and reduces repetition by not printing parent names in front of
  children names.
- Project name indentation is not affected by the first character
  being a period and/or the last character being a period.
- Unit tests for above.
2012-09-23 08:07:11 -04:00
Federico Hernandez
a3242f7b5b Merge branch 'master' into 2.2.0
- merge of 2.1.2 release being now the current released version in
  master.

Conflicts:
	CMakeLists.txt
	NEWS
	test/bug.1104.t
	test/run_all
2012-09-18 22:58:59 +02:00
Federico Hernandez
b93f384b3a Added SHA1 of tagged release commit 2012-09-18 21:58:23 +02:00
Federico Hernandez
1e3176ed70 Version number and release date for 2.1.2 2012-09-18 21:07:43 +02:00
Pietro Cerutti
1c5068edb2 Bug
- Fixed bug where shadow files are not properly created when there is a missing
  .taskrc file.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-09-18 07:50:55 -04:00
Scott Kostyshak
d8a4aab85b Enhancement
- Improve bash completion for 'project:', 'depends:', and 'priority:'.
- 'projABC:' no longer expands (same for 'depends:' and 'priority:').
- 'proj:' only expands if abbreviation.minimum is less than 5
  (same for 'depends:' and 'priority:' and for other values of
  abbreviation.minimum).
- Unit tests for the above.
2012-09-16 22:11:52 -04:00
Paul Beckingham
ad3e249a64 Merge branch '2.2.0' of tasktools.org:task into 2.2.0 2012-09-16 15:19:39 -04:00
Paul Beckingham
c2ccd1b3ee Unit Tests
- Enhanced the bug #956 tests to cover both supported methods of eliminating
  extraneous output from commands (redirect stderr, and verbose=nothing).
2012-09-16 15:16:32 -04:00
Paul Beckingham
9d1ae99656 Virtual Tags
- Added virtual tag TODAY as a synonym for DUETODAY.
2012-09-16 14:57:59 -04:00
Paul Beckingham
2f10e8d2e2 Bug #1083
- Partially fixed #1083, which showed 'task 0 ...' when modifying a non-
  pending task (thanks to Aikido Guy).
2012-09-16 14:57:07 -04:00
Federico Hernandez
eb09f4da9a Unit tests
- removed special characters in the logging output that
  disturbed the correct counting of ok unit tests when
  using flod.
2012-09-15 00:20:00 +02:00
Federico Hernandez
112d0d8771 Unit tests
- portability to help flod
2012-09-12 00:00:54 +02:00
Federico Hernandez
31bbc0ea2f Unit testing
- verbose unit testing to help flod tinderbox in displaying the results.
2012-09-11 22:38:40 +02:00
Paul Beckingham
8cd43ce2b2 Chase warning due to the opaque type time_t in printf
Signed-off-by: Paul Beckingham <paul@beckingham.net>

Conflicts:
	src/Duration.cpp
2012-09-11 20:58:16 +02:00
Paul Beckingham
724f29a50b Unit Tests
- Fixed ids, uuids, zshids, _ids, _uuids, _zshids commands to suppress
  headers that prevent these from being used.
2012-09-10 22:55:50 -04:00
Johannes Schlatow
bbd8a9556e Merge branch '2.1.2' of tasktools.org:task into 2.1.2 2012-09-10 23:42:30 +02:00
Johannes Schlatow
68c1ca3f69 Bug #1104
Fixed the bug where the sort order of transactions with equal timestamps
 was not stable, i.e. due to the lack of a total order, different merges
 produced different sortings and hence messed up transactions which
 have already been merged.
2012-09-10 22:53:44 +02:00
Paul Beckingham
d868294d90 Unit Tests
- Corrected FreeBSD rx unit tests.

Conflicts:
	test/rx.t.cpp
2012-09-10 22:41:34 +02:00
Paul Beckingham
36e3317907 Prebuild
- Removed obsolete WIN32 reference that causes lots of verbose warnings
  from cmake.
2012-09-10 22:40:51 +02:00
Federico Hernandez
da37c08dbd Documentation
- bumped information in related files to 2.1.2
2012-09-10 21:45:49 +02:00
Federico Hernandez
89a7f2a459 Unit tests
- run_all should also look for *.t.exe files on cygwin
2012-09-10 21:07:05 +02:00
Johannes Schlatow
98da8ddcb8 Bug #1104
Added unit test.

 Implemented a quick fix for the issue with a broken branch-off algorithm
 which disregarded the transaction boundaries in the undo.data file.
2012-09-10 20:33:32 +02:00
Federico Hernandez
cf634a22c9 Bumped version number to 2.1.2 2012-09-10 20:27:05 +02:00
Johannes Schlatow
55fe8810ce Bug #1104
Added unit test.

 Implemented a quick fix for the issue with a broken branch-off algorithm
 which disregarded the transaction boundaries in the undo.data file.
2012-09-10 14:42:44 +02:00
Scott Kostyshak
6a4fd6b133 Code Cleanup
- Remove an unused parameter.
2012-09-05 06:57:58 -04:00
Scott Kostyshak
ed8be2e2f2 Bug #1059
- Fixed Bug #1059, where CmdEdit incorrectly ran gc.
  (Thanks to Louis-Claude Canon)
2012-09-04 22:11:53 -04:00
Scott Kostyshak
7a6cdde571 Code Cleanup
- Constify some catches.
2012-09-04 22:04:41 -04:00
Paul Beckingham
589d8fab5c Prebuild
- Removed obsolete WIN32 reference that causes lots of verbose warnings
  from cmake.
2012-08-31 14:24:54 +02:00
Pietro Cerutti
b0af5f1496 Portability
- Use Time::Local (in Perl core) instead of Date::Parse

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-08-28 17:27:13 +02:00
Paul Beckingham
e4e58e6571 Unit Tests
- Corrected FreeBSD rx unit tests.
2012-08-28 15:19:17 +02:00
Paul Beckingham
efeb00d423 Code Cleanup
- Typo in unit test.
- Removed obsolete ANALYSIS file.
2012-08-28 14:41:18 +02:00
Paul Beckingham
e796d7a2f1 Unit Tests
- Fixed syntax error in test.
- Fixed tests that were broken, but did not detect that.
2012-08-28 14:36:21 +02:00
Paul Beckingham
660f7bd98e Unit Tests
- Added direct TAP support to run_all via the '--verbose' option.
- Disabled regex tests that use \b for Cygwin.
2012-08-27 12:46:42 +02:00
Owen Clarke
7c408f4c5f Portabality
- Added comment to explain the use of perl in run_all to get the current
  epoch time in seconds
2012-08-23 08:42:01 +10:00
Owen Clarke
c5de9df963 Portability
- Changed bash-style syntax to sh syntax
- Reverted date printing to using perl as per 0cb71a8 for support on
  Solaris
2012-08-22 20:34:01 +10:00
Pietro Cerutti
98a5788a40 Use sh instead of bash in test/run_all 2012-08-21 16:23:09 +01:00
Paul Beckingham
968d1c32e8 Portability
- Removed unnecessary dependence on Bash: sh is POSIX, bash is not.
2012-08-21 16:13:45 +01:00
Paul Beckingham
23cd59a9a1 Chase warning due to the opaque type time_t in printf
Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-08-21 15:41:30 +01:00
Paul Beckingham
945127ad05 Portability
- Fixed warning that only appears on FreeBSD.
2012-08-21 11:11:55 +01:00
Scott Kostyshak
8850bc849f Documentation
- Updated the ChangeLog.
2012-08-15 22:46:43 -04:00
Scott Kostyshak
e89aa6cdbc Feature #1069
- Throw a custom error if uda.<uda-name>.type is not set
  but, for example, uda.<uda-name>.label is set.
2012-08-15 21:37:01 -04:00
Federico Hernandez
f1c156be39 Merge branch '2.2.0' of tasktools.org:task into 2.2.0 2012-08-14 00:59:11 +02:00
Federico Hernandez
b02bbb3c2c Unit tests
- run_all should also look for *.t.exe files on cygwin
2012-08-14 00:50:22 +02:00
Scott Kostyshak
60c1017e68 Code Cleanup
- Show no longer indents the warning.
2012-08-13 17:31:42 -04:00
Scott Kostyshak
109c6434f5 Code Cleanup
- Recycle an object.
- A second argument to task show now gives an error.
2012-08-13 08:10:22 -04:00
Scott Kostyshak
7b0b3210a5 Bug #1065
- Fixed bug #1065, where CmdShow issued messages in incorrect situations.
- Added unit tests.
2012-08-12 17:49:27 -04:00
Paul Beckingham
8d66d801c0 Enhancement
- Added virtual tag support for the first batch.  There will be follow-up
  work, tests and so on.
2012-08-12 13:46:23 -04:00
Scott Kostyshak
d73766484d Bug
- Fixed Bug #1060 where an error that was thrown by undo was not
  correctly caught and reported.
- Added a couple of tests to ensure that the correct error was
  caught and reported.
2012-08-11 07:03:56 -04:00
Scott Kostyshak
bd085a820d Code Cleanup
- Improved style and efficiency of Perl test code.
- Added alias expansion to feature log of bash completion script.
- Added comments to bash completion script.
2012-08-05 16:41:09 -04:00
Scott Kostyshak
54b2e10da4 Unit Tests
- Create a framework for testing bash completion.
- Test that aliases are expanded.
- Test that task commands are expanded.
2012-08-05 08:43:24 -04:00
Paul Beckingham
fd731dfd6e Bug
- Fixed ambiguous operator precedence in unit test.
2012-08-02 00:27:18 -04:00
Louis-Claude Canon
61b128ca88 Code Cleanup
- Failing test on last quarters.
2012-08-02 00:22:19 -04:00
Louis-Claude Canon
e9abac1d0f Code Cleanup
- Keep date formatting intact in arguments (necessary if the initial string
  contains optional information, as start or end of day).
2012-08-02 00:19:41 -04:00
Louis-Claude Canon
ec330921de Code Cleanup
- Factorize code for parsing date elements.
- Better order of blocks for parsing date elements.
- Add corresponding minimal-digit date parsing method for reading seconds,
  minutes and week.
- Update documentation and test.
2012-08-02 00:11:12 -04:00
Louis-Claude Canon
384be4b249 Code Cleanup
- Remove the code related to the format "day of year" (number of day starting
  from the January 1) as mktime does not allow to specify it with the field
  tm_yday.
- Cleaner check of the date (everything is done by Date::valid).
- Correct hour, minute and second is also checked.
2012-08-02 00:04:07 -04:00
Louis-Claude Canon
b5cd5ea188 Enhancement
- Allows relative dates such as "1st" to be entered with capital ("1ST").
2012-08-01 23:59:55 -04:00
Louis-Claude Canon
ee0a16f663 Enhancement
- Undefined variables are put to today in dates (if year and month is not
  specified, the current ones are considered). But if a global ones is
  specified, lower one are put to their default values (0 or 1).
2012-08-01 23:41:28 -04:00
Paul Beckingham
d623a6f9af Bug #1048
- Fixed bug #1048, which segfaulted rather than complain about syntax (thanks
  to Bryce Harrington, Štěpán Henek).
2012-08-01 23:37:25 -04:00
Federico Hernandez
90108e5394 README file
- added disclaimer about the risk with using a dev branch.
2012-07-30 23:34:38 +02:00
Johannes Schlatow
affda052c8 Zsh tab completion
Added missing attributes and operators.
2012-07-30 11:55:42 +02:00
Owen Clarke
31769a1fa4 Portability
- Changed the interpreter of the test files to use /usr/bin/env to find
  perl in the user's path instead of hard-coding /usr/bin/perl
2012-07-30 18:49:50 +10:00
Johannes Schlatow
5db7b6c290 Bug #1045
- Fixed bug where zsh completion did not work for aliases (see #1043).
2012-07-29 14:09:56 +02:00
Paul Beckingham
ff1cc85d38 Unit Tests
- Fixed a regex length in a test.
2012-07-28 20:45:49 -04:00
Scott Kostyshak
7b04ae43a0 Unit tests
- Added bug.1043.t which makes sure that aliases are listed by '_aliases'
  and not by '_commands' or '_zshcommands'.
2012-07-28 20:32:58 -04:00
Federico Hernandez
58a87b5ed0 Unit tests
- basic.t now looking correctly for version number in cmake file.
  (thanks to Owen Clarke)
2012-07-29 00:06:01 +02:00
Scott Kostyshak
4f76e0ed7c Bug #1043
- Fixed bug where bash autocompletion did not work for aliases.
- Added new '_aliases' helper command.
2012-07-28 15:36:17 -04:00
Paul Beckingham
275132c1fa Enhancement
- The 'diagnostics' command now reports libuuid details.
2012-07-28 09:19:05 -04:00
Louis-Claude Canon
0ac6578899 Enhancement
- When formating real numbers that are between 0 and 1, the width controls the
  number of characters that are shown (with width "4", "0.01234" is shown as
  "0.01").
2012-07-27 08:19:21 -04:00
Louis-Claude Canon
afcbaa20a9 Code Cleanup
- The symbols '@' is part of the tag and not a special delimiter (adding a new
  item makes it more explicit).
2012-07-27 08:18:01 -04:00
Louis-Claude Canon
0a3de2b867 Unit test
- Check that quitting when doing bulk changes ignores subsequent tasks.
2012-07-27 08:17:12 -04:00
Louis-Claude Canon
0857b451d6 Bug #1044
- 'task projects' discard now newly deleted tasks and it includes only filtered
  tasks for its summary.
2012-07-27 08:13:37 -04:00
Louis-Claude Canon
154d99385a Code Cleanup
- Indentation.
2012-07-27 08:09:26 -04:00
Federico Hernandez
fc45484069 Authors file 2012-07-27 00:14:52 +02:00
taskwarrior
1e938593d4 Documentation
- typos in INSTALL file (thanks to Erik Wenzel)
2012-07-26 23:59:36 +02:00
Owen Clarke
c20ce334f9 Merge branch '2.2.0' of tasktools.org:task into 2.2.0 2012-07-26 22:11:05 +10:00
Louis-Claude Canon
0a00f3cde4 Documentation
- Clearer documentation on relative dates.
2012-07-26 08:09:46 -04:00
Owen Clarke
276971675a Bug #1042
- Fixed a bug where the diagnostics command failed to detect missing
  external utilities on Solaris and NetBSD.
2012-07-26 22:08:34 +10:00
Louis-Claude Canon
160260ff48 Code Cleanup
- Remove duplicate modify call to TDB2.
- Check if quitting in bulk change only if permission fails.
- Correct test logic (the unit for each operation is the second, not the day).
- Consistency in test for feature.1013.t
- Correctly color deleted tasks.

test
2012-07-26 08:06:15 -04:00
Paul Beckingham
39456a3243 Performance
- Moved an expensive operation inside an if statement.
2012-07-25 23:14:15 -04:00
Paul Beckingham
d89d51e7e1 Deprecation
- Removed deprecated 'fg:' and 'bg:' attributes, which involves code,
  documentation and tests.
- Cleaned out NEWS file.
- Cleaned out config import synonyms, which should have been deleted a while
  ago.
- Removed unused localized strings, but left the 'deprecated' one behind,
  because it will be needed.
2012-07-25 22:44:25 -04:00
Louis-Claude Canon
1d99260cb9 Enhancement
- Stop consider new tasks after quitting a bulk change.
2012-07-25 08:06:18 -04:00
Louis-Claude Canon
e5d142a468 Bug #1038
- Cleaner solution (less code duplication and blank space only when a
  confirmation is needed) for bug #1038.
2012-07-25 08:06:15 -04:00
Paul Beckingham
3bf9ebad62 Documentation
- Manually added ChangeLog delta that wouldn't apply as a patch.
2012-07-24 20:52:48 -04:00
Louis-Claude Canon
60e7260920 Code Cleanup
- Print a message in bulk change when the user choose not to denotate a
  specific task (more consistent behaviour with other bulk changes).
2012-07-24 20:51:15 -04:00
Louis-Claude Canon
406f098263 Bug #1038
- Fixed bug #1038, which prints blank lines with bulk changes and when the
  verbose attributes does not specify it.
- Lines do a better separation between each changes also.
2012-07-24 20:51:03 -04:00
taskwarrior
54e3de8118 Merge branch 'master' into 2.2.0
- after 2.1.1 release that went into master
2012-07-25 01:38:35 +02:00
taskwarrior
4400a6f6ca Added SHA1 of tagged release commit 2012-07-25 01:34:38 +02:00
Federico Hernandez
46c5f8b826 Bumped version number to 2.1.1 in cheat sheet 2012-07-24 23:58:21 +02:00
Federico Hernandez
254d5c6fd7 Version number and release date for 2.1.1 2012-07-24 23:41:11 +02:00
Louis-Claude Canon
c71146611c Bug #1036
- Remove the test that prevents 'until' attributes to be modified for
  non-recurring tasks (thanks to Stéphane Pezennec).
- Unit test.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-07-24 16:55:59 -04:00
Scott Kostyshak
99849e55b4 Documentation
- Man page corrections.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-07-24 16:28:07 -04:00
Paul Beckingham
c247cf11ad Documentation
- Added #734 to ChangeLog.
2012-07-24 08:31:55 -04:00
Paul Beckingham
28e66a28aa Bug
- Fixed bug that caused miplaced commas in JSON export (thanks to greenskeleton).
2012-07-23 23:31:45 -04:00
Federico Hernandez
7b298a1b3d Bumped version number to 2.2.0 2012-07-23 23:04:38 +02:00
Federico Hernandez
98fbd28501 Added SHA1 of tagged release commit 2012-07-23 22:59:42 +02:00
Federico Hernandez
a413331c94 Version number and release date for 2.1.0 2012-07-23 21:26:14 +02:00
Federico Hernandez
4fe671f895 Documentation
- Fixed several typos in man pages.
  (Thanks to Scott Kostyshak for the comprehensive patch)
2012-07-23 13:13:30 +02:00
Federico Hernandez
09074dc708 Man page
- Fixed missing scheduled attribute in task.1
  (Thanks to Dirk Deimeke)
2012-07-23 11:59:40 +02:00
Paul Beckingham
14a8511056 AUTHORS
- Added Scott, as thanks for all the recent help.
2012-07-22 12:52:48 -04:00
Owen Clarke
16bef4a29e Bug
- Fixed platform detection of OpenBSD and NetBSD
2012-07-22 20:15:11 +10:00
Paul Beckingham
a469a2c6d5 Feature #1033
- Feature #1033 allows UDAs to contribute to urgency (thanks to Max Muller).
2012-07-18 23:33:30 -04:00
Paul Beckingham
6a2c047beb Bug #1032
- Fixed bug #1032, which prevented negative urgency coefficients from working
  for projects and tags.
2012-07-18 06:53:58 -04:00
Federico Hernandez
9a2ab14a34 Bumped version number to 2.1.0.beta3 2012-07-18 00:41:52 +02:00
Paul Beckingham
c20c025c8e Bug
- Fixed a bug that caused a commond dateformat (YDM-HN) to be misinterpreted
  as a UUID.  Solution is to increase minimum partial UUID length from 9 to
  14.
2012-07-17 18:30:58 -04:00
Paul Beckingham
561102b70b Build Broken
- Forgot to include the updated strings.
2012-07-16 23:02:37 -04:00
Paul Beckingham
051274b960 Bug
- Fixed bug that caused a segfault when an invalid sort column was specified
  (thanks to Uli Martens).
2012-07-16 17:04:25 -04:00
Federico Hernandez
1920b6249e Bumped version number to 2.1.0.beta2 2012-07-16 18:27:28 +02:00
Owen Clarke
0022cfe10b Bug
- Include limits.h in Directory.cpp to fix compilation on Solaris 11
2012-07-17 00:53:39 +10:00
Owen Clarke
92adb5e266 Bug
- Added include util.h in Nibbler.cpp, forgot to add it to make the fix
  for bug #1030 compile on Solaris.
2012-07-16 23:43:12 +10:00
Owen Clarke
a655be823b Bug #1030
- Added portable implementation of timegm for non GNU/BSD platforms that
  don't have their own implementation
- Removed the use of tm_gmtoff on non GNU/BSD platforms that don't have
  it as part of the tm struct in time.h
- Added CMake tests HAVE_TIMEGM and HAVE_TM_GMTOFF
2012-07-16 22:45:11 +10:00
Federico Hernandez
7e48eb9ec2 Bumped version number to 2.1.0.beta1 2012-07-16 12:55:48 +02:00
Federico Hernandez
72ca3f68ea Missing include statement for Linux gcc
- #include <algorithm>
2012-07-16 09:41:16 +02:00
Paul Beckingham
a3b56feb1f Bug
- On the 'udas' report, the orphans were not counted separately for
  the totals.
2012-07-16 01:21:58 -04:00
Paul Beckingham
2815fcb90d UDA
- Implemented UDA sorting.
2012-07-16 01:08:42 -04:00
Paul Beckingham
f42fa76e45 Unit Tests
- Added test for deferred bug #697.
2012-07-16 00:32:55 -04:00
Paul Beckingham
21b7bebf5d Unit Tests
- Added uda_report.t to test the behavior of reports that contain a UDA
  and an orphan UDA.
2012-07-16 00:32:36 -04:00
Paul Beckingham
57aa2de98c UDA
- Implemented UDAs in the 'edit' command for all four UDA data types.
2012-07-16 00:16:36 -04:00
Paul Beckingham
1d593c39e0 Bug
- Fixed bug that saw annotations as UDA orphans in the 'info' command.
2012-07-15 20:42:07 -04:00
Paul Beckingham
9028ca4945 UDA Edit
- Added UDA and Orphan support to the 'edit' command.  It will show the
  data, but not yet recognize changes to that data.
2012-07-15 19:34:55 -04:00
Federico Hernandez
360ab3138a Reference pdf
- rearranged the attributes, in particular the dates.
2012-07-15 23:14:45 +02:00
Paul Beckingham
d4a46eaf04 Documentation
- Errors in reference PDF.
2012-07-15 16:21:14 -04:00
Federico Hernandez
e3691f3fb9 Merge branch '2.0.1' of tasktools.org:task into 2.0.1 2012-07-15 22:06:41 +02:00
Federico Hernandez
0973486d38 Updated OS versions in NEWS file. 2012-07-15 22:05:48 +02:00
Paul Beckingham
4c901e2fe4 Documentation
- Updated reference PDF with new stuff.
- Minor reorganization to make more room.
- Updated version and date.
2012-07-15 16:04:50 -04:00
Paul Beckingham
81563ec624 Bug
- Improved 'ready' report filter so that it actually works.
2012-07-15 15:25:54 -04:00
Paul Beckingham
10a22e293e Unit Tests
- As #982 was deferred to 2.2.0, so is bug.982.t by renaming it to
  bug.982.x.  It will be renamed back after 2.1.0 release.
2012-07-15 09:53:57 -04:00
Paul Beckingham
89a738e8be Documentation
- Referenced the list of external script features that are accumulating,
  as suitable projects for someone wishing to contribute.
2012-07-15 00:41:18 -04:00
Paul Beckingham
43c2b402cd Bug #967
- Fixed bug #967, which did not properly determine character widths for UTF8
  characters (thanks to Victor Roetman, Jörg Plate, Markus Kuhn).
2012-07-15 00:14:04 -04:00
Paul Beckingham
76c8d616d9 Bug #1028
- Fixed bug #1028, so that UDA durations are stored in seconds, not in raw form
  (thank to Uli Martens).
2012-07-14 09:39:05 -04:00
Paul Beckingham
da9bd8faa9 UDA
- Only 'recur' durations are stored in raw form.  All others resolve to seconds.
  Thanks to Uli Martens.
2012-07-12 00:14:23 -04:00
Paul Beckingham
550031f5d8 Documentation
- Added missing contributor.
2012-07-09 21:25:17 -04:00
Paul Beckingham
cc5ecafc30 Unit Tests
- Testing whether recurring tasks can be deleted, with and without
  the parent being deleted.  Cannot replicate #955.
2012-07-09 21:22:06 -04:00
Paul Beckingham
d0397f8481 Bug #1012
- Fixed bug #1012, which failed to install add-on scripts with execute
  permission.
2012-07-09 21:08:19 -04:00
Louis-Claude Canon
08b37c9943 Code Cleanup
- Unnecessary test replaced by an assertion.
2012-07-09 08:36:20 -04:00
Louis-Claude Canon
573e0b2a65 Unit Test
- Fix the purpose of the test for bug #1006: checking that completion is active
  when necessary.
2012-07-09 08:34:34 -04:00
Paul Beckingham
19b01131ce Unit Tests
- Redirected output in unit test.
2012-07-09 08:33:22 -04:00
Louis-Claude Canon
3f158bc546 Bug #982
- Unit test.
2012-07-09 08:32:16 -04:00
Louis-Claude Canon
a7e2918953 Documentation fix 2012-07-09 08:31:54 -04:00
Louis-Claude Canon
95df0baeae Bug #1022
- Fix initialization of Task variables when parsing from a string.
- Correction on default colors.
2012-07-09 08:29:25 -04:00
Paul Beckingham
c8ce91e4be Documentation
- Missed adding #872 when closing #1006.
2012-07-09 08:27:59 -04:00
Paul Beckingham
7fb25a21df Bug#968
- Fixed bug #968, which calls for better documentation of dependencies
  which will be included in the next PDF cheat sheet release, and in
  the upcoming new tutorials, in addition to the man page and wiki
  (thanks to Marek Vitek).
2012-07-09 01:59:40 -04:00
Paul Beckingham
79e2c591f1 Bug #1022
- Fixed bug #1022, where dependencies were note released when a blocking task
  was completed (thanks to Arkady Grudzinsky).
- The Task object now caches ::is_blocked and ::is_blocking Booleans that are
  determined on pending.data load.
- Simplified and sped up color rule processing using cached values, reducing
  the number of map lookups, and removed loop invariants when the rules are
  not defined.
- Simplified urgency calculations given the cached values for blocked/blocking.
- On load, pending.data is scanned for accurate blocked/blocking status
  determination.
- Obsoleted and removed complex single-task dependency calculations.
- Sped up 'nag' processing by using cached values..
- Modified the 'show' command to consider color.blocking to be valid.
- Added default config value for color.blocking, and included it in the
  precedence list ahead of blocked, as it is more important.
- Updated taskrc.5 man page to include the new color.blocking rule, and its
  place in the rule precedence.
2012-07-09 01:29:51 -04:00
Paul Beckingham
02053f7300 Themes
- Added the new color.blocking to each theme.  In most cases it is the
  same as color.blocked, with something slightly 'bolder' about it, but
  in the more quirky ones it is the same.  These need tweaking.
2012-07-09 01:12:44 -04:00
Paul Beckingham
d59aaa6427 TDB2
- Pushed task lookup by ID and UUID down a level from TDB2 to TF2.  This allows
  reuse at the low level for things like proper dependency evaluation.
2012-07-08 16:04:34 -04:00
Paul Beckingham
88fcdab515 Feature #1026
- Feature #1026, command line overrides are now applied before and after the
  creation of the default rc file and data directory, which allows for
  programmatic initialization without keystroke synthesis (thanks to Nicholas
  Rabenau).
2012-07-08 15:16:23 -04:00
Paul Beckingham
b702251431 Performance
- When there is only one element in A3, no point firing up the Dijkstra
  shunt of the infix processing.
2012-07-08 14:38:13 -04:00
Paul Beckingham
99b0c5568a Bug #972, #1018
- Fixed bug that accepted a recurrence duration of '7' as '7secs' instead
  of the intended '7days'.  It is now an error to omit the units.  Thanks to
  Vlad Zhivotnev, Stanley G.
- Modified unit tests to avoid a different error.
2012-07-08 14:24:39 -04:00
Paul Beckingham
c4a61566af Documentation
- Modified developer files to get them up to date.
2012-07-08 11:03:01 -04:00
Paul Beckingham
4d4f286330 Bugs
- Added an A3::is_attr type override for 'recur', which needs to be
  treated as an un-expanded 'string' type, most, but not all of the
  time.
- Documented the above in ColRecur.cpp.
- Modified Command.cpp to recognize both type 'duration' and name 'recur'.
- Removed Command::next_mod_group argument coalescing for date types,
  which was not used anyway.
- Improved the error message for unrecognized durations, which previously
  included the word 'date'.
- Modified unit tests to accomodate the above error message change.
- Added bug.972.t unit tests, which fail, because it isn't fixed yet.
- Made A3::dump const so it can be used anywhere.
2012-07-08 10:47:01 -04:00
Paul Beckingham
5fcc33f1f8 UDAs
- UDA definitions that have the same name as a core attribute are not
  permitted.
2012-07-05 00:11:54 -04:00
Paul Beckingham
d8b0b0f594 Version
- Bumbed version from 2.0.1 to 2.1.0, reflecting the size of the new
  features.
2012-07-04 17:19:39 -04:00
Paul Beckingham
b0b8bfe1d2 Bug #1023
- Fixed bug #1023, which applied default.project and default.priority during
  modification (thanks to Christoph Lange).
- Added unit tests.
- Added Christoph to the AUTHORS file.
2012-07-04 16:45:09 -04:00
Paul Beckingham
d16f434899 Bug #1006, #1024
- Fixed bug #1006, #1024, which caused words like the German 'im' and 'des' in
  a description to be expanded into 'imask' and 'description' (thanks to
  Louis-Claude Canon and Martin U).
- Promoted Louis-Claude Canon in the AUTHORS file, added Martin U.
2012-07-04 16:05:42 -04:00
Paul Beckingham
416cb40e3d Import
- Orphaned UDAs now survive import.
2012-07-04 14:29:12 -04:00
Paul Beckingham
7eebfba1ef Unit Tests
- Error in unit tests.  UDAs are in better shape than was reported.
2012-07-04 14:14:45 -04:00
Paul Beckingham
1b329d34b3 UDAs
- The 'udas' command now accepts a filter, and reports UDA usage counts.
- The 'udas' command also detects and lists orphaned UDAs and usage counts.
2012-07-04 13:42:36 -04:00
Paul Beckingham
19cfd5453d Documentation
- Updated man pages for UDAs.
2012-07-04 11:18:12 -04:00
Paul Beckingham
2be691c2c5 Enhancement
- The 'udas' command now reports allowable values for UDAs.
2012-07-04 10:16:08 -04:00
Paul Beckingham
66eb09ab25 UDAs
- Orphaned UDA name/value pairs show up in the 'info' report, but with
  the name listed as '[name      value]'.  The brackets indicate that the
  data is not modifiable.
2012-07-03 15:58:00 -04:00
Paul Beckingham
da575c4043 Unit Tests
- Modified testing to accomodate new split between stdout/stderr.
2012-07-03 15:43:19 -04:00
Louis-Claude Canon
75822eed47 Code Cleanup
- Reduce the number of project change messages when annoting and denoting.
2012-07-03 09:06:01 -04:00
Louis-Claude Canon
1668aef66b Code Cleanup
- Consistent scheme for printing project change information: always
  shows the progress estimation and add a notification that the project
  has changed if the number of tasks is changed.
2012-07-03 09:05:19 -04:00
Paul Beckingham
7f1d8c3682 UDAs - User Defined Attributes
- Added support for named allowable values.
2012-07-02 22:22:19 -04:00
Paul Beckingham
0d3f6f990d Unit Tests
- Added unit tests to monitor the behavior of UDAs in various scenarios.
2012-07-02 21:47:30 -04:00
Paul Beckingham
9a9453a57f Directory::cwd
- Made use of Directory::cwd instead of get_current_working_dir.
2012-07-02 15:40:54 -04:00
Louis-Claude Canon
2b20009b7f Code Cleanup
- No blank line when printing information about project changes.
2012-07-02 15:00:30 -04:00
Louis-Claude Canon
b1e63e575a Bug #1001
- Actual resolution of Bug #1001. The Edit command was actually changing
  the working directory without going back to the original one
  afterwards.
2012-07-02 14:59:29 -04:00
Louis-Claude Canon
e1407437e0 Enhancement
- Allow a separate color for error messages via the 'color.error'
  configuration variable.
2012-06-28 00:25:09 -04:00
Louis-Claude Canon
eaae2d84da Unit Test
- Check that errors, headers, footnotes and debugs are sent only to
  stderr.
2012-06-28 00:24:03 -04:00
Louis-Claude Canon
8ef9ec9b9f Code Cleanup
- Redundant debug message.
- More consistent check for messages aggregation.
2012-06-28 00:23:56 -04:00
Louis-Claude Canon
c84e3cc893 Code Cleanup
- With the separation between standard output and standard error, the solution
  for bug #956 is obsolete. The mechanism (putting verbose to "nothing") is
  still kept for easing the management of the standard error.
2012-06-16 16:09:34 -04:00
Louis-Claude Canon
1e632fea66 Code Cleanup
- More specific test (checking message either in the standard output or the
  standard error).
2012-06-16 16:09:18 -04:00
Louis-Claude Canon
e5fe704f6a Code Cleanup 2012-06-16 16:08:51 -04:00
Louis-Claude Canon
3cea8889e3 CMake
- Automatically link taskwarrior executable before launching tests with
  "make test".
2012-06-16 16:08:14 -04:00
Louis-Claude Canon
b45a305df2 Enhancement
- Output error, header, footnote and debug messages on standard error.
2012-06-16 16:07:27 -04:00
Louis-Claude Canon
b093d23f1f Typos
- Fix various typos in comments and documentation.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-06-12 16:44:14 -04:00
Paul Beckingham
bfba1c725d Documentation Cleanup
- Modified order of entries.
2012-06-10 17:05:35 -04:00
Paul Beckingham
b2a1c327f4 Typos
- Fixed minor typos in comments.
2012-06-10 17:04:40 -04:00
Louis-Claude Canon
bc2addeb41 Enhancement
- Solve bug #962.
- Improve completion by proposing column names (used when filtering and
  modifying tasks).
2012-06-10 17:01:58 -04:00
Paul Beckingham
1201d0b485 Feature #435
- Feature #435 requests a means to indicate that a task required the
  action of another person.  This is achieved via User Defined Attributes.
2012-06-10 16:54:21 -04:00
Paul Beckingham
fe886b5865 Feature #339
- Feature #339, last review date supported by User Defined Attributes.
2012-06-10 16:50:24 -04:00
Paul Beckingham
fc4a71aa5c Bug #1001
- Fixed bug #1001, which caused a segv (thanks to Bryce Harrington).
2012-06-10 16:47:27 -04:00
Paul Beckingham
0b75fe1311 Feature #325
- Feature #325, User Defined Attributes.
2012-06-10 16:46:09 -04:00
Paul Beckingham
30d3a36f47 Bug #960
- Fixed bug #960, which caused tab-completion to fail after any non-ASCII alpha
  characters were used in a description (thanks to Hyde Stevenson).
2012-06-10 16:30:47 -04:00
Paul Beckingham
858c95e557 AUTHORS
- Added Bruno Bigras for a very helpful and revealing bug annotation.
2012-06-10 16:19:13 -04:00
Paul Beckingham
9a6319a210 Parsing
- Use of broken 'isalpha' caused 'entrée' to be parsed by Nibbler::getName
  as 'entr'.  This is part of bug #1006, but only a small part.
2012-06-10 16:17:09 -04:00
Paul Beckingham
e8309fcf49 Unit Tests
- Added unit test to nibbler.t that illustrates one of the problems
  associated with bug #1006: Nibbler::getName read "entrée" and finds
  "entr".
2012-06-10 15:54:39 -04:00
Paul Beckingham
180ff95649 Bug #1017
- Fixed bug #1017, which exported invalid JSON when there were no tasks (thanks
  to Nicholas Rabenau).
2012-06-10 15:21:55 -04:00
Paul Beckingham
128b139b17 Bug #1016
- Fixed bug #1016, which caused segfaults when importing JSON with annotations
  that lack description or entry date (thanks to Nicholas Rabenau).
2012-06-10 15:03:56 -04:00
Paul Beckingham
3e36438597 Merge branch '2.0.1' of tasktools.org:task into 2.0.1 2012-06-02 12:52:41 -04:00
Paul Beckingham
65e8cc63fc Enhancement
- Added ostream converter for Path object.
2012-06-02 12:52:13 -04:00
Paul Beckingham
f23d8921e4 Enhancement
- Modified the closeEnough function to accept a minimum match length.
  Useful, but initially not used.
2012-06-02 10:05:32 -04:00
Paul Beckingham
b63bd9e985 Feature #921
- Feature #921, which implements a 'udas' command that describes defined UDAs,
  and a '_udas' for completion purposes.
2012-05-28 16:06:33 -04:00
Paul Beckingham
ca1fce280b Feature #922
- Feature #457, #922, tasks may now be given an 'until' date, after which they
  expire and are deleted.
2012-05-28 15:01:38 -04:00
Paul Beckingham
c42706a3dc Bug #1008
- Fixed bug #1008, which failed to remove tasks with the special tag '+nocal'
  from the calendar report output with 'calendar.details=full' set (thanks to
  Bryan Kam).
2012-05-28 12:51:27 -04:00
Paul Beckingham
e99bbf6213 Documentation
- Added new '.' to precedence values in documentation.
2012-05-28 09:20:47 -04:00
Louis-Claude Canon
7a8e292fe8 Bug #990
- Precise in the documentation that the wildcards for color precedence must
  terminate with a dot. If not, 'tag' is completed as 'tagged', which violates
  the default precedence rule.
- Change default precedence rule to reflect this.
- Unit test.
- ChangeLog and AUTHORS file updated.
2012-05-28 09:16:12 -04:00
Louis-Claude Canon
90c420263c Code Cleanup
- Check systematically if the color is non-trivial before blending.
2012-05-28 09:16:05 -04:00
Jörg Plate
f2f6b788e8 Bug #919
- Modified to allow multiple holiday file sources, in other words
  duplicate dates.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-05-26 13:29:50 -04:00
Paul Beckingham
ddd7bc3f0a Enhancement
- Directory handling enhancements with Directory::cwd and Directory::up
  methods, with unit tests.
2012-05-25 18:03:06 -04:00
Paul Beckingham
a9058612a7 ChangeLog
- Added Paul Kishimoto, for bug reporting.
2012-05-24 00:57:43 -04:00
Jörg Plate
43076a6cd7 Bug #919
- Applied patch for bug #919, so the holidays listed on the 'calendar' report
  are sorted (thanks to Jörg Plate).

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-05-24 00:52:46 -04:00
Paul Beckingham
003f092bf4 Unit Tests
- Modified unit tests after the #956 fix.
2012-05-23 07:02:57 -04:00
Louis-Claude Canon
542f1e0f82 Code Cleanup
- Clearer commands for sumarizing the test results.
2012-05-23 06:53:12 -04:00
Louis-Claude Canon
ed5ecb3aa5 ChangeLog Update 2012-05-23 06:53:08 -04:00
Louis-Claude Canon
eae4cae13b Documentation
- Precise that the 'uuids' command applies the filter on all tasks contrarily
  to 'ids'.
2012-05-23 06:53:02 -04:00
Paul Beckingham
f70cad081f Code Cleanup
- Removed whitespace at EOL.
2012-05-23 06:52:36 -04:00
Louis-Claude Canon
988288f6d2 Code Cleanup
- Simpler code for 'ids' command.
- Sort the uuids with 'uuids' and '_uuids' commands (stabler output).
2012-05-23 06:49:31 -04:00
Louis-Claude Canon
0b1b677aa5 Bug #956
- Prevent any verbose information to be printed with the 'ids', 'uuids' and
  helper subcommands.
- Unit tests.
- Precise this behavior in the man pages.
2012-05-23 06:49:25 -04:00
Louis-Claude Canon
fe954a6acc Enhancement
- Similar subcommands for 'uuids' as there is for 'ids' ('_uuids' and '_zshuuids').
- Extends the scope and the precision of the unit tests for ids.
- Corresponding documentation in the man pages.
2012-05-23 06:48:54 -04:00
Louis-Claude Canon
82a4607ec6 Enhancement
- Separate date format when editing from the default one.
2012-05-21 08:20:27 -04:00
Louis-Claude Canon
ba992a631e Enhancement
- Clarify the dateformat related variables for 'task information'.
2012-05-21 08:20:12 -04:00
Louis-Claude Canon
84e1d0e7d2 Code Cleanup
- Centralize the date format determination when editing.
2012-05-21 08:20:01 -04:00
Louis-Claude Canon
72621febd4 Code Cleanup
- Factorize code when printing dates with edit.
2012-05-21 08:19:40 -04:00
Louis-Claude Canon
db2a01ba08 Bug
- Fix the solution for bug #959 (setting new dates was not working properly).
2012-05-21 08:19:36 -04:00
Louis-Claude Canon
9d37262d12 Documentation
- report.info.dateformat is now applied on the entry dates in the journal.
2012-05-21 08:15:52 -04:00
Paul Beckingham
9fe43611d1 Filter Mods
- Changed split type, to improve filter support.
2012-05-21 08:14:16 -04:00
Paul Beckingham
665bc197dc Feature #457
- Tasks may now be given an 'until' date, after which they expire and are
  deleted.
2012-05-13 23:43:53 -04:00
Paul Beckingham
d122173103 Bug
- Fencepost error in colorization.
2012-05-13 18:17:23 -04:00
Paul Beckingham
981121799c Color Rules
- Corrected bug in colorizeScheduled to properly consider the scheduled date.
2012-05-13 18:12:33 -04:00
Paul Beckingham
52dfa8da1e Documentation
- Updated more documentation regarding 'scheduled' dates.
- Added color.scheduled to the rule.precedence.color setting.
- Added 'ready' report to the main man page.
2012-05-13 18:04:48 -04:00
Paul Beckingham
98f215b1b5 Feature: scheduled date
- Supports 'scheduled' date for tasks, which represent the earliest opportunity
  to work on a task.
- Added unit tests for urgency.
- Implemented color rule.
- Added scheduled to 'info' report.
- Updated assorted documentation.
- Removed comments in default rc because they are never seen.
- Added (broken) 'ready' report, which is like 'next' but only for ready tasks.
2012-05-13 17:19:22 -04:00
Paul Beckingham
d08f189769 Holiday Data
- Removed duplicate Patriot's Day from en-US.
2012-05-13 16:56:45 -04:00
Paul Beckingham
b0916904bf Documentation
- Updated DEVELOPER file with info about how to contribute.
2012-05-12 13:16:57 -04:00
Paul Beckingham
4f98c8d9b5 Code Cleanup
- Upgraded the magic number 10 to a constant with dynamic debug warning.
2012-05-12 12:43:54 -04:00
Louis-Claude Canon
66b39f6797 Documentation
- Updated ChangeLog regarding UUID use in dependencies.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-05-07 23:01:42 -04:00
Louis-Claude Canon
1364202d30 Feature
- Allow UUIDs and IDs range when modifying task dependencies.
- Update man page.
- Add unit tests.
- Fatorize code when adding and removing dependencies in Task.cpp.
2012-05-07 22:59:25 -04:00
Louis-Claude Canon
5ffb65b5ac Enhancement
- More consistent test of when adding or deleting a dependency.
- Update one unit test.
2012-05-07 19:59:10 -04:00
Louis-Claude Canon
20ae5fed81 Documention
- Precision on the format for filtering IDs, UUIDs and ranges in the man page.
2012-05-07 19:57:57 -04:00
Louis-Claude Canon
38078e9228 Feature
- Allow ID ranges when editing dependencies.
2012-05-07 19:04:51 -04:00
Louis-Claude Canon
4ee64a52de Feature
- Applied patch to allow ID ranges when editing dependencies.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-05-07 19:03:59 -04:00
Jörg Plate
26420d74c2 Feature #1005
- Applied patch for feature #1005, which prevents the update-holidays.pl script
  from creating duplicate holidays (thanks to Jörg Plate).

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-05-07 18:44:14 -04:00
Paul Beckingham
a15be33713 Performance
- Tweaked sorting defaults.
- Removed obsolete comments in (unwritten) default config file.
2012-05-05 16:09:27 -04:00
Paul Beckingham
dc404d76b9 Unit Tests
- Added tests for bug #1006 (thanks to Louis-Claude Canon).
2012-05-05 14:14:01 -04:00
Paul Beckingham
873376c287 Performance improvements:
- Added parse-free convenience functions
2012-05-05 13:28:02 -04:00
Bryce Harrington
53d829cfc1 A couple minor typo fixes to ChangeLog
Signed-off-by: Bryce Harrington <bryce@canonical.com>
Signed-off-by: Federico Hernandez <f@ederi.co>
2012-05-02 00:09:19 +02:00
Paul Beckingham
ef8486ea1a Unit Tests
- Renamed bug.987.t to bug.987.x until faketime is available to us.
2012-04-30 10:37:39 -04:00
Louis-Claude Canon
1a267aa708 Unit tests
- Added tests for bug #987

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-04-30 10:36:00 -04:00
Louis-Claude Canon
3d6536d1f5 Unit tests
- Added tests for bug #991

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-04-30 10:35:00 -04:00
Louis-Claude Canon
f656c2024d Bug
- Fix sanity check for the first digit of day in a date.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-04-30 09:03:35 -04:00
Louis-Claude Canon
ebdcccbf41 Code Cleanup
- Clean duplicated and unused function.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-04-30 09:01:21 -04:00
Paul Beckingham
0f2901c60c Documentation
- Added missing bug fixes.
2012-04-30 09:00:45 -04:00
Louis-Claude Canon
3440eb0c10 Bug #986
- Complete the previous fix: dates in the journal entries are also formatted
  according to the correct configuration variable.
- Add unit tests.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-04-30 08:49:09 -04:00
Louis-Claude Canon
8b18ee6f50 Bug #959
- Instead of checking if a date in its epoch representation has changed, 'task
  edit' checks if a date has changed in its 'dateformat' representation.
- The check has not been extended to the annotations for a technical reason
  (bug #705).

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-04-30 08:13:03 -04:00
Louis-Claude Canon
ba48cc35d8 Bug #985
- The dates shown and accepted when editing are formated using dateformat even
  for annotations (dateformat.annotation is thus ignored).
- No test is provided because it involves an external editor.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-04-30 08:04:51 -04:00
Paul Beckingham
7b58d9c18c Bug #996
- Fixed bug #996, so that verbosity code and documentation are in agreement,
  and that the 'verbose=off' works as intended (thanks to Peter De Poorter,
  Louis-Claude Canon).
2012-04-30 07:53:09 -04:00
Paul Beckingham
0ae66f457a Bug #954
- Fixed bug #954, which caused bulk deletions when using a UUID filter term and
  the delete command (thanks to Bryce Harrington).
2012-04-29 00:33:51 -04:00
Paul Beckingham
f4bfa1b2fd Bug #995
- Fixed bug #995, which mis-parsed UUIDs in filters as other elements (thanks
  to Bryce Harrington).
- Nibbler no longer permits 8-character UUID abbreviations, because too often
  they resemble other forms, such as '1111111d' which looks like a duration.
- Modified unit tests accordingly.
2012-04-29 00:28:28 -04:00
Paul Beckingham
10aa70a53b Bug #997
- Fixed bug #997, so that output is correctly conrolled by the 'affected'
  verbosity token.
2012-04-29 00:09:34 -04:00
Louis-Claude Canon
9bfda55000 Bug #986
- Update man page relatively to the fix of bug #986

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-04-28 18:10:26 -04:00
Paul Beckingham
b5f4fa03d2 Performance
- Implemented Task::get_ref, which is a lower-cost attribute accessor.
- Called this in a few places.
2012-04-28 18:01:40 -04:00
Paul Beckingham
0c0f767688 Performance
- Added locally cached configuration for urgency coefficients, which effectively
  relocates expensive loop-invariants for the 'next' report.
2012-04-28 17:59:48 -04:00
Paul Beckingham
2668b04901 Performance
- Added std::string::reserve in high-use locations.
- Used Task::get_date over Task::get where possible.
- Added missing code (bug) for waking up any completed tasks that are freshly
  waited.
- Greater use of STL methods for bulk copying.
2012-04-27 02:46:01 -04:00
Paul Beckingham
cd552231e9 Performance
- Eliminated the 'contents' layer, which was never used to the degree
  anticipated.  This reduces memory footprint significantly.
2012-04-27 01:49:26 -04:00
Paul Beckingham
f47648c71f Code Cleanup
- Removed unused defines.
2012-04-27 01:33:11 -04:00
Louis-Claude Canon
9a18d77005 Bug #991
- Fixed bug #991, which removes an obsolete consistency check.
- Removed 'annotations' example from man page, because it is obsolete.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-04-24 23:45:28 -04:00
Louis-Claude Canon
b4d09d1c30 Bug #987
- Fixed bug #987, so that total active time does not continue to accumulate
  after an active task is completed.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-04-24 23:36:04 -04:00
Paul Beckingham
8cbacdacf7 Performance
- Sped up task sorting by skipping re-interpretation of certain data types.
2012-04-24 23:28:42 -04:00
Paul Beckingham
e16b33745e Documentation
- Fixed bug #988, updating the documentation so that 'undo.data' usage is more
  clearly stated (thanks to Louis-Claude Canon).
2012-04-24 00:58:02 -04:00
Paul Beckingham
139011e1ae Performance
- Introduced a new filter optimization that recognizes filters with no 'OR', or
  'XOR' operators, includes IDs, but does not include UUIDs.  This combination
  means completed.data is not referenced.
2012-04-24 00:53:04 -04:00
Paul Beckingham
35122154ef Bug #986
- Fixed bug #986, so that the 'info' report uses the correct date format
  (thanks to Louis-Claude Canon).
2012-04-21 13:02:31 -04:00
Paul Beckingham
5468365b85 Bug
- Missed an 'else' in the code.
2012-04-16 15:31:11 -04:00
Paul Beckingham
fb7c227814 Documentation
- Updated developer docs.
2012-04-16 10:54:44 -04:00
Paul Beckingham
21e172a75a Merge branch '2.0.1' of tasktools.org:task into 2.0.1
Conflicts:
	AUTHORS
2012-04-16 10:54:10 -04:00
Paul Beckingham
d26749fd39 Feature #516
- Feature #516, which allows the duplication of completed tasks (thanks to
  Peter De Poorter, Ethan Schoonover).
2012-04-16 09:03:55 -04:00
Paul Beckingham
0918a7c79a Bug #973
- Fixed bug #973, including 'urgency' in the 'export' output (thanks to Andy
  Spiegl).
2012-04-15 19:45:42 -04:00
Paul Beckingham
d6d9fbd8e7 Code Propagation
- Took a patch to tw from the clog version of Nibbler.
2012-04-14 17:02:04 -04:00
Paul Beckingham
0288fd1ec9 Bug
- Fixed incorrect Lua API return value (thanks to Oleksii Tsai).
2012-04-14 16:18:40 -04:00
Paul Beckingham
062c4a0342 Documentation
+ Fixed man page typos.
2012-04-13 15:13:33 -04:00
Paul Beckingham
4d7369ad5e Documentation
- Added tutorial scripts, which are the 1.9.3 scripts, largely unmodified.
  This is a work in progress.
2012-04-13 00:45:18 -04:00
Paul Beckingham
c51b472694 Bug #968
- Fixed bug #968, a typo in the 'edit' command text (thanks to Victor Roetman).
2012-04-11 07:43:05 -04:00
Paul Beckingham
dd989be887 Documentation
- Removed obsolete section from task-tutorial.5.
- Corrected typos in task-tutorial.5.
2012-04-09 00:30:15 -04:00
Paul Beckingham
8951a2ce23 Documentation
- Removed all the 2.0.0 NEWS items.
- Cleaned up some minor inconsistencies.
2012-04-09 00:22:24 -04:00
Paul Beckingham
2c07837852 Bug
- Fixed bug where ISO dates were parsed and the TZ was modified, which should
  have no bearing on a Zulu time.
2012-04-09 00:16:09 -04:00
Paul Beckingham
dd73cc1ccf Bug #964
- Fixed bug #964, where the 'projects' command showed the wrong priority labels
  (thanks to Ali Mousavi).
2012-04-06 18:55:26 -04:00
Paul Beckingham
6090330d7a Merge branch '2.0.1' of tasktools.org:task into 2.0.1 2012-04-04 20:17:04 -04:00
Paul Beckingham
2203d3364d Bug
- Fixed bug where '6 months' was interpreted as 180 days, but when rendered
  was shown as '5 months' (thanks to Aikido Guy).
- Multiple unit test corrections.
2012-04-04 18:42:11 -04:00
Federico Hernandez
e1d0f6002b Package config
- removed obsolete package config files
- added placeholder READMEs for time being
2012-04-03 21:25:24 +02:00
Paul Beckingham
d4cc4c5745 Documentation
- Added notes in the DEVELOPER file about the need for an external script
  that can fix duplicate UUID problems.
2012-04-02 17:03:29 -04:00
Christoph Robbert
f5b841e8a6 Unit Tests
- Added test for bug #954.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-03-31 15:33:49 -04:00
Paul Beckingham
fee5aad2fa Documentation
- Added an FAQ question that has been asked enough.
2012-03-31 09:35:05 -04:00
Paul Beckingham
6100748511 Bug
- Corrected rounding errors on burndown chart bar size calculations (thanks to
  Uli Martens).
2012-03-26 18:16:09 -04:00
Paul Beckingham
a73c711188 Feature
- The 'summary' report now uses 'project.indented' format.
2012-03-25 18:00:22 -04:00
Paul Beckingham
adb6785931 Feature
- The 'projects' report now uses 'project.indented' format.
2012-03-25 17:59:37 -04:00
Paul Beckingham
17c605502c Feature
- Added new 'indented' format for the 'project' attribute.  Note that
  this is really only useful when a report is sorted by project.
2012-03-25 17:57:55 -04:00
Paul Beckingham
95e36d1145 Enhancement
- Broke the indentTree function into two pieces - one that processes
  a list, the other that processes a single item.  This makes it more
  efficient for use places that have only one element.
2012-03-25 16:54:13 -04:00
Paul Beckingham
29b0d24745 Documentation
- Corrected old information in DEVELOPER file.
2012-03-25 16:29:26 -04:00
Paul Beckingham
667a6e6ef9 Bug
- Fixed grammar in feedback string (thanks to Uli Martens).
2012-03-21 07:39:42 -04:00
Paul Beckingham
f45c9edf2b Code Cleanup
- Removed default configuration value for the obsolete 'annotations' setting.
2012-03-18 10:15:32 -04:00
Paul Beckingham
1274f2ba07 Code Cleanup
- Addressed valgrind complaints by freeing allocations for commands and columns.
  This leaves one complaint about getpwuid, which is either an optional free,
  or not valid, depending on OS.  (Thanks to Bryce Harrington).
2012-03-18 00:27:47 -04:00
Federico Hernandez
3f233e4644 Bumped version number to 2.0.1 2012-03-17 23:05:28 +01:00
Federico Hernandez
b19229b272 Added SHA1 of tagged release commit 2012-03-17 22:59:02 +01:00
Federico Hernandez
03799eba9f Release date for 2.0.0 2012-03-17 21:34:41 +01:00
Federico Hernandez
f0924d9adf Bumped date in man pages to release date 2012-03-17 21:32:00 +01:00
Paul Beckingham
ac4d90f1f6 Feature Pulled
- Removed the feature that allows commands to be piped in to stdin,
  and appended to any existing command line.  This feature is
  conditionally compiled, controlled by the FEATURE_STDIN define in
  main.h
- Many unit tests contained "echo '-- y'", and now use "echo 'y'"
  because the '--' is no longer supported on stdin.
- Thanks to the IRC team for testing, including Bryce Harrington,
  Sam Stuck, Owen Clarke, Greg Grossmeier.
2012-03-17 10:46:05 -04:00
Paul Beckingham
80d6655709 Bug
- Fixed problem where 'project' was not supported as a verbosity token (thanks
  to Adam Gibbins).
2012-03-17 10:11:55 -04:00
Paul Beckingham
deb12102f6 Delay Decrease
- Reduced the delay to 1ms.  Note: this is still a hack.
- Added error checking around the 'select' call.
2012-03-15 22:34:37 -04:00
Paul Beckingham
c5d3042bbf Delay Increase
- Increased delay to 0.05s.
- Added Sam Stuck to AUTHORS, by way of thanks.
2012-03-15 20:41:15 -04:00
Paul Beckingham
5f13019d05 Ubuntu 'select' Fix
- Added a delay before the 'select' call on STDIN, to allow time for
  the data to buffer.  Experimental patch.
2012-03-15 20:20:08 -04:00
Paul Beckingham
773b028865 Portability
- Fixed code that generated warning on Ubuntu.
2012-03-14 17:53:24 -04:00
Paul Beckingham
2c90bca134 Bug #950
- Fixed bug #950, which warned about dependency chain problems during
  annotation, which makes no sense (thanks to Uli Martens).
2012-03-14 00:32:45 -04:00
Paul Beckingham
948bbe8745 Bug #946
- Fixed bug #946, which caused 'edit' command problems when
  'dateformat.annotation' did not contain any date elements (thanks to Tuomas
  Toivola).
2012-03-14 00:17:56 -04:00
Paul Beckingham
99e058cbe7 Bug #952
+ Fixed bug #952, which caused cmake complaints under Cygwin.
2012-03-14 00:03:01 -04:00
Paul Beckingham
86e74c1020 Code Cleanup
- Removed unused function and corresponding unit tests.  YAGNI.
2012-03-11 15:33:45 -04:00
Paul Beckingham
166f3202e1 Documentation
- Updated reference card for accuracy.
- Updated task-color.5.in man page.
2012-03-06 18:18:15 -05:00
Owen Clarke
9951da5710 Bug
- Added bounds check before call to string::substr to avoid passing a
  negative start pos. Test rc.t was broken from commit 0ac9a4b because
  it contains 'report.:b' and legacyCheckForDeprecatedVariables was
  trying to substr starting from pos 'length() - 12' (-3).
2012-03-06 23:32:24 +11:00
Paul Beckingham
507ee20f3b Unit Tests
- Fixed UDA test that didn't allow for missing data.
2012-03-06 01:33:26 -05:00
Paul Beckingham
7a1b219c2c Documentation
- Updated taskrc.5.in to match the 2.0 supported set.
2012-03-06 01:23:01 -05:00
Paul Beckingham
0ac9a4b3df Deprecated
- Made proper note of deprecated configuration variables.
2012-03-06 01:22:16 -05:00
Paul Beckingham
202959898d Documentation
- Added the version info to the task.1.in man page.
2012-03-06 01:21:16 -05:00
Paul Beckingham
6db7285f70 Documentation
- Corrected man page against reality.
2012-03-06 00:37:21 -05:00
Paul Beckingham
8537ddbb5a Documentation
- Corrected command usages.
- Corrected help command output.
2012-03-06 00:36:37 -05:00
Paul Beckingham
2ab2497126 Configuration
- Removed obsolete configuration defaults.
2012-03-06 00:35:21 -05:00
Paul Beckingham
c8027a17c1 Feature
- Missing data now tolerated for UDAs.
- Info command includes all column data, even for unrecognized types.
2012-03-05 22:49:41 -05:00
Owen Clarke
8177b74a52 Unit Tests
- Fixed compile warning caused by an ambiguous decimal type.
2012-03-05 19:57:14 +11:00
Paul Beckingham
a95832ff3b Unit Tests
- Changed a test that adds a task that is due in one hour, then
  verifies that the task is 'due'.  This fails when run between
  the times 2300 and 2400.  Now the test makes the task due in
  5 minutes, which narrows the window when the test can fail.
  This no longer coincides with the time the tinderbox runs.
2012-03-04 20:30:54 -05:00
Paul Beckingham
27c30d1b65 Unit Tests
- Fixed warning caused by misinterpretation of arguments, by coercion.
2012-03-04 19:37:26 -05:00
Paul Beckingham
6d1e14ea3e Portability
- Modified cmake files to allow for clang/llvm as well as gcc.
2012-03-04 18:58:40 -05:00
Owen Clarke
4792517515 Bug #936
- Fixed nag.t failing with Perl 5.8.4
2012-03-05 09:16:11 +11:00
Paul Beckingham
77ac156060 AUTHORS
- Promoted Owen.
2012-03-04 16:39:08 -05:00
Owen Clarke
f36f483d1e Bug #944
- Fixed merge.t failing when run on an NFS share
2012-03-05 08:26:08 +11:00
Paul Beckingham
f898120829 Documentation
- Updated taskrc.5 to reflect deprecated configuration values.
2012-03-04 12:54:40 -05:00
Paul Beckingham
77200d7eb4 Bug #837
- Fixed bug #837, which caused incorrect urgency calculations for tasks that
  have completed dependencies, and problems when editing those tasks (thanks
  to Matt Kraai).
- Added Task::addDependency (const std::string&) method for reconstructing
  dependencies on tasks with no ID.
- Modfified Task::urgency_blocked so that it considers the blocking task's
  status.  This is an expensive test, and so it is wrapped by a cheaper test
  to see if there are/were any dependencies at all.  This means that urgency
  calculations are not slowed for tasks without dependencies, and is slower
  but more accurate for tasks that do have dependencies.
- Modified edit command so that dependencies are shown as IDs or UUIDs
  depending on whether the task is pending or not.
- Modified edit command so that dependencies are parsed as IDs or UUIDs
  depending on whether the task is pending or not.
- Modified wording in the template of the edit command to reflect the above.
- Added unit tests bug.837.t.
2012-03-04 00:05:11 -05:00
Paul Beckingham
1582fb1f88 Version bumped. 2012-03-03 17:05:22 -05:00
Paul Beckingham
94627df5de Portability
- Fixed compiler warnings on Ubuntu.
2012-03-03 16:25:55 -05:00
Paul Beckingham
761ef296ad Code Cleanup
- Eliminatd helpers.cpp, and the redundant getFullDescription function
  therein.
- The timesheet report now uses standard description formatting.
2012-03-03 16:08:21 -05:00
Paul Beckingham
a300dba2df Code Cleanup
- Removed use of getFullDescription in CmdInfo.
2012-03-03 15:41:07 -05:00
Paul Beckingham
ee92438ba8 Documentation
- Updated DEVELOPER information.
2012-03-03 15:34:13 -05:00
Paul Beckingham
facb795f88 Code Cleanup
- Eliminated redundant getDueDate helper function.
2012-03-03 14:40:35 -05:00
Paul Beckingham
0f4bcefcff Code Cleanup
- Relocated code from helper.cpp to feedback.cpp.
- Fixed typo.
2012-03-03 14:24:41 -05:00
Paul Beckingham
524f7f0919 Unit Tests
- Now that the 'diagnostics' command can detect duplicate UUID
  values, it makes sense to incorporate that into unit tests that
  employ multiple recurring tasks.
2012-03-03 10:05:27 -05:00
Paul Beckingham
173d24b3fb Oops
- Inadvertently committed a UDA formatting change that isn't ready.
2012-03-03 09:50:43 -05:00
Paul Beckingham
46b275c3ce Feedback
- When bulk tasks are modified, the "project changed" messages are
  now retained until processing is completed, so that only one message
  per project is generated.
2012-03-03 09:46:11 -05:00
Paul Beckingham
d4f85484df Internals
- Modified color processing so that it can be disabled completely at
  compile time.  This is to assist the Windows port.
2012-03-03 09:08:46 -05:00
Paul Beckingham
d230ea4001 Diagnostics
- The 'diagnostics' command now checks for duplicate UUID values in the data.
2012-02-28 01:22:57 -05:00
Paul Beckingham
50825bc61a Bug #851
- Fixed bug #851, which failed to recognize durations like '1day' when
  filtering date attributes (thanks to Philipp Woelfel).
- Added unit tests.
2012-02-28 00:27:48 -05:00
Paul Beckingham
9eee2e3e3e Bug #447
- Indicated that #447 was fixed alongside #942.
2012-02-27 20:18:11 -05:00
Paul Beckingham
8c0971425f Bug #942
- Fixed bug #942, which only allowed dates to be edited if they changed day
  (thanks to Owen Clarke).
2012-02-27 20:10:19 -05:00
Paul Beckingham
e42a5a831a Bug #865, #886
- Fixed bugs #865 and #886, which caused silent failure of unrecognized dates
  (thanks to Michelle Crane).
2012-02-27 00:36:53 -05:00
Paul Beckingham
5feb736939 Bug
- Fixed problem where urgency was not properly calculated for waiting tasks.
- Tweaked urgency coefficients to make most of the values closer together, and
  therefore more sensitive.
- Inverted 'waiting' coefficient.
- Boosted 'next', 'due' and 'blocking' coefficients.
- Modified unit tests accordingly.
- Lessened the impact of 'blocked', 'project', 'tags' and 'age'.
2012-02-26 23:13:15 -05:00
Owen Clarke
9fb015f72c Portability
- Added new 'format' overload to resolve compiler warnings on Solaris.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-26 18:49:13 -05:00
Paul Beckingham
0fe5887af8 Unit Tests
- Change #819 test to pass, because the bug is deferred.
- Change #884 test to pass, because the bug is deferred.
- Added Najmi Ahmad Zabidi to AUTHORS file, for suggesting a specific
  verbosity control.
- Added some stealth unit tests.
2012-02-26 17:56:15 -05:00
Paul Beckingham
8af872e289 Bug
- Fixed problem where update-holidays.pl did not use the YYYYMMDD date foramt.
2012-02-26 17:05:16 -05:00
Paul Beckingham
824cba7152 Bugs #552, #863
- Fixed bug #552, where 'rc.verbose=off' suppressed warnings (thanks to Peter
  De Poorter).
- Fixed bug #863, which suppressed report labels with rc.verbose=off (thanks to
  Michelle Crane).
2012-02-26 17:01:13 -05:00
Paul Beckingham
45dba8805c Documentation
- Added deprecated configuration file values.
2012-02-26 15:06:55 -05:00
Paul Beckingham
5b3cba2e70 Unit Tests
- Enabled more recurring task tests.
2012-02-26 14:57:21 -05:00
Paul Beckingham
bcf416e71f Unit Tests
- Added tests for #884.
2012-02-26 14:38:48 -05:00
Paul Beckingham
ceabcdd6c3 Unit Tests
- Reduced complexity in the test.
2012-02-26 14:37:01 -05:00
Paul Beckingham
5396c718ef Unit Tests
- Added test to illustrate the workaround.
2012-02-26 14:02:40 -05:00
Paul Beckingham
1f5146e7a0 Unit Tests
- Corrected test count and removed diag output.
2012-02-26 13:39:55 -05:00
Paul Beckingham
9d74b55d48 Feature #725
- Added feature #725, which provides feedback when tasks become unblocked.
- Added unit tests.
2012-02-26 13:08:40 -05:00
Paul Beckingham
56f0281ab1 Git
- Added doc/misc/tutorial to .gitignore to get it out of my face.
2012-02-26 12:35:43 -05:00
Paul Beckingham
3133616b67 Unit tests
- Enabled some disabled regex filter tests.
2012-02-26 10:57:59 -05:00
Owen Clarke
7c2d97d939 Unit Tests
- Fixed 'witching hour' bug in unit tests that causes problems when run
  in assorted time zones.  By using str2time to get the epoch value of
  a known local time, this should fix failures that occur.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-25 23:13:41 -05:00
Owen Clarke
049f34d339 Portability
- Improved run_all script to run on Solaris.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-25 23:10:11 -05:00
Paul Beckingham
a9de8a6596 Verbosity
- Tweak to 'affected' token.  Needs more.
2012-02-24 18:27:39 -05:00
Paul Beckingham
e0aabe08bf Unit Tests
- Fixed broken DOM tests.
2012-02-24 18:26:35 -05:00
Paul Beckingham
a495b05d6b Bug #938
- Made alternate fix to CmdUrgency.cpp, to avoid the ambiguity around
  the format() signatures (thanks to Owen Clarke).
2012-02-23 20:48:01 -05:00
Owen Clarke
87853bdd78 Bug #938
- Fixed compiler warnings on Solaris.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-23 20:43:54 -05:00
Owen Clarke
25a1b89156 Bug #938
- Fixed incorrect return type.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-23 20:33:05 -05:00
Paul Beckingham
9c641fd778 Credit
- Updated ChangeLog to reflect recent patches.
2012-02-23 20:27:38 -05:00
Owen Clarke
3ba0b62783 Bug #937
- Fixed problem with incomplete 'stat' path.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-23 20:23:05 -05:00
Owen Clarke
8e5afa0d8a Bug #936
- Fixed failing tests on Solaris.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-23 20:16:39 -05:00
Owen Clarke
ed6bdd7bdc Bug #936
- Fixed failing tests on Solaris.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-23 20:13:44 -05:00
Owen Clarke
3b9a737ac4 Bug #936
- Fixed failing tests on Solaris.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-23 19:58:42 -05:00
Paul Beckingham
15a0d7a801 Bug #880
- Fixed bug #880, which listed the wrong file paths for themes (thanks to Peter
  Lewis).
2012-02-23 17:26:52 -05:00
Federico Hernandez
8521e6d1e7 New try for RC1 2012-02-22 01:39:45 +01:00
Paul Beckingham
21e006319a Beta5
- Set version back to beta5 for a quick patch.
2012-02-21 19:30:33 -05:00
Paul Beckingham
33e2a1b52c Merge branch '2.0.0' of tasktools.org:task into 2.0.0 2012-02-21 19:29:11 -05:00
Paul Beckingham
1a7ed9e137 Debugging
- Inadvertently left in a debug statement.
2012-02-21 19:26:17 -05:00
Federico Hernandez
efa1914be5 Bumped version number to RC1 2012-02-22 01:09:49 +01:00
Paul Beckingham
1f8e823593 Holidays Updated
- Modified update-holidays.pl script to include the MIT license.
- Added the URLs used to download the data, in the data.
- Added a refresh script to freshen the files.
2012-02-21 17:23:57 -05:00
Paul Beckingham
b17be021db Credit
- Added Luke Macken to the AUTHORS file.  Forgot to include it in the
  previous patch.
2012-02-20 17:37:38 -05:00
Luke Macken
1358a8302f Portability
Manually include unistd.h in a couple of places get things building with gcc
4.7, which removed it from the global namespace. This fixes the following build
errors:

    src/A3.cpp:283:3: error: 'STDIN_FILENO' was not declared in this scope
    src/commands/CmdEdit.cpp:598:30: error: 'getpid' was not declared in this scope
    src/commands/CmdEdit.cpp:603:47: error: 'chdir' was not declared in this scope

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-20 17:31:30 -05:00
Paul Beckingham
39998d5cc5 Bug #932
- Fixed bug #932, which fixed change propagation for recurring tasks (thanks to
  Jennifer Cormier).
- Added unit tests, corrected some.
2012-02-20 17:25:31 -05:00
Paul Beckingham
259f39f2d2 Performance
- Corrected performance measurement.  The TDB2::gc requires data to
  be loaded first, but load time is measured separately.  This resulted
  in repeat counting.  Now the gc time subtracts any load time that is
  accumulated *during* the gc.  This is now a fair accounting of the time.
2012-02-20 09:26:52 -05:00
Paul Beckingham
d386081c4c Bug
- Modified format 'uuid.short' to show the leftmost 8 characters from
  a UUID, which is the same as partial UUID matching implemented in
  #891.
2012-02-20 01:23:34 -05:00
Paul Beckingham
9f8165e3c6 Bug #932 (part 1)
- Fixed bug that caused only parent recurring tasks to have their attributes
  properly removed.
- When duplicating a parent recurring task, a new recurring parent task is
  created.  When a child recurring task is duplicated, a plain task is created.
- Added unit tests.
- Thanks to Jennifer Cormier.
2012-02-20 01:10:42 -05:00
Paul Beckingham
0a0e8f0d6b Bug - UTF8
- Fixed bug in the handling of UTF8 JSON data from holidata.net, when
  update-holidays.pl when decoding and writing files.
2012-02-19 23:22:45 -05:00
Paul Beckingham
7a45db4d0f Feature #891
- Added feature #891, which allows for leftmost partial matches of UUID values.
  Makes direct comparisons for full-length values, and regular expressions for
  partial values.  Note that there is a minimum length of 8 hex digits.
- Added safety parsing mechanism that fails a partial UUID if immediately
  followed by a hex digit.  This allows for numbers longer than 8 digits to not
  be misinterpreted as a UUID.
- Implemented Nibbler::getPartialUUID.
- Implemented unit tests.
@@ -1145,12 +1145,23 @@ const A3 A3::sequence (const A3& input) const

   for (unsigned int i = 0; i < uuids.size (); ++i)
   {
-    if (ids.size ())
+    if (ids.size () + i > 0)
       sequenced.push_back (Arg ("or", Arg::cat_op));

-    sequenced.push_back (Arg ("uuid",        Arg::type_string, Arg::cat_dom));
-    sequenced.push_back (Arg ("=",                             Arg::cat_op));
-    sequenced.push_back (Arg (uuids[i],      Arg::type_string, Arg::cat_literal));
+    // A full-length UUID requires a string comparison.
+    if (uuids[i].length () == 36)
+    {
+      sequenced.push_back (Arg ("uuid",         Arg::type_string, Arg::cat_dom));
+      sequenced.push_back (Arg ("=",                              Arg::cat_op));
+      sequenced.push_back (Arg (uuids[i],       Arg::type_string, Arg::cat_literal));
+    }
+    // A UUID fragment is a leftmost comparison.
+    else
+    {
+      sequenced.push_back (Arg ("uuid",         Arg::type_string, Arg::cat_dom));
+      sequenced.push_back (Arg ("~",                              Arg::cat_op));
+      sequenced.push_back (Arg ("^" + uuids[i], Arg::type_string, Arg::cat_rx));
+    }
   }

   sequenced.push_back (Arg (")", Arg::cat_op));
@@ -1674,11 +1685,11 @@ bool A3::is_uuid (Nibbler& n, std::string& result)
   n.save ();
   result = "";
   std::string uuid;
-  if (n.getUUID (uuid))
+  if (n.getPartialUUID (uuid))
   {
     result += uuid;
     while (n.skip (',') &&
-           n.getUUID (uuid))
+           n.getPartialUUID (uuid))
     {
       result += ',' + uuid;
     }
@@ -1997,13 +2008,13 @@ bool A3::extract_uuid (
   Nibbler n (input);

   std::string uuid;
-  if (n.getUUID (uuid))
+  if (n.getPartialUUID (uuid))
   {
     sequence.push_back (uuid);

     while (n.skip (','))
     {
-      if (!n.getUUID (uuid))
+      if (!n.getPartialUUID (uuid))
         throw std::string (STRING_A3_UUID_AFTER_COMMA);

       sequence.push_back (uuid);
2012-02-19 22:27:40 -05:00
Paul Beckingham
c785836083 Feature #632
- Added feature #632, which allows environment variables TASKRC and TASKDATA
  to override .taskrc and .task directory locations (thanks to Steve Rader).
- Added unit tests.
+
2012-02-19 18:59:28 -05:00
Paul Beckingham
09431caf1c Bug
- Tag matching was being performed using the regex \b<tag>\b, which makes
  taskwarrior dependent on regex lib bugs for basic functionality.  This is
  now modified to use pseudo-operators _hastag_ and _notag_.
2012-02-19 17:20:11 -05:00
Michal Vyskocil
78e5891cd3 Portability
- lua_open has been declared as deprecated in lua 5.1 and removed from
  5.2. Usage of luaL_newstate is thus recommended in both series.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-15 19:26:26 -05:00
Paul Beckingham
26cc4e11f5 Unit Tests
- Improved verbosity unit tests.
2012-02-13 06:16:18 -05:00
Uli Martens
7fe5fc80e9 Bug #636
- Fixed bug #636, which causes the burndown reports to not honor the
  _forcecolor=off setting (thanks to Steve Rader, Uli Martens).

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-13 06:15:27 -05:00
Paul Beckingham
28a4947234 Bug #818
- Fixed bug #818, which caused partial tag matching (thanks to Joe Holloway).
- Note that the regex word boundary anchors are different for Solaris
  and Linux, and largely broken on OSX.
- Added unit tests.
2012-02-12 10:42:24 -05:00
Paul Beckingham
efb2476c15 Unit Tests
- Added bug.924.t unit tests.  I cannot replicate the bug, but a
  regerssion test should prevent any recurrence.
2012-02-12 08:41:08 -05:00
Uli Martens
0f60e8c758 Bug #929
- Fixed bug #929, which corrected argument handling for aliases.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-12 08:15:45 -05:00
Ralph Bean
53ac325705 Patch to fix broken build.
Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-05 22:47:36 -05:00
Paul Beckingham
96fe3f42ba Minor Refactoring
- Added support for more type-specific checks of attribute values.
- Added support for more type-specific attribute rendering.
- Improved generalized methods for checking columns in a report.
- Added unit tests.
- Minor code cleanup.
- Added secret hidden feature for internal testing.
2012-02-05 20:56:46 -05:00
Paul Beckingham
cffc42484e Code Cleanup
- Removed non-STL Nibbler method, which makes way for a future optimization
  in the form of a non-copying Nibbler.
2012-02-05 15:28:09 -05:00
Paul Beckingham
c0f8ab3249 Configuration Cleanup
- Fixed typos in default config file.
- Removed default values for edit.verbose and echo.command, both of
  which are deprecated.
2012-02-05 14:37:22 -05:00
Paul Beckingham
412396d35b Code Cleanup
- Removed restriction on waiting recurring tasks.
- Removed unused L10N string.
- Removed unnecessary include.
2012-02-05 10:08:10 -05:00
Paul Beckingham
86f113a24c Feature #609
- Added feature #609, which allows suppression of output labels and verbose
  text.
2012-02-03 00:05:46 -05:00
Paul Beckingham
8abc541777 Bug #906
- Fixed bug #906, which caused problems with inverted project matching (thanks
  to Uli Martens).
2012-02-02 23:51:31 -05:00
Paul Beckingham
565d14962d Bug #910
- Fixed bug #910, which caused unexpected behavior when duplicating a recurring
  task (thanks to Jennifer Cormier).
- Fixed typo in duplicate command that failed to remove the 'mask' attribute.
2012-02-02 23:31:22 -05:00
Paul Beckingham
2ce9322a28 Bug #917
- Fixed bug #917, which mis-encoded quotes (thanks to Uli Martens).
- Added unit tests.
- Minor unrelated edits.
2012-02-02 22:58:36 -05:00
Paul Beckingham
89b5c91a35 Unit Tests
- Corrected method name.
2012-01-30 20:27:50 -05:00
Paul Beckingham
1619441f87 Theme Sample generation
- Generating snapshots of themes now automated.
2012-01-30 20:27:17 -05:00
Paul Beckingham
bff868145d Bug #901
- Fixed bug #901, which was preventing multiple IDs and UUIDs from being used
  as a filter (thanks to Bryce Harrington).
2012-01-30 01:00:45 -05:00
Paul Beckingham
36e5e650d4 Feedback
- Converted std::cout to context.footnote, for custom reports and burndown.
  Not sure why they were wrong.
2012-01-30 00:42:15 -05:00
Paul Beckingham
5e4f7feff8 Performance
- Added a shortcut test that speeds up the decode process for most cases.
2012-01-30 00:18:53 -05:00
Paul Beckingham
5609711d47 Feature #571 - Special tag feedback
- The verbosity token 'special' now controls whether the feedback is provided
  when special tags are added to a task.
- Added new 'special' verbosity token documentation to man page.
- Added missing 'next' special tag to man page.
- Added new localized strings for describing special tags.
2012-01-29 18:28:07 -05:00
Paul Beckingham
bf9e14f581 Bug 899
- Fixed bug #899, which displayed incorrect project completion numbers (thanks
  to Paul-Gheorghe Barbu).
- Added unit tests.
2012-01-29 17:44:43 -05:00
Paul Beckingham
c092b027a6 Code Cleanup
- Removed 'synch_key' tests and file I/O.  Soon, soon...
2012-01-29 17:42:52 -05:00
Paul Beckingham
ec96d929a0 Bug 879 - Description/Annotation ending with Slash Causes Problems
- Backslashes actually.  The escaping mechanism in the low-level parser
  was eating leading \ characters when it should not.  Very hard bug to
  find, trivial to fix.
- Added unit tests to several components while narrowing this down.
2012-01-29 15:36:05 -05:00
Paul Beckingham
7a2bf28005 ChangeLog
- Updated ChangeLog to reflect several bugs that have been fixed, but
  were not reported.
2012-01-28 17:18:34 -05:00
Paul Beckingham
e05b3633f2 Bug - Summary report broken linefeeds
- Applied same #907 patch for CmdHistory.cpp to CmdSummary.cpp.
2012-01-28 10:43:11 -05:00
Paul Beckingham
6cf9790fac Code Cleanup
- Removed code that creates the ~/.task/extensions directory, which will not be
  needed until 2.1.  Until then, it is clutter.
2012-01-28 10:37:14 -05:00
Uli Martens
529161b711 Bug #905
- The problem was that the routine dependencyIsCircular() changed its behaviour
  in git revision 726fc33fe4, and the new version
  only checked tasks by id - but all completed/deleted tasks have the id0, which
  led to the problem.  The fix is extremelly simple, just get the dependencies
  by uuid instead of by id.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-01-23 06:24:51 -05:00
Paul Beckingham
6145f2d4a8 Typo
- Fixed typo in L10N name month names.
2012-01-22 14:41:00 -05:00
Uli Martens
851347fccc Bug #907
- The bug first occured in commit 36ed70ad93 and
  seems to be caused by the rewritten break point detection. This adds linefeeds
  into the table output, where they're not wanted.  This can be fixed by marking
  the respective tables as nonbreakable, as done in the attached patch.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-01-18 07:29:08 -05:00
Ralph Bean
184ba60df4 Portability
- Fixed GCC 4.3 compilation error.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-01-17 18:12:27 -05:00
Paul Beckingham
fe467640ca Bug #902 - 'task version' requires a .taskrc
- Added special case support for '--version' which bypasses all
  configuration.  Not documented.  For extension prgorams like
  'taskhelm', that need to determine whether taskwarrior is
  sufficiently current.
2012-01-16 22:44:59 -05:00
Paul Beckingham
15d25d4fdf Lua
- Tweaks to the Lua and extension API.  Note that this is a documentation-only
  change, meaning the design is being honed.  No support exists yet.
2012-01-15 11:39:53 -05:00
Paul Beckingham
15030599fd Unit Tests
- Added more verbosity token tests, which show up some unimplemented
  loose ends.
2012-01-12 16:49:54 -05:00
Paul Beckingham
35fdb4058d Doucmentation
- Updated PUNCHLIST doc, which at this point isn't very useful.
2012-01-12 16:48:38 -05:00
Paul Beckingham
7cc3544f74 Bug #897
- Fixed bug #897, which omitted the UUID field from the 'completed'
  report, which is essential if you need to modify a completed task
  (thanks to Eli Lev).
2012-01-12 16:47:08 -05:00
Paul Beckingham
205d4fe29f Cleanup
- Removed git conflict marker (thanks to Uli Martens).
2012-01-12 01:06:26 -05:00
Paul Beckingham
71a15f9d44 Documentation
- Corrected some example command lines (thanks to Eric Fluger).
2012-01-10 23:21:21 -05:00
Paul Beckingham
9853bfee46 Unit Tests
- Restored a 'skip' unit test, because it works most of the time, and
  only fails during the one end of daylight savings day.  Along with
  several others.
2012-01-10 23:19:54 -05:00
Paul Beckingham
0c93d22720 Merge branch '2.0.0' of tasktools.org:task into 2.0.0
Conflicts:
	DEVELOPER
2012-01-10 18:00:08 -05:00
Ralph Bean
36ed70ad93 Exports
- Provided sample sqlite3 export script in Python, to serve as a
  starting point for anyone wanting to migrate taskwarrior data into
  a SQL database.  Illustrates JSON parsing and separation of the
  relational data.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-01-10 17:58:34 -05:00
Ralph Bean
76e87173e1 Exports
- Provided sample sqlite3 export script in Python, to serve as a
  starting point for anyone wanting to migrate taskwarrior data into
  a SQL database.  Illustrates JSON parsing and separation of the
  relational data.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-01-07 12:31:08 -05:00
Paul Beckingham
0215e708ad Unit Tests
- Fixed bug in TAP 'diag' output generation, which was missing a newline.
2012-01-05 23:29:33 -05:00
Paul Beckingham
938a33f236 Unit Tests
- Typo in #ifdef caused incorrect number of reported tests.
2012-01-05 20:17:03 -05:00
Owen Clarke
7c90d1e8cc Bug - Default TZ not always UTC.
From Owen:

I tried mktime on Darwin an Linux; looks like they both default to UTC if the TZ
environment variable is unset but on Solaris it defaults to the local timezone.
I compiled and ran the tests and checked the behaviour by running:

date
TZ="" date
TZ="UTC" date

On Solaris the first two are in local time and the third is in UTC.
On Darwin and Linux the first one is in local time and the other two are in UTC.

Found this as a reference, too, which mentions the suggested implementation in
'man 3 timegm':

http://stackoverflow.com/questions/6467844/is-c-mktime-different-on-windows-and-gnu-linux

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-01-05 18:08:24 -05:00
Owen Clarke
afcd362f67 + Fixed problem with duplicate 'project changed' messages.
Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-01-05 17:43:29 -05:00
Paul Beckingham
fb38dca1db Parsing
- Integrated modified Nibbler and test code from kronisk.  These
  changes make both test and Nibbler standalone objects, with configurable
  features.
2012-01-05 17:37:50 -05:00
Paul Beckingham
a262d41828 Backlog
- Removed backlog file processing, which slows down processing.  When
  2.1 has taskd support, the backlog will be cleared, but until then there
  is no point in accumulating transactions.
2012-01-03 00:55:20 -05:00
Paul Beckingham
bdc1d558f5 Cleanup
- Removed stats message that was taskd-specific.  It will be re-added
  for 2.1.
2012-01-03 00:45:26 -05:00
Paul Beckingham
6580095002 Copyright
- Year change.
2012-01-02 23:32:10 -05:00
Paul Beckingham
4eb5c8a0db Urgency
- Made the default urgency.age.coefficient non-zero.
- Updated documentation regarding new configuration settings.
2012-01-02 22:33:25 -05:00
Paul Beckingham
b35a2f54bb Documentation
- Removed "suspicion" comment about the autovivifying of map keys.
  Credited Dmitriy properly.
2011-12-31 11:39:50 -05:00
Paul Beckingham
2e2521a4cf Bug #892
- Possible fix for bug #892, which I cannot replicate anyway.  This fix
  involves testing my suspicion that std::map autovivifies via
  std::map::operator[], which is not nice.  Will ask Dmitriy to confirm.
2011-12-31 11:00:30 -05:00
Paul Beckingham
0c0999e9a8 Documentation
- Added note about the failing unit tests that always happens at
  EOY.
2011-12-31 10:12:50 -05:00
Paul Beckingham
0001457612 Enhancement
- Added indentTree function that will provide the basis for a new 'projects'
  command, and potentially more.  Includes unit tests.  Based on a patch from
  Ralph Bean.
2011-12-27 15:32:51 -05:00
Paul Beckingham
fb842cd5f5 Documentation
- Finished incomplete sentence.
2011-12-18 12:37:09 -05:00
Wilhelm Schuermann
726fc33fe4 Bug #887
- Fixed circular dependency detection by implementing a basic DFS

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-12-18 12:11:14 -05:00
Wilhelm Schuermann
30a97f5f52 Cleanup
- Removed unnecessary definitions of max() and min(), replaced existent calls
  with std::max().  Precursor to Bugfix #887.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-12-18 10:13:21 -05:00
Johannes Schlatow
69fecbb2c0 Urgency
- Age-dependet urgency calculation now normalizes.
2011-12-17 19:08:31 +01:00
Johannes Schlatow
3d33d90d57 Urgency
- Added a coefficient for ageing which is the increase (or decrease)
   of urgency per day. The calculated urgency offset due to ageing
   can be limited by setting urgency.age.max.
2011-12-16 20:54:03 +01:00
Paul Beckingham
52f70f6901 Regexes
- Added support for \< and \> for Solaris (thanks to Owen Clarke).
2011-12-16 07:44:19 -05:00
Owen Clarke
f173469f98 Unit Tests
- Fixed test so it work on Solaris and Perl 5.8.4.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-12-16 07:36:46 -05:00
Owen Clarke
c978baf36a Bug
- Fixed bug that was not properly evaluating cases where recurrence was
  being removed from a task.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-12-15 21:06:46 -05:00
Paul Beckingham
dac2838ecc Documentation
- Removed completed item from DEVELOPER file.
2011-12-10 10:39:07 -05:00
Martin Klepsch
782e3936b8 - Adds "monthly" as frequency to manpage
Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-12-10 10:20:01 -05:00
Johannes Schlatow
56d652d058 Unit Tests
- re-opened bug #819
2011-12-02 17:11:50 +01:00
Paul Beckingham
e99a03dbcb Unit Tests
- Automatically passes tests that are known problems on OSX.  These are
  limitations in the regex library that cannot be worked around.
2011-12-01 01:01:16 -05:00
Paul Beckingham
1d9a11f8ea I18N
- Localization of CmdEdit.cpp, which means L10N is complete.
2011-12-01 00:46:54 -05:00
Paul Beckingham
c25bb6404f Merge branch '2.0.0' of tasktools.org:task into 2.0.0 2011-12-01 00:04:04 -05:00
Paul Beckingham
375faf8cd8 I18N
- Localized feedback.cpp, helpers.cpp.  One more source file left!
2011-12-01 00:03:26 -05:00
Johannes Schlatow
38aef0d8b4 Bug
- Fixed that 'ssh://host/~/path' was wrongly translated into
   scp syntax; it must be 'host:~/path' instead of 'host:/~/path'
2011-11-30 00:15:08 +01:00
Johannes Schlatow
d8d2060b39 Bug #871
- Fixed escaping of spaces for scp and curl
2011-11-30 00:12:20 +01:00
Johannes Schlatow
edad4d2ee6 Feature #881
- Passwords in URIs will now be obscured
   (affects the commands show, merge, pull and push)
2011-11-29 22:38:33 +01:00
Johannes Schlatow
f20163ef7d Bug
- Fixed bug that marked config variables
   {push,pull,merge}.*.uri as "unrecognized".
2011-11-29 22:35:03 +01:00
Johannes Schlatow
ab575372d7 Feature #881
* fixed output for local URIs
2011-11-28 23:37:28 +01:00
Johannes Schlatow
ea44eaac1c Feature #881
* Output of URIs (during merge, pull, push) now omits passwords.
2011-11-28 22:45:31 +01:00
Dirk Deimeke
93337f499e Bug
- Applied patch from Dirk to fix a problem on Cygwin with a $PATH
  that contain spaces.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-11-22 07:08:51 -05:00
Paul Beckingham
e7428663d2 L10N
- Added mechanism that displays the target language and tranlator's name
  for non-standard localizations.
2011-11-20 19:52:54 -05:00
Matt Kraai
3a4871e975 Signed-off-by: Paul Beckingham <paul@beckingham.net>
Bug #836

 - Make A3 use same the number representation as the user.
2011-11-14 23:46:56 -05:00
Paul Beckingham
6473c9f39b Unit Test Bug
- Fixed an odd bug in the unit tests.  If today is the 14th of the month,
  then subtracting 14 * 86_400 from the current time results in a date that
  is in the prior month.  Except of course, for one month following the shift
  from summer time to standard time, when the test is run between 11:00pm and
  midnight.  The reverse happens in the spring.
2011-11-14 23:40:19 -05:00
Paul Beckingham
9e28b5311c I18N
- Improved an error message that really needed to state that the error
  is in the config file.
2011-11-14 23:03:14 -05:00
Johannes Schlatow
064eacd6bc Bug
- Fixed problem with execute; the rc argument and rc.* overrides
   were added to the command line.
2011-11-11 00:05:04 +01:00
Paul Beckingham
70124972c2 Documentation
- Updated reference sheet with new 'uuids' command.
2011-10-30 00:01:27 -04:00
Paul Beckingham
e13ad1bbaf Feature
- Added a 'uuids' command that parallels the 'ids' command.  This allows
  task UUIDs to be selected if the task is not pending.
- Updated documentation.
2011-10-29 23:53:36 -04:00
Paul Beckingham
01087c0ff4 Bug
- Fixed problem with DOM-checking the 'limit' pseudo-attribute (thanks to
  Barton Meeks).
2011-10-29 23:47:21 -04:00
Paul Beckingham
f7b593e958 Themes
- Updated solarized themes from Stefan Keel.
2011-10-29 10:58:46 -04:00
Paul Beckingham
7f577e8885 Code Cleanup
- Minor edits.
2011-10-29 10:49:41 -04:00
Paul Beckingham
ef68d1785f Documentation
- Shorted the command usage strings shown in the 'help' output, to
  match the names in the reference PDF.
2011-10-24 00:30:42 -04:00
Paul Beckingham
4e7d2e01fa Documentation
- Updated reference doc to properly align the edges.
2011-10-24 00:15:29 -04:00
Paul Beckingham
e5303a2180 Deletion
- An already-completed task may now also be deleted.
- Added unit tests.
2011-10-23 23:49:25 -04:00
Paul Beckingham
fce2469f41 Deletion
- Allows the deletion of an already-completed task, provided it is
  addressed by UUID.
- Displays UUID in cases where there is no ID.
2011-10-22 23:44:54 -04:00
Paul Beckingham
28133f8567 Legacy Checking
- Added previously deprecated configuration variables to the list that
  are mentioned by the 'show' command.
2011-10-22 23:33:30 -04:00
Paul Beckingham
0aa953dc4e Legacy Checking
- The 'show' command now mentions use of any deprecated configuration
  variables.
2011-10-22 23:28:31 -04:00
Paul Beckingham
dc3470a9a8 Bug
- Fixed problem where burndown chart titles were displayed in postfix,
  rather than original form.
2011-10-22 23:04:36 -04:00
Paul Beckingham
56f33cf96a Statistics
- Added last synch time to the stats command output.
2011-10-21 18:07:20 -04:00
Paul Beckingham
dd88965d3a Unit Tests
- The timesheet tests were doing data math wrong.
2011-10-21 00:42:26 -04:00
Paul Beckingham
ba0d471981 Unit Tests
- rx.t was mis-reporting the expected number of tests.
2011-10-21 00:27:02 -04:00
Paul Beckingham
222c44b6f1 Project Status
- The modify command was calling the wrong onProjectChange variant, which
  yielded the wrong status message.
2011-10-21 00:17:35 -04:00
Paul Beckingham
670fe1f3e5 Performance
- Added std::vector::reserve calls to reduce allocations and copying.
2011-10-21 00:12:45 -04:00
Paul Beckingham
bc12ac1ee6 DOM
- Fixed DOM bug that was performing the lookup '1.due' by locating task
  1, then attempting a get of the '1.due' attribute, instead of just 'due'.
2011-10-16 23:33:06 -04:00
Federico Hernandez
330cc0218b Merge branch '2.0.0' of tasktools.org:task into 2.0.0 2011-10-16 22:57:09 +02:00
Federico Hernandez
da573ef717 Bumped version number to 2.0.0.beta5 2011-10-16 22:56:46 +02:00
Federico Hernandez
821a0720c4 Bumped version number to 2.0.0.beta4 2011-10-16 22:54:46 +02:00
Federico Hernandez
1fa48f7a89 License
- re-licensed vim scripts under MIT.
2011-10-16 22:31:28 +02:00
Paul Beckingham
605d4db4c4 Documentation
- Made the DEVELOPER file current.
- Completed draft 1 of the EXPOSITION file.  Needs feedback.
2011-10-16 13:29:44 -04:00
Paul Beckingham
c33d67949b Feedback
- Corrected algorithm for detecting task differences.  It was mis-
  reporting removed attributes as both deleted and changed.
2011-10-16 11:20:28 -04:00
Paul Beckingham
fc9f9980b8 Unit Tests
- Added more word-boundary tests, even though they are broken on OSX.
  I don't think there is anythign we can do about this.
2011-10-16 11:19:33 -04:00
Paul Beckingham
4f26b13d82 Documentation
- Made the DEVELOPER file current.
2011-10-16 11:19:13 -04:00
Paul Beckingham
c1cf2b743d Unit Tests
- Fixed several test files that were reporting an incorrect test count.
2011-10-16 01:02:19 -04:00
Paul Beckingham
6e72430a58 Unit Tests
- Corrected cleanup code for bug.hang.t which was removing the wrong
  config file.
2011-10-16 00:46:38 -04:00
Paul Beckingham
45262be011 Bug #860
- Fixed bug #860, which prevented lower-case priority values from being
  accepted (thanks to Michelle Crane).
- Added unit tests.
- Also included ChangeLog updates from other fixes that were misseed.
2011-10-16 00:46:13 -04:00
Paul Beckingham
aaa8c5e950 Confirmation
- Modified the 'modify' command so that it only applies changes if
  the requested changes made a difference.  For example if the command

    task 1 mod pri:H

  was followed by:

    task 1 mod pri:H

  then the second command will report 'task not changed'.
2011-10-15 23:07:35 -04:00
Paul Beckingham
3786e6cff3 Confirmation
- The 'delete' command now requires confirmation by default, unless
  rc.confirmation=off.  Implemented properly this time.
2011-10-15 23:06:38 -04:00
Paul Beckingham
27d6407493 Bulk
- Modified the meaning of 'rc.bulk'.  The old meaning was: the largest number
  of tasks that could be modified without confirmation.  New meaning is: the
  number of tasks that trigger bulk confirmation.  Default was 2 (meaning that
  2 tasks affected were not in need of confirmation), is now 3 (meaning 3 tasks
  now trigger confirmation.
  Despite the dog's dinner I made of the preceding statement, the configuration
  variable is now easier to understand.
2011-10-15 23:02:01 -04:00
Paul Beckingham
44e7fdac4b Unit Tests
- Improved signal to noise ratio of all remaining unit tests.
2011-10-15 22:25:38 -04:00
Paul Beckingham
548272fb3a Confirmation
- Removed confirmation override imposed by the 'delete' command.  Consistency
  prevails.
2011-10-15 19:11:55 -04:00
Paul Beckingham
23991f72da Unit Tests
- Removed bulk tests that are obsoleted by those in bulk.t.
2011-10-15 19:09:32 -04:00
Paul Beckingham
88cab4825c Unit Tests
- Implemented new 'bulk.t' to test confirmation and bulk confirmation for
  sets of 1, 2 and 3 tasks (single, multiple, bulk).  This test file obsoletes
  several unit tests in other files.
2011-10-15 19:06:34 -04:00
Paul Beckingham
4d03cdce3b Unit Tests
- Marked the 'soq' test as skipped for now, because it is wrong.
2011-10-15 17:00:24 -04:00
Paul Beckingham
6677dd2104 Unit Tests
- Now that bulk modifications trigger confirmation properly, the tests
  need to raise bulk=3 to a higher value.
2011-10-15 16:59:34 -04:00
Paul Beckingham
a06bba7379 Unit Tests
- Reworded test to match the new confirmation.
2011-10-15 16:52:54 -04:00
Paul Beckingham
f04304d24b Unit Tests
- Added rc.confirmation=off to unit tests to bypass the new, stringent
  confirmation rules.
2011-10-14 03:04:16 -04:00
Paul Beckingham
75571a47de L10N Cleanup
- Removed obsolete strings.
2011-10-14 02:54:41 -04:00
Paul Beckingham
bebd38c6d8 Confirmation
- Implemented consistent confirmation.
2011-10-14 02:53:42 -04:00
Paul Beckingham
a36cd3cbd1 Confirmation
- Implemented consistent confirmation.
2011-10-14 02:46:52 -04:00
Paul Beckingham
af3bbc21d2 Confirmation
- Implemented consistent confirmation.
2011-10-14 02:41:26 -04:00
Paul Beckingham
e73c255612 Confirmation
- Implemented consistent confirmation.
2011-10-14 02:35:24 -04:00
Paul Beckingham
02e7c4f3ce Confirmation
- Implemented consistent confirmation.
2011-10-14 02:23:22 -04:00
Paul Beckingham
1b54516b45 Confirmation
- Implemented consistent confirmation.
2011-10-14 02:13:18 -04:00
Paul Beckingham
a5961f6847 Confirmation
- Implemented consistent confirmation.
2011-10-14 02:01:36 -04:00
Paul Beckingham
6aee2fc7b9 Permissions
- Merged old Permission functionality into Command::permission, and
  updated it to handle single vs bulk updates and verbosity tokens.
2011-10-14 01:52:33 -04:00
Paul Beckingham
cd6c681ba5 Feedback
- Implemented consistent 'affected' feedback across all write commands.
2011-10-14 01:51:43 -04:00
Paul Beckingham
95ff528e60 Code Cleanup
- Removed obsolete Permission object.
2011-10-14 01:50:46 -04:00
Paul Beckingham
6b40b0fb4a Confirmation
- Implemented consistent confirmation.
2011-10-14 01:50:16 -04:00
Paul Beckingham
821c554e41 Confirmation
- Implemented consistent confirmation.
2011-10-14 01:49:39 -04:00
Paul Beckingham
6e1ad5207d Unit Tests
- Corrected unit tests to match task output.
2011-10-12 01:26:59 -04:00
Paul Beckingham
8497e86800 Logic Bug
- Fixed logic bug in bulk and recurring task modifications.
2011-10-12 01:09:48 -04:00
Paul Beckingham
d11c1bfe51 Logic Bug
- Fixed logic bug in bulk and recurring task duplication.
2011-10-12 01:03:28 -04:00
Paul Beckingham
4feb1e2121 Logic Bug
- Fixed logic bug with bulk and recurring task denotations.
2011-10-12 00:30:17 -04:00
Paul Beckingham
afe7cbef91 White Space
- Removed blank lines.
2011-10-12 00:25:45 -04:00
Paul Beckingham
f4cd733311 Logic Bug
- Fixed logic bug with bulk and recurring task annotations.
2011-10-12 00:25:14 -04:00
Paul Beckingham
4d7d0f04f3 Logic Bug
- Fixed logic bug with bulk and recurring tasks prepends.
2011-10-12 00:21:49 -04:00
Paul Beckingham
988ab7ada0 Logic Bug
- Fixed logic bug dealing wiht bulk updates and recurring tasks.
2011-10-12 00:20:05 -04:00
Paul Beckingham
9a7d631873 Logic Bug
- Fixed bug in bulk operation handling for recurring tasks.
2011-10-12 00:12:00 -04:00
Paul Beckingham
887439b914 Logic Bug
- Fixed large logic bug in start command for bulk operations and
  changes to recurring tasks.
2011-10-11 23:56:25 -04:00
Paul Beckingham
3ec00d9443 Code Cleanup
- Removed blank lines.
2011-10-11 23:55:19 -04:00
Paul Beckingham
98c6a94625 Whitespace
- Context::footnote and Context::header were accepting and displaying
  blank lines, which is silly.
2011-10-11 23:54:42 -04:00
Paul Beckingham
b7ab366c71 Unit Tests
- Improved signal to noise ratio.
2011-10-11 00:29:55 -04:00
Paul Beckingham
f64f45ac26 Unit Tests
- Improved signal to noise ratio.
2011-10-10 23:42:22 -04:00
Paul Beckingham
c879eb6811 Code Cleanup
- Renamed recur.t to recur.sort.t, because more recur unit tests are on the
  way, and this one was a misnomer.
- Minor edits - whitespace.
2011-10-10 22:54:28 -04:00
Paul Beckingham
cc168b137f Code Cleanup
- Removed incorrect comment.
2011-10-10 22:53:39 -04:00
Paul Beckingham
04614f536c Documentation
- Fixed typo (thanks to Aaron Jackson).
2011-10-10 07:46:04 -04:00
Paul Beckingham
c0d04a7bcd AUTHORS
- Added Greg Grossmeier, as thanks for the tremendous and perfectly-timed help.
2011-10-09 16:57:13 -04:00
Federico Hernandez
6346c5ed81 License
- last files with reference to GPL or GNU changed to MIT
2011-10-08 17:01:42 +02:00
Federico Hernandez
8d38725306 Merge branch '2.0.0' of tasktools.org:task into 2.0.0 2011-10-08 16:57:31 +02:00
Federico Hernandez
23e3bc56fb License
- perl unit tests
2011-10-08 16:57:13 +02:00
Paul Beckingham
997ed7079a Unit Tests
- Fixed unit test that relied on certain wording of the 'version'
  command output.
2011-10-08 10:48:50 -04:00
Federico Hernandez
af2a29ce3b License
- fish completion
2011-10-08 15:07:15 +02:00
Federico Hernandez
6aeed144ef License
- zsh completion
2011-10-08 15:03:50 +02:00
Federico Hernandez
e6a455f31d License
- scripts/utils
2011-10-08 14:51:08 +02:00
Federico Hernandez
f300daad39 License
- task bash completion
2011-10-08 14:46:24 +02:00
Federico Hernandez
487ad4e4bb License
- add-ons
2011-10-08 14:05:13 +02:00
Federico Hernandez
d97fc2fc6e License
- doc/rc files
2011-10-08 12:50:11 +02:00
Federico Hernandez
4d7a424c2e License
- files in scripts/extensions
2011-10-08 12:26:03 +02:00
Federico Hernandez
bbe218a6f1 License
- first round of unit tests
2011-10-08 12:17:42 +02:00
Federico Hernandez
571195b7b0 License
- task version output
2011-10-08 11:09:27 +02:00
Federico Hernandez
9df72bb5a2 License
- manpages
- reference page (wrong color format for link to licemse)
2011-10-08 10:56:45 +02:00
Federico Hernandez
3c1339cc4f License
- Change on reference page
2011-10-08 10:29:28 +02:00
Federico Hernandez
bdbbade620 License
- remaining files in src/Transport* src/Uri*
2011-10-08 10:25:02 +02:00
Federico Hernandez
961a1a9366 License
- moving from GPL to MIT license
  src/commands
2011-10-08 01:13:30 +02:00
Federico Hernandez
198cf16837 License
- moving from GPL to MIT license
  src/columns directory
2011-10-08 01:00:51 +02:00
Federico Hernandez
6fde8438d1 LICENSE
- replace GPL in COPYING file
- created new LICENSE file
- pointing to the LICENSE file from the README file
2011-10-08 00:09:34 +02:00
Federico Hernandez
8116c6a103 License
- moving task from GPL to MIT license
  top level src directory
2011-10-08 00:04:01 +02:00
Paul Beckingham
5c685153dc Bug #859
- Fixed bug #859, which used only one color for the 'ghistory.*' report
  legends (thanks to Uli Martens).
2011-10-06 23:05:23 -04:00
Paul Beckingham
d0d2bba614 Merge branch '2.0.0' of tasktools.org:task into 2.0.0
Conflicts:
	doc/ref/task-ref.pages
	doc/ref/task-ref.pdf
2011-10-06 22:58:10 -04:00
Paul Beckingham
4cab84fad9 Bug #861
- Fixed errors on the reference page (thanks to Michelle Crane).
2011-10-06 22:55:44 -04:00
Paul Beckingham
1009af83d0 Bug #862
- Fixed bug #862, which suppressed feedback from the 'denotate' command.
2011-10-06 08:44:16 -04:00
Federico Hernandez
084c2e5bc7 Install new reference page 2011-10-06 00:42:51 +02:00
Federico Hernandez
95af39148f Small corrections on the ref page 2011-10-05 16:17:54 +02:00
Paul Beckingham
d1a61b3d0e Documentation
- Added command reference for 2.0.  Based on the command reference
  by Stefan Keel.
2011-10-04 23:13:38 -04:00
Paul Beckingham
4a98cfa62b I18N
- Minor L10N edits and changes arising from the task-ref.pdf effort.
2011-10-04 01:10:47 -04:00
Federico Hernandez
348a75d216 Bumped version number to beta4 2011-10-03 21:44:54 +02:00
Paul Beckingham
83081c87bd I18N
- Localized 'calendar' command.
- Localized Date object, somewhat.
2011-10-02 23:08:23 -04:00
Paul Beckingham
6e21cc5b2a Legacy
- Relocated legacy checks from Config.cpp to legacy.cpp.
2011-10-02 18:05:20 -04:00
Paul Beckingham
d62ea4e223 Synch
- Added server configuration test to synch command.
2011-10-02 17:33:36 -04:00
Paul Beckingham
148eaa5e58 Task Server
- Added 'taskd.server' and 'taskd.credentials' as supported configuration
  variables.
- Added the 'taskd.server' values to the 'diagnostics' command output.
- Updated taskrc.5.in to mention the new variables.
2011-10-02 17:20:16 -04:00
Paul Beckingham
eed3cf5d0f Utilities
- Renamed 'verify' to 'verify_strings', because the old name is too
  generic.
2011-10-02 17:04:00 -04:00
Paul Beckingham
b656f3c7e0 Documentation
- Updated ChangeLog with bugs that mysteriously fixed themselves.
2011-10-02 17:01:18 -04:00
Paul Beckingham
4470a5f156 I18N
- Localized TDB2.
- Removed old debugging comments.
- Formatting fix in CmdBurndown.
2011-10-02 17:00:40 -04:00
Paul Beckingham
48796c5364 Documentation
- Added more deprecated stuff to the NEWS file.
2011-10-02 15:26:21 -04:00
Paul Beckingham
eaecc13cae Configuration
- Removed bizarre entries 'project' and 'column.spacing' from the list
  of allowed settings.
- Removed obsolete 'export.ical.class' setting.
2011-10-02 15:12:24 -04:00
Paul Beckingham
fdd660fb75 Configuration
- Corrected wording in a comment in the .taksrc defaults.
- Removed obsolete 'export.ical.class' setting.
2011-10-02 15:11:38 -04:00
Paul Beckingham
42f0252c4d Documentation
- For the help command, removed the trailing period from command
  descriptions.
- Removed unnecessary text.
2011-10-02 15:10:56 -04:00
Paul Beckingham
af10306b33 Documentation
- Major update of the task.1.in man page.
2011-10-02 15:09:05 -04:00
Paul Beckingham
d8b2b334d7 Documentation
- Updated taskrc.5.in to match the 2.0 supported settings.  This
  involved adding new and missing items, as well as removing items.
2011-10-02 15:02:13 -04:00
Paul Beckingham
d6e8a34984 Documentation
- Updated task-tutorial.5.in with new syntax.
- Removed examples using implicit 'info' command.
- Updated examples for new syntax.
- Updated copyright.
- Note that the tutorial is still firmly a 1.9.3 tutorial, with no
  new examples other than syntax changes.
2011-10-02 14:13:42 -04:00
Paul Beckingham
df0181940b Documentation
- Updated task-sync.5.in with updated copyright and simplified URLs.
2011-10-02 14:12:52 -04:00
Paul Beckingham
f91255d692 Documentation
- Updated task-color.5.in with various edits, corrections.
2011-10-02 14:12:17 -04:00
Paul Beckingham
d1986de1e3 Documentation
- Updated the task-faq.5.in man page, various edits.
- Now confrms to new syntax.
- Includes new questions on multiple simultaneous installations.
- Corrected answer to the xterm title question.
2011-10-02 14:08:56 -04:00
Paul Beckingham
562dfe7b81 Documentation
- Shrank the width of the 'help' command output somewhat.  It was a
  width hog.
2011-10-02 10:05:58 -04:00
Paul Beckingham
8ba2dc1fa1 Unit Tests
- Fixed tests that were broken by the new 'help' command output.
2011-10-02 09:49:55 -04:00
Paul Beckingham
4495e93f8d Legacy
- Moved more legacy checking code to legacy.cpp.
2011-10-02 01:04:16 -04:00
Paul Beckingham
66ca9add3a I18N
- Localized and updated the 'help' command.
2011-10-01 23:47:35 -04:00
Paul Beckingham
2826f1918e I18N
- Localized 'burndown.monthlu', 'burndown.weekly' and 'burndown.daily' commands.
2011-10-01 14:28:30 -04:00
Paul Beckingham
164a6b97ce I18N
- Localized 'merge' command.
2011-10-01 13:16:59 -04:00
Paul Beckingham
81ca87b7da I18N
- Localized E9.
2011-10-01 13:13:30 -04:00
Paul Beckingham
2c69d4871d I18N
- Localized 'diagnostics' command.
2011-10-01 12:24:14 -04:00
Paul Beckingham
a59a2f7234 I18N
- Localized 'timesheet' command.
2011-10-01 12:03:34 -04:00
Paul Beckingham
14343e8e4d Documentation
- Improved the working in the 'edit' command template.
2011-10-01 11:49:41 -04:00
Paul Beckingham
7b34344626 Debug Output
- Removed unnecessary A3::dump call.
- Corrected comment.
2011-10-01 11:47:54 -04:00
Paul Beckingham
160c9708a5 Verbosity
- Deprecated 'rc.edit.verbose'.
- Added support for verbosity token 'edit'.
- Updated documentation.
2011-10-01 11:34:05 -04:00
Paul Beckingham
8ccce069d9 Documentation
- Missed a verbosity token.
2011-10-01 11:26:50 -04:00
Paul Beckingham
78f91ffa91 Verbosity
- Added 'affected' verbosity token.
- Deprecated 'rc.echo.command'.
- Updated config defaults.
- Labelled all deprecated 'echo.command' references with '// Deprecated 2.0'
- Added unit tests to start the verbosity testing.  Not complete.
- Updated taskrc.5 man page.
2011-10-01 11:16:12 -04:00
Paul Beckingham
de481a7eba Help
- Made all the usage strings for the 'help' command consistent with the
  implementation and with visual alignment.
2011-10-01 00:42:27 -04:00
Federico Hernandez
87bca169c5 Cleanup ANALYSIS 2011-09-29 23:51:13 +02:00
Paul Beckingham
87d940c46d Bugs #822, #845
- Fixed bug #822, #845, which generated incorrect IDs (thanks to Matt Kraai and
  Michelle Crane).
2011-09-29 00:00:36 -04:00
Paul Beckingham
a99aa217d0 Bug #856
- Fixed bug #856, which prevented filters on missing project from working
  (thanks to Michelle Crane).
2011-09-28 23:26:07 -04:00
Federico Hernandez
373af5ba65 Updated ANALYSIS file 2011-09-27 23:30:16 +02:00
Paul Beckingham
9604cca68d Merge branch '2.0.0' of tasktools.org:task into 2.0.0 2011-09-26 23:46:14 -04:00
Paul Beckingham
781c77085d Unit tests
- Fixed project.t fail.
2011-09-26 23:40:08 -04:00
Paul Beckingham
6faed76833 Synch
- Added pseudo-code TODO reminders in synch command.
2011-09-26 23:38:49 -04:00
Paul Beckingham
2daca679b3 I18N
- Localized Context.
2011-09-26 23:24:17 -04:00
Paul Beckingham
e069503dff I18N
- Localized A3.
2011-09-26 23:17:33 -04:00
Paul Beckingham
f2283b575f I18N
- Localized Arg.cpp.
2011-09-26 23:01:01 -04:00
Paul Beckingham
e56e670300 I18N
- Localized custom reports.
2011-09-26 22:59:08 -04:00
Paul Beckingham
376c79ef6f I18N
- Localized the 'config' command.
2011-09-26 22:39:08 -04:00
Paul Beckingham
8e78d9ff48 I18N
- Localized 'color' command.
2011-09-26 22:07:48 -04:00
Paul Beckingham
30cf3a19fb I18N
- Localized the 'modify' command.
2011-09-26 21:49:57 -04:00
Paul Beckingham
b56035d4f5 I18N
- Localized 'shell' command.
2011-09-26 21:28:03 -04:00
Paul Beckingham
6c8aae11b7 I18N
- Localized 'install' command.
2011-09-26 21:20:31 -04:00
Paul Beckingham
a544431ed7 I18N
- Localized 'import' command.
2011-09-26 21:14:11 -04:00
Federico Hernandez
7d974b2130 Configure instructions for 32bit on OSX 2011-09-26 23:50:25 +02:00
Federico Hernandez
24c3b45b46 Missing include i18n.h 2011-09-26 22:45:55 +02:00
Paul Beckingham
d1594e5123 I18N
- Localized the _commands and _zshcommands commands.
2011-09-26 01:30:47 -04:00
Paul Beckingham
4858931592 Bug #846, Feature #827
- Added feature #827, which allows augmentation of default.command with extra
  arguments, when default.command itself contains mulitple arguments (thanks to
  Aikido Guy).
- Fixed bug #846, which prevented the default.command configuration from
  handling multiple arguments (thanks to Uli Martens).
2011-09-25 11:37:57 -04:00
Federico Hernandez
4a87ab74f4 Unit tests
- shell.t addapted to new commandline parsing
2011-09-24 21:39:57 +02:00
Federico Hernandez
993844d600 Unit tests
- date.iso.t failed due to a timestamp too close to midnight
2011-09-24 21:05:41 +02:00
Paul Beckingham
31aa0de426 I18N
- Localized more commands.
2011-09-24 10:56:14 -04:00
Paul Beckingham
63203cd91a Minor Edits 2011-09-24 10:59:13 -04:00
Federico Hernandez
fa67569093 Bumped version number to 2.0.0.beta3 2011-09-21 23:27:45 +02:00
Paul Beckingham
a40d1bbf76 Bug #839
- Fixed hard-coded '1m'.  Must have been sleepy.
2011-09-21 07:34:48 -04:00
Paul Beckingham
d3c6ddb87f Bug #839
- Fixed bug #839, which caused problems when recurrence frequencies of '1m'
  were used.  This is an obsolete form, and should now be '1mo' (thanks to
  Gour D).
2011-09-21 00:32:13 -04:00
Paul Beckingham
e478f6626b Bug #835
- Fixed bug #835, which prevented hierarchical projects from being recognized.
2011-09-21 00:19:42 -04:00
Paul Beckingham
965e15fe91 Bug #831
- Fixed bug #831 that imposed an arbitrary and incorrect assumption that
  caused some date fields from being parsed properly.
2011-09-20 23:58:33 -04:00
Paul Beckingham
4901089408 Unit Tests
- Added unit tests for bug 839.
2011-09-19 20:55:32 -04:00
Paul Beckingham
5a760cb1b2 Command: tags
- CmdTags was missing one special tag.
2011-09-19 20:14:43 -04:00
Johannes Schlatow
b018042130 Scripts
- added conjunctions to zsh tab completion
2011-09-16 15:12:17 +02:00
Paul Beckingham
db279ee237 Documentation
- Fixed formatting problem, which has been there for a long time.
2011-09-16 00:31:44 -04:00
Paul Beckingham
c5a834dc98 Documentation
- Added rc.regex back to the taskrc.5 man page.
2011-09-16 00:08:35 -04:00
Paul Beckingham
a732733950 Unit Tests
- Began unit tests for DOM support.
2011-09-15 22:33:50 -04:00
Paul Beckingham
ea633e9e7c Unit Tests
- Added unit tests to prove the support of ISO and epoch format dates,
  regardless of rc.dateformat.
2011-09-15 22:31:37 -04:00
Johannes Schlatow
711e943c25 Scripts
- changed naming in zsh tab completion
2011-09-15 23:17:33 +02:00
Johannes Schlatow
3e73f43272 Scripts
- modified zsh tab completion to support 2.0 syntax
2011-09-15 23:04:33 +02:00
Federico Hernandez
25e3453321 Disabled gcov for the time being - cygwin. 2011-09-14 23:17:29 +02:00
Federico Hernandez
8920f5c10c Bug #832
- gcc feature prevents one from using _L
  task under cygwin compiles again
2011-09-14 22:24:14 +02:00
Federico Hernandez
38c4bd3760 Bumped version number to 2.0.0.beta2 2011-09-14 20:34:03 +02:00
Federico Hernandez
4ea74101db Merge branch '2.0.0' of tasktools.org:task into 2.0.0 2011-09-14 20:00:42 +02:00
Federico Hernandez
ee0ef16487 task export. Clarified the export to other formats 2011-09-14 20:00:29 +02:00
Johannes Schlatow
70919803a8 Unit Test - Bug #835 2011-09-14 13:03:23 +02:00
Paul Beckingham
c927cd34b2 Documentation
- Improved consistency among command descriptions.
2011-09-13 23:54:01 -04:00
Federico Hernandez
e37f0c0db0 Removed 2 #ifdef in CmdDiagnostics due to cmake only builds 2011-09-14 01:42:36 +02:00
Federico Hernandez
90184081cf Bumped version number to 2.0.0.beta1 2011-09-14 01:12:28 +02:00
Federico Hernandez
070ec91566 Fixed bugs #533 and #536
- correct paths are now written to default .taskrc
2011-09-14 01:10:52 +02:00
Paul Beckingham
6e52194ab0 Documentation
- While the man pages were not exactly updated for 2.0, the harmful and
  obsolete stuff was removed.
2011-09-13 18:33:14 -04:00
Paul Beckingham
761def8fb7 Merge
- Applied patch to correct autopush after merge, thanks to Johannes.
2011-09-13 18:07:56 -04:00
Johannes Schlatow
295e23aac4 Merge
- removed previous hack that created a zero-byte undo.data file.
  Now the undo.data is created as needed in TDB2::merge.
2011-09-13 10:28:30 +02:00
Paul Beckingham
561af0a0f5 ANALYSIS
- Updated info to be current.
2011-09-13 01:05:43 -04:00
Paul Beckingham
87df2f66ec Merge
- Fixed merge, with an egregious hack for now, by creating zero-byte undo.data
  file.  This goes against the whole TDB2 philosophy, so it is temporary.
- Updated PUNCHLIST.
- Removed old tdb comment from CmdMerge.
2011-09-13 00:51:58 -04:00
Paul Beckingham
dcd0bd1de7 TDB2
- Fixed a bug, or rather a side-effect of more efficient i/o.  Now that
  a TDB2::GC call does not write out files until the final TDB2::commit,
  the GC has the effect of not modifying task IDs based on shuffling tasks
  between pending.data and completed.data until the next command.  Fixed.
2011-09-13 00:22:11 -04:00
Paul Beckingham
776bfea402 Dependencies
- Fixed bug in Task::addDependency where a 'dup dep' error string was not
  properly composed, which cause the error message to be shown as 'k'.
- Relocated expression evaluation on modification to only be processed for
  date attributes.  This impacts DOM, but fixes more than it breaks.
- Corrected unit test that was expecting an old-style error message.
- Added protection against array overrun in next_mod_group.  Again.
2011-09-12 23:53:46 -04:00
Paul Beckingham
d1e52c05d6 Unit Tests
- While fixing bug.360.t, discovered a bigger problem, which is not yet
  fixed.  When a due date is removed from a recurring child task, the
  imask, parent and recur attributes should also be removed.  Similarly
  when a recur frequency is removed from a recurring child task, the
  imask and parent should also be removed.
- Net result: two new failing tests.
2011-09-12 22:57:32 -04:00
Paul Beckingham
02047a6e99 Legacy
- Created legacy checking function to determine whether deprecated or obsolete
  attributes are being used.
2011-09-12 22:45:58 -04:00
Paul Beckingham
fa22b98dc4 Legacy
- Created a home for all the legacy checks.
2011-09-12 22:39:00 -04:00
Federico Hernandez
664e4deb6a ANALYSIS
- project.t Failed test 'project with spaces'
2011-09-12 22:42:30 +02:00
Paul Beckingham
157dad0026 Unit Tests
- Fixed broken unit test.
- Updated PUNCHLIST.
- Clarified task counting in helpers.cpp.
2011-09-12 01:38:35 -04:00
Alexei Romanoff
082f7d703e [PATCH] GCOV support added for measuring code test coverage.
Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-09-12 00:51:20 -04:00
Paul Beckingham
03e53ceaf2 Miscellaneous
- Minor edits of little consequence.
2011-09-11 23:06:51 -04:00
Federico Hernandez
147dd61758 ANALYSIS file 2011-09-12 00:41:58 +02:00
Federico Hernandez
cf9b5ca5c6 CmdCalendar
- fix for failing unit tests as calendar args are treated special
2011-09-12 00:40:01 +02:00
Paul Beckingham
9ada2f554a Bug
- The modify command no longer claims that a task was modified if no
  changes were applied.
2011-09-11 13:49:07 -04:00
Paul Beckingham
19f598419e Bug
- Dependencies were disabled during TDB2 development and not re-enabled.  Oops.
- Removed stray debug statement.
2011-09-11 13:23:47 -04:00
Paul Beckingham
dcc0ab19c2 Bug
- Fixed crash bug on Linux where Command::next_mod_group just walked off
  the end of a vector.
2011-09-11 11:46:19 -04:00
Paul Beckingham
6e649f3f45 Recurring Tasks
- Rewrote updateRecurrenceMask, which was hopelessly muddled after the
  TDB -> TDB2 change.
- Modified associated code.
- Improved signal to noise ratio in unit tests.
2011-09-11 01:56:56 -04:00
Paul Beckingham
6e8d2ca79c Build
- Fixed broken build due to missing include.  Just like the old days.
2011-09-11 01:19:26 -04:00
Paul Beckingham
b0abe5a5ba Unit Tests
- Improved signal to noise ratio, which in this case helps with testing.
2011-09-11 01:03:51 -04:00
Paul Beckingham
038687b801 Helpers
- Forced the format(double) helper function to not use scientific notation,
  which was causing problems.
2011-09-11 01:02:43 -04:00
Paul Beckingham
e31e80961a Expressions
- Implemented Command::next_mod_group, which walks the A3 list looking for
  consecutive grouped args for modification purposes.
2011-09-11 00:49:56 -04:00
Paul Beckingham
c7464a59b3 Parsing
- Tags may no longer begin with a digit.
2011-09-11 00:49:08 -04:00
Paul Beckingham
966501f5da Parsing
- Implemented Nibbler::getUnsignedNumber.
2011-09-11 00:47:54 -04:00
Paul Beckingham
22e9d84074 Expressions
- Implemented E9:operator_negate, the unary -.
2011-09-11 00:47:11 -04:00
Paul Beckingham
d9fa6fbac8 Unit Tests
- Improved signal to noise ratio for op_*.t tests.
- Updated ANALYSIS file.
2011-09-10 13:27:14 -04:00
Paul Beckingham
1994240899 Parsing
- Created A3::is_operator to allow for more complex processing.  Renamed
  old A3::is_operator to A3::which_operator.
2011-09-10 13:25:46 -04:00
Paul Beckingham
562fd8ce3c Helpers
- Implemented isTokenEnd, as a special case of isWordEnd, but considers
  consecutive punctuation to be a set of individual tokens.
2011-09-10 13:24:54 -04:00
Federico Hernandez
94bb98edac uuid.t TZ problem solved 2011-09-09 06:51:35 +02:00
Federico Hernandez
1dc0230aba Merge branch '2.0.0' of tasktools.org:task into 2.0.0 2011-09-09 06:38:57 +02:00
Federico Hernandez
2836ae66c7 The usual TZ problem... 2011-09-09 06:38:38 +02:00
Paul Beckingham
c42179aff4 ANALYSIS
- Removed some fixed items, added more info about other tests.
2011-09-09 00:34:44 -04:00
Paul Beckingham
66a8ebe014 EXPOSITION
- Began an overview document of how the processing works.
2011-09-09 00:24:50 -04:00
Paul Beckingham
2de82aa3c1 Enhancement
- Added the onProjectChange call to CmdModify.
2011-09-09 00:22:01 -04:00
Paul Beckingham
d37e46cc48 Enhancement
- Re-enabled the onProjectChange function, and upgraded it to TDB2.
  Now it does a lot less, which is another way of saying it is faster.
2011-09-09 00:13:08 -04:00
Paul Beckingham
c54bb8a42a Beta Punchlist
- Added beta punch list.  This will go away eventually.
2011-09-09 00:12:28 -04:00
Paul Beckingham
22e39538c7 Unit Tests
- The bug.uuid.t test was relying on 'stats' to perform a GC, which is
  no longer true.
2011-09-08 23:13:59 -04:00
Paul Beckingham
a297756ff0 Unit Tests
- Improved the signal to noise ratio for unit tests.
2011-09-08 22:51:17 -04:00
Paul Beckingham
38c325d469 Bug - Tag Recognition
- Lowered the precedence of tag detection so that dates and durations are
  recognized first.
- Modified the allowable tokens for a tag to be almost anything.
2011-09-08 22:49:58 -04:00
Paul Beckingham
8cd1efd609 Bug - Confirmation
- Confirmation for multiple task changes was not being sought.
2011-09-08 22:47:56 -04:00
Federico Hernandez
9fee765d35 ANALYSIS
- delete.t  task info with a filter on ID matches completed tasks
2011-09-09 01:23:23 +02:00
Federico Hernandez
2d338b218e ANALYSIS
- merge.duplicate.t several tests fail because of missing undo.data
                    and ignoring URI
2011-09-09 00:44:37 +02:00
Federico Hernandez
d4e90e8857 ANALYSIS
- confirmation.t CmdModify doesn't ask for confirmation.
2011-09-08 23:53:28 +02:00
Paul Beckingham
b9ad044eef Expressions - hasnt (!~)
- The operator_nomatch was not properly defaulting a "true" result.
- Improved signal to noise ratio in bug.hasnt.t.
- Removed obsolete entries in ANALYSIS file.
2011-09-07 00:54:46 -04:00
Paul Beckingham
5a07dce93a Unit Tests
- Improved the signal to noise ratio.
2011-09-07 00:42:38 -04:00
Paul Beckingham
40aca079eb Unit Tests
- Unit test relied on capturing parentheses, which are no longer necessary.
2011-09-07 00:41:07 -04:00
Paul Beckingham
255af9e110 Nibbler
- Removed unnecessary addition of capturing parentheses to a regex.
2011-09-07 00:39:02 -04:00
Paul Beckingham
70eba976ae Unit Tests
- Many tests referred to 'synch_key.data', which is not the correct
  name.  It should be 'synch.key'.  This has no effect on the number
  of passing tests though.
2011-09-07 00:33:02 -04:00
Paul Beckingham
9ed0c5c86d Shadow Files
- Re-enabled shadow files, but in a new, simpler manner, that allows the
  rc.shadow.command to override settings like color if necessary.
- Modifed A3 to capture program name and store it in the Context.
2011-09-07 00:24:00 -04:00
Paul Beckingham
c62f36ef87 Bug - tags
- Modified A3::is_tag to allow @, # and $ in tag names.
2011-09-06 23:54:31 -04:00
Paul Beckingham
69aa041218 Bug - tags
- Modified A3::is_tag to allow @, # and $ in tag names.
- Reduced the precedence of tag parsing to ensure that durations are
  detected first.
2011-09-06 23:52:38 -04:00
Paul Beckingham
36db62728b Unit Tests
- Improved signal to noise ratio for caseless.t.
- Added test count markers to nibbler.t.cpp.
2011-09-06 23:39:57 -04:00
Paul Beckingham
bbe69fd129 Bug - substitutions
- Fixed bug in Task::substitute that contained incorrect assumptions about
  regex matches.
- Fixed bug in Task::substitute that matched against the annotation name,
  rather than the value for non-regex substitutions.
- Fixed bug that caused improper functioning of the 'global' substitution
  indicator.
- Removed unnecessary capturing parentheses that were added for regex searches.
2011-09-06 23:36:45 -04:00
Paul Beckingham
646117c213 Unit Tests
- Improved the signal-to-noise ratio for the args tests.
2011-09-06 23:22:16 -04:00
Paul Beckingham
0da3e12e36 Unit Tests
- Fixed bug in test that caused an inconsistent sample task to be parsed.
2011-09-06 23:20:56 -04:00
Paul Beckingham
2ab11655db Bug - regular expressions
- Fixed bug where regexec was not being properly called.
- Fixed bug where multiple subexpressions were not being properly handled.
- Fixed bug that allowed regex matching to run off the end of a string.
- Fixed bug that causes regex captures to not be properly offset into the input
  string.
- Removed () from unit tests.
2011-09-06 23:18:26 -04:00
Federico Hernandez
bfca3766b6 Unit test
Added more unit tests to uuid.
2011-09-07 00:33:03 +02:00
Federico Hernandez
a8759c9196 Bug fix - Task.cpp
completing a task did set a entry date to completed date.
2011-09-07 00:10:40 +02:00
Federico Hernandez
92f7d805d0 Unit tests
- new uuid.t to test access of tasks via uuid
2011-09-06 00:26:46 +02:00
Federico Hernandez
b3d991449f Unit tests
- analysis of bug.480.t
2011-09-05 23:15:05 +02:00
Federico Hernandez
15c939c3d7 Nibbler
- using wrongly ispunct instead of isPunctuation
2011-09-05 22:36:57 +02:00
Paul Beckingham
4346001c94 ANALYSIS
- Filled in a few blanks.
2011-09-05 15:10:25 -04:00
Paul Beckingham
59d184e2db Bug - Expressions
- Fixed a bug that confused left and right operands.
- Fixed a bug where E9::coerce was dropping data.
2011-09-05 14:11:10 -04:00
Paul Beckingham
60c45b5035 Bug
- Fixed bug in statistics command that gave zero counts for pending,
  waiting and recurring tasks.
- Made some counting code more efficient.
2011-09-05 11:26:58 -04:00
Paul Beckingham
56b9b23988 L10N Review
- Reviewed (and made notes) of all commands for the L10N punch list.
2011-09-05 11:13:19 -04:00
Paul Beckingham
297ec6dd1f Bug - timesheet
- Converted the timesheet report to use raw word arguments instead of
  filters.
- Uses new TDB2:all_tasks method.
- Cleaned up unit tests.
2011-09-05 10:47:38 -04:00
Paul Beckingham
195c7d5142 TDB2
- Added TDB2::all_tasks as a helper function to load and combine tasks
  from pending and completed.
2011-09-05 10:45:58 -04:00
Paul Beckingham
a3cb1172a1 Code Cleanup
- The .gitignore file listed old junk.
2011-09-05 09:34:01 -04:00
Paul Beckingham
47b948c866 Command - synchronize
- Added a placeholder synchronize command, which will be implemented
  in mumble for the mumble mumble.
2011-09-05 08:49:10 -04:00
Paul Beckingham
402ac5b418 Code Cleanup
- Removed .gitignore entries for obsolete tests.
2011-09-05 02:10:18 -04:00
Paul Beckingham
d1bc46c355 Unit Tests
- Minor bug fixes.
2011-09-05 01:48:25 -04:00
Paul Beckingham
e2d0126415 Unit Tests
- Fixed minor unit test problems.
2011-09-05 01:27:57 -04:00
Paul Beckingham
751e8e7f90 Import YAML
- Implemented the import-yaml.pl external script.
- Added unit tests.
- Fixed problem where the pending tasks were not loaded prior to uuid
  verification.
2011-09-05 01:11:37 -04:00
Paul Beckingham
fa973f734b Safety Valve
- Added safety valve processing.  Whenever a write-command omits a
  filter, the command will affect every task.  This is dangerous.
  If rc.confirmation is disabled, the command is terminated.
2011-09-04 08:44:22 -04:00
Paul Beckingham
f74c33dc02 Bug
- Fixed a silly bug whereby TDB2::gc, once it loaded the data, wiped the TF2
  objects, such that TDB2::commit didn't know there was data to write.
  Hmm.  Time for a vacation.
2011-09-03 16:32:30 -04:00
Paul Beckingham
8bf1386b78 Bug
- Fixed an even worse bug whereby TDB2::gc never even bothered to load
  the data before running the GC.  Sigh.
2011-09-03 16:31:03 -04:00
Paul Beckingham
1e510f66ef Bug
- Fixed nasty bug whereby TF2::clear wiped the file names (pending.data etc) and
  so any subsequent TDB2::commit never even opened the file.  Yikes.
2011-09-03 16:30:15 -04:00
Paul Beckingham
2b7c2f6a21 Unit Tests
- Improved the signal to noise ration for more unit tests.
2011-09-03 16:25:48 -04:00
Paul Beckingham
1691ce2764 Code Cleanup
- I think the 'show' command may have prematurely obsoleted something useful,
  so added a note to review.
2011-09-03 16:23:50 -04:00
Paul Beckingham
b84f212112 Code Cleanup
- Removed obsolete 'foreach' macro.
2011-09-03 13:54:11 -04:00
Paul Beckingham
f245fa808c Code Cleanup
- Removed obsolete TDB, Att and Location code.
- Removed associated unit tests, unfortunately all ones that pass.
2011-09-03 13:17:03 -04:00
Paul Beckingham
6b3dfd0891 TDB2
- Eliminated TDB from the unit test builds.
2011-09-03 13:03:17 -04:00
Paul Beckingham
1b3ac82d7e TDB2
- Eliminated the now obsolete TDB code from Context.
- Added auto-commit code for commands that auto-gc.
2011-09-03 13:02:17 -04:00
Paul Beckingham
5d6f6e2073 TDB2
- (Partially) Converted helper code to TDB2.
2011-09-03 13:01:30 -04:00
Paul Beckingham
6c9bebec24 TDB2
- (Partially) Converted dependency handling code to TDB2.
2011-09-03 12:59:57 -04:00
Paul Beckingham
b05d4535f8 TDB2
- Converted 'project' and '_projects' commands to TDB2.
2011-09-03 12:59:30 -04:00
Paul Beckingham
72627268dc TDB2
- Converted 'tags' and '_tags' commands to TDB2.
2011-09-03 12:58:57 -04:00
Paul Beckingham
a04ce55544 TDB2
- Added a necessary TDB2::commit call.
2011-09-03 12:58:18 -04:00
Paul Beckingham
84ccf4399c TDB2
- Converted 'delete' command to TDB2.
2011-09-03 12:57:26 -04:00
Paul Beckingham
eb992d3523 TDB2
- Implemented TDB2::gc.  Probably with a few really nasty bugs, to
  provide nice entertainment for the rest of the weekend.
2011-09-03 12:56:26 -04:00
Paul Beckingham
1c837822fc Merge branch '2.0.0' of tasktools.org:task into 2.0.0 2011-09-03 11:30:20 -04:00
Paul Beckingham
54866864ad Code Cleanup
- Removed unnecessary Task::setEnd call.
2011-09-03 11:29:23 -04:00
Paul Beckingham
aef24c0c54 TDB2
- Converted the sort routine to TDB2.
2011-09-03 11:29:08 -04:00
Paul Beckingham
e379af9751 Task Validation
- Removed the newly obsoleted Command::apply_defaults, which is now
  merged into Task::validate, and therefore applied to all modifications
  and new tasks.
2011-09-03 11:19:45 -04:00
Paul Beckingham
3d1a5acafb TDB2
- Implemented high-level TDB2::id and TDB2:uuid that delegates to TF2.
- Fixed a bug in TDB2::modify that failed to properly overwrite a task.
2011-09-03 11:17:12 -04:00
Paul Beckingham
49965f8115 Commands - modify
- Converted the 'modify' command to TDB2.  This has a negative impact
  on unit tests, but that represents bugs and ommissions in TDB2,
  not flaws in the 'modify' command.  I hope.
2011-09-03 11:16:03 -04:00
Paul Beckingham
2886151e64 Commands - done
- Converted the 'done' command to TDB2.  This has a negative impact
  on unit tests, but that represents bugs and ommissions in TDB2,
  not flaws in the 'done' command.
2011-09-03 11:14:59 -04:00
Paul Beckingham
e7a255ca16 TDB2 integration
- Enabled the TDB2::clear call, paving the way for TDB elimination.
2011-09-03 11:14:24 -04:00
Paul Beckingham
cc24a3d2f0 Task Validation
- Made the validation more gentle - it no longer stomps on the status,
  which may help with bug #824.
2011-09-03 11:13:09 -04:00
Paul Beckingham
af404a5b5e Unit Tests
- Increased the signal to noise ratio.
2011-09-03 10:53:27 -04:00
Federico Hernandez
4083883ec4 Feature #813
- applied patch for eoq and soq (thanks to Paulo Almeida)
2011-09-03 16:38:26 +02:00
Johannes Schlatow
45a07f4d85 Merge
added missing gc, unit tests ok (almost)
2011-09-03 12:33:48 +02:00
Federico Hernandez
92d9b980b5 Unit tests
- project.t analysis
2011-09-02 15:35:04 +02:00
Federico Hernandez
04fab0c37a Unit tests
- added file test/ANALYSIS
  containing information about the different unit tests failing
  while finalizing 2.0.0. To be removed when releasing 2.0.0.
2011-09-02 09:25:29 +02:00
Paul Beckingham
5118b61f60 Commands - shell
- Enabled the shell command.
- Cleaned up unit tests.
2011-09-02 00:28:31 -04:00
Paul Beckingham
7b0bf9f3c2 Unit Tests
- Modified the merge.t tests to accomodate the use of 'export' instead
  of the now obsolete 'export.csv' command.
2011-09-02 00:01:18 -04:00
Paul Beckingham
63eb22fc7e TDB2 Merge
- Migrated TDB::merge to TDB2::merge.
- Removed obsoleted code from TDB.
- Modified unit tests for merge to use export instead of export.csv.
2011-09-01 23:48:35 -04:00
Paul Beckingham
45666ebfc5 Documentation
- Added the required Perl module to the developer doc, for running the
  test suite.
2011-09-01 23:24:07 -04:00
Paul Beckingham
e9c5b96344 Build
- Missed an include file.
2011-09-01 01:20:33 -04:00
Paul Beckingham
f19a09b390 Bug
- When handleRecurrence was cloning the parent task, it failed to set
  a new ID, so all the child tasks were given the ID of the parent.
- Cleaned up bug.annual.t.
2011-09-01 01:05:59 -04:00
Paul Beckingham
63dfb17bbc Undo
- Undo functionality restored, although not ideal.
2011-09-01 00:46:35 -04:00
Paul Beckingham
e0ee80b1a9 Import todo.sh
- Added more unit tests to todo.sh import.
2011-09-01 00:04:18 -04:00
Paul Beckingham
c1a21ce5a4 Export YAML
- Implemented export-yaml.pl as a filter.
- Reimplemented export.yaml.t to use the filter.
2011-08-31 23:52:07 -04:00
Paul Beckingham
5f4571b0d0 Expressions
- Implemented expression escalation: when matching against description,
  escalate to include annotations on failure.  Needs adjustment to
  DOM eval before it will work.
2011-08-31 23:36:16 -04:00
Federico Hernandez
dfe72d7de7 Unit tests
- count.t
  log now puts tasks directly into completed
2011-09-01 00:14:16 +02:00
Paul Beckingham
7789692678 Import
- Fixed priority and tag bugs in the todo.sh transform.
- Began (but have not finished) writing unit tests for this.
2011-08-31 02:29:02 -04:00
Paul Beckingham
641d4356c4 Task Validation
- Cleaned up the 'import' command due to the new validation code.
2011-08-31 02:14:05 -04:00
Paul Beckingham
12e1a30d2f Task Validation
- Cleaned up 'duplicate' command due to the new validation code.
2011-08-31 02:11:34 -04:00
Paul Beckingham
12cfdf1b5a Task Validation
- Cleaned up the 'delete' command due to the new validation code.
2011-08-31 01:50:13 -04:00
Paul Beckingham
4cc368da82 Task Validation
- Cleaned up the 'annotate' and 'denotate' code due to the new
  validation code.
2011-08-31 01:48:00 -04:00
Paul Beckingham
885bde51f1 Task Validation
- Cleaned up the 'append' and 'prepend' commands due to the new
  validation.
2011-08-31 01:45:31 -04:00
Paul Beckingham
66f8591fcd Task Validation
- Cleaned up the 'start' and 'stop' commands due to the new validation.
2011-08-31 01:43:08 -04:00
Paul Beckingham
2ecafd5d5e Task Validation
- Cleaned up 'log' command due to the new validation.
2011-08-31 01:39:53 -04:00
Paul Beckingham
b09351c517 Task Validation
- Fixed validation bug whereby recurring child tasks inherited the
  parent status ("recurring") instead of the expected "pending".
- Modified 'add' command to code duplicated in Task::validate.
- Cleaned up associated bug.period.t unit test.
2011-08-31 01:34:59 -04:00
Paul Beckingham
8e34a02811 Task Validation
- Implemented more relaxed validation rules.
- Added quiet corrections for missing data.
2011-08-31 01:15:12 -04:00
Paul Beckingham
b4a583b951 Import - todo.sh
- Wrote a todo.sh parser based on Gina's specs.
- Started unit tests (not finished).
2011-08-30 18:29:57 -04:00
Paul Beckingham
4f73d7232f Code Cleanup
- Removed support for the CSV import synonyms.
2011-08-30 17:33:27 -04:00
Paul Beckingham
c6837d927f Unit Tests
- Cleaned up 'append' unit tests.
2011-08-30 17:32:58 -04:00
Paul Beckingham
aefe4fa81c Unit Tests
- Cleaned up prepend unit tests.
2011-08-30 17:32:28 -04:00
Paul Beckingham
6746f4d5ba Code Cleanup
- Removed obsolete code from 'import'.
2011-08-30 17:31:52 -04:00
Paul Beckingham
965dabadf9 TDB2
- Converted 'denotate' command to TDB2.
2011-08-30 17:31:24 -04:00
Paul Beckingham
ba5daece99 TDB2
- Converted 'prepend' to TDB2.
2011-08-30 17:31:00 -04:00
Paul Beckingham
40724e120e TDB2
- Converted 'append' to TDB2.
2011-08-30 17:30:40 -04:00
Paul Beckingham
402f1f1b41 TDB2
- Converted 'annotate' to TDB2.
2011-08-30 17:30:12 -04:00
Paul Beckingham
2708aabddf Unit Tests
- Changed error wording to match the unit tests, which were correct.
2011-08-30 01:09:19 -04:00
Paul Beckingham
eeedfc48de Unit Tests
- Removed obsolete import/export unit tests.
2011-08-30 00:57:00 -04:00
Paul Beckingham
d501e9009b TDB2
- Converted the 'history', 'history.annual', 'ghistory' and
  'ghistory.annual' commands to TDB2.
2011-08-30 00:48:20 -04:00
Paul Beckingham
c1f33a23d3 Undo
- Stubbed the undo implementation in TB2::revert (undo as a name is
  already taken), and in the process lose the capability.
- Add detection of <modifications> when running the 'undo' command
  and generate an error.
2011-08-30 00:42:04 -04:00
Paul Beckingham
94ce784f33 Bug
- The 'duplicate' command used TDB2::commit, but TDB::nextId.
2011-08-30 00:35:45 -04:00
Paul Beckingham
72bd579cf4 Bug
- The 'add' command was calling TDB2::add, but TDB::nextId.
2011-08-30 00:29:24 -04:00
Paul Beckingham
f07ea0a26a TDB2
- Converted 'duplicate' to TDB2.
2011-08-30 00:27:27 -04:00
Paul Beckingham
90404c287e TDB2
- Converted 'timesheet' command to TDB2.
2011-08-30 00:23:27 -04:00
Paul Beckingham
9fefd4f283 TDB2
- Converted 'edit' command to TDB2.
2011-08-30 00:21:56 -04:00
Paul Beckingham
7f1e517754 Bug
- Added missing TDB2::commit call to commands that handleRecurrence.
  The missing commit would have meant no updates to the data when
  recurring tasks are generated.
2011-08-30 00:15:40 -04:00
Paul Beckingham
32164680ab TDB2
- Converted 'summary' command to TDB2.
2011-08-30 00:14:07 -04:00
Paul Beckingham
c340520bcc TDB2
- Converted 'ids', '_ids' and '_zshids' to TDB2.
2011-08-30 00:06:48 -04:00
Paul Beckingham
dde399f765 TDB2
- Converted 'burndown.{m,d,y}' to TDB2.
2011-08-30 00:00:23 -04:00
Paul Beckingham
77b647dfb0 TDB2
- Converted 'stop' command to TDB2.
2011-08-29 23:57:13 -04:00
Paul Beckingham
c72a556492 TDB2
- Converted 'start' command to TDB2.
2011-08-29 23:51:22 -04:00
Paul Beckingham
f14b414b9c Code Cleanup
- Eliminated obsolete composeYAML and composeCSV methods.  With export
  capabilities moving outside the core, these are no longer needed.
2011-08-29 21:33:34 -04:00
Paul Beckingham
5276bfd473 TDB2
- Converted 'export' to TDB2.
2011-08-29 21:12:23 -04:00
Paul Beckingham
380aadd76a Unit Tests
- The export.yaml.t test now verifies env access to task.
2011-08-28 18:16:43 -04:00
Paul Beckingham
1a4916ff03 Unit Tests
- Corrected PATH in env command.
2011-08-28 17:45:28 -04:00
Paul Beckingham
de5bee4353 Bug
- Import was not properly handling tags as a JSON array.  It assumed it
  was a string.
- Modified roundtrip.t tests so they work.
2011-08-28 17:21:49 -04:00
Paul Beckingham
6ab7cec36c Unit Tests - export-yaml.pl
- Rewrote the unit tests for the old export.yaml command to use the
  new export-yaml.pl add-on.
2011-08-28 16:53:49 -04:00
Paul Beckingham
4d328a1e46 Bug - Exec
- The execute command was not putting spaces between combined arguments
  when constructing a command line.
2011-08-28 16:44:31 -04:00
Paul Beckingham
aace091329 Add-ons: Exports
- Modified the export scripts to use the right command, which is now
  'export', not '_query', although '_query' is now an alias for backward
  compatibility.
2011-08-28 16:43:12 -04:00
Paul Beckingham
28183711c4 Bug
- The export command included the value of date fields instead of the
  name of date fields.
2011-08-28 16:39:05 -04:00
Paul Beckingham
0f627bd44e TDB2
- Added TDB2::clear and TF2::clear methods.
2011-08-28 08:13:41 -04:00
Paul Beckingham
8ec130d3c0 Command: info
- Converted to use TDB2.
2011-08-28 00:18:56 -04:00
Paul Beckingham
0dd4e6d360 Command: count
- Now generates recurring tasks.
- Cleaned up unit tests.
2011-08-28 00:17:51 -04:00
Paul Beckingham
eeb6479440 Command: Statistics
- Modified implementation to make better use of TDB2 features, and
  remove a set of static strings.
2011-08-28 00:16:24 -04:00
Paul Beckingham
50fa2c0ddf TDB2
- Every task in pending.data an ID.
2011-08-28 00:02:15 -04:00
Paul Beckingham
1e70f00c29 TDB2
- Properly handles cases where tasks are added, then existing data files
  are loaded.  The 'add' list and the 'loaded' list needed to be merged.
2011-08-27 23:30:51 -04:00
Paul Beckingham
1b25c415b0 TDB2
- Converted _urgency command from tdb to tdb2.
2011-08-27 21:24:36 -04:00
Paul Beckingham
c23f663408 TDB2
- Fixed problem with backlog - TDB2::modify should call backlog.add_task
  but was calling backlog.modify_task.
2011-08-27 20:56:41 -04:00
Paul Beckingham
d22871b265 Import
- Added unit tests for the 'import' command, which uses JSON as the
  native format.  This is the new default import/export format.  All
  other import/export formats are (to be) implemented as transforms
  to JSON.
2011-08-27 18:42:08 -04:00
Paul Beckingham
0eec42ce4a TDB2
- Corrected maintenance of the _lines vector during TDB2::add_line.
- Implemented TDB2::modify_task undo maintenance.
- Added unit tests for TDB2.  Which fail.
2011-08-27 16:33:19 -04:00
Paul Beckingham
ab931b6af2 Legacy
- Added legacy warnings about use of fg: or bg:.
2011-08-27 14:29:08 -04:00
Paul Beckingham
1c98544380 Columns - 'fg' and 'bg'
- Added columns 'fg' and 'bg', despite their being deprecated.  Can't
  remove capabilities without appropriate forewarning.
2011-08-27 11:56:03 -04:00
Paul Beckingham
17dfbabb39 TDB2 & Task
- Fixed next_id handling in load_tasks.
- Removed unnecessary load in next_id.
- Added missing encode call.
index 8c0d2e9..3d1b7ce 100644
--- a/src/Task.cpp
+++ b/src/Task.cpp
@@ -528,7 +528,7 @@ std::string Task::composeF4 () const
     {
       ff4 += (first ? "" : " ")
            + it->first
-           + ":\"" + json::encode (it->second) + "\"";
+           + ":\"" + encode (json::encode (it->second)) + "\"";
       first = false;
     }
   }
2011-08-27 11:18:43 -04:00
Paul Beckingham
1392c8e619 Typo
- Wrong variable name.  Should have run the tests first.
2011-08-27 10:46:49 -04:00
Paul Beckingham
df2a319201 Enhancement
- The 'stats' command now includes the new data files in the 'data size'
  calculation.
2011-08-27 10:39:21 -04:00
Paul Beckingham
bceccba6eb Code Cleanup
- The str_replace is no longer needed.
2011-08-27 10:38:48 -04:00
Paul Beckingham
74c12e1dec Encode/Decode
- The tasks are now using JSON encodings, but in addition to JSON
  decodings, also need legacy decoding, providing backward compatibility.
2011-08-27 10:31:27 -04:00
Paul Beckingham
1c2a4981ac Helper functions
- Rescued the str_replace function from Att.
2011-08-27 10:22:40 -04:00
Paul Beckingham
e5acabc452 Helper functions
- Rescued the ::encode and ::decode funtions and put them in util.cpp.
  This is because 2.0 will still need to perform the same encode/decode
  operations without Att.cpp around.
2011-08-27 10:21:49 -04:00
Paul Beckingham
f92b13fbf7 Visuals
- Cleaned up 'info' command output when the task is not pending and
  has no ID.  It displays '-' instead of the misleading "0".
2011-08-26 02:41:51 -04:00
Paul Beckingham
64be6e1cf4 Unit Tests
- Added unit tests for bug 819, on behalf of Matt Kraai.
- Created a new, single test for cleanup that replaces 6.  It's makes
  for shorter unit tests, and adds less test count inflation.  Over
  time, all tests should be modified in a similar way.  This will
  probably cut the total number of unit tests in half, but that's not
  the important metric.
2011-08-26 02:13:32 -04:00
Matt Kraai
ea3f0e8567 Bug #819
- Patch applied to fix problem with parsing, where this:
    aa'a
  is parsed as
    aa 'a

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-08-26 02:00:41 -04:00
Paul Beckingham
e127f33e3a TDB2::siblings
- TDB2 helper function to locate sibling tasks.
2011-08-26 01:58:07 -04:00
Paul Beckingham
4f0276c062 DOM
- Implemented lookup for <id>.<attr> and <uuid>.<attr>.
2011-08-25 22:19:25 -04:00
Paul Beckingham
60ca284e3a TDB2::get
- Implemented high-level accessors for tasks, by ID and UUID.  This
  permits full DOM implementation.
2011-08-25 22:13:47 -04:00
Paul Beckingham
dab06f8672 Code Cleanup
- All objects now use the same convention for naming members.  The
  consistency is a good thing.
2011-08-25 21:54:28 -04:00
Paul Beckingham
fb6dc5058f TDB2
- Full implementation of TDB2::add, which includes pending/completed, undo
  and backlog.
- Removed obsolete TF2::commitUndo, which is no longer necessary.
- Added File::truncate method, to allow a TDB2 shortcut.
2011-08-25 00:29:54 -04:00
Paul Beckingham
02df3853f7 Unit Tests
- Fixed more unit tests that were out of synch with the latest
  functionality, text messages or rendering.
2011-08-24 00:47:44 -04:00
Paul Beckingham
6f38e10cab Feature #682
- Added feature #682, which allows the configuration variable 'defaultheight'
  to override the assumed height of 24 lines when 'detection' is not enabled
  (thanks to Steve Rader).
2011-08-23 23:29:36 -04:00
Paul Beckingham
397d1c2d09 Feature #806
- Added feature #806, which provides the ability to compare dates using the
  relational operator '>=' (thanks to Miguel de Val Borro).
2011-08-23 23:01:56 -04:00
Paul Beckingham
257f5ab3da Bug #458
- Fixed bug #458, removing the ambiguous 'm' as a duration, leaving 'mi[nutes]'
  and 'mo[nths]' requiring at least two characters for a match.
2011-08-23 22:46:32 -04:00
Paul Beckingham
d15cccdb7d Bug #694
- Fixed bug #694, which allows attributes to be modified while annotating a
  task (thanks to Aikido Guy).
2011-08-23 22:30:01 -04:00
Paul Beckingham
2f60bdf9d0 Bug #720
- Fixed bug #720, so that when the 'info' report renders total active time,
  it uses a lossless format (thanks to Bernhard B).
2011-08-23 22:15:00 -04:00
Paul Beckingham
89d3b4e805 Bug #737
- Fixed bug #737, which allows wait dates after due dates, but provides a
  warning (thanks to Arkady Grudzinsky).
2011-08-23 21:36:09 -04:00
Paul Beckingham
2e09ddd900 Unit Tests
- Fixed some tests that used old message text.
- Fixed tests that relied on 'log'ed tasks still being written into
  pending.data.
- Removed obsolete auto-info tests.
2011-08-23 20:12:19 -04:00
Paul Beckingham
9641dde54f Debug Mode
- No longer generates parsing diagrams if debug mode is off.
2011-08-23 07:14:26 -04:00
Paul Beckingham
1dc2257156 TDB2 Conversion
- Migrated several commands over to use TDB2.  Have to start somewhere.
2011-08-23 00:47:46 -04:00
Paul Beckingham
e573801517 TDB2 - Diagnostics
- Added a diagnostic dump of the TDB2 state in debug mode.
- Added a call to TDB2::dump at the start of TDB2::commit.
- Removed unnecessary calls to TDB2::dump.
2011-08-22 23:04:38 -04:00
Paul Beckingham
013061803f Helper Functions
- Implemented rightJustifyZero for zero-padded integer strings.
2011-08-22 22:24:43 -04:00
Paul Beckingham
589627852f Duration Bug
- Removed the unnecessary ::getInt parse before ::getNumber, which was
  causing "-1.2d" to not parse.
- Removed verbose debug statement.
2011-08-21 23:32:37 -04:00
Paul Beckingham
6ed2bcd605 Durations
- Removed support for ' 1 wk', namely spaces before and after the ordinal.
  This removes (some) ambiguity in more complex command lines.
- Fixed unit tests accordingly.
2011-08-21 23:19:10 -04:00
Paul Beckingham
501953a6da TDB2
- Verifies that a UUID is not already found in the data.  This prevents
  erroneous double-import.  Or triple...
2011-08-21 22:37:02 -04:00
Paul Beckingham
d7ba2b2b62 Portability
- Fixed compiler warning.
2011-08-21 22:36:11 -04:00
Paul Beckingham
7a778ba317 E9 operator_equal
- Fixed broken logic in operator_equal.
- Fixed typos in op_and.t unit test.
- Fixed descriptions in op_or.t.
2011-08-21 18:38:04 -04:00
Paul Beckingham
e0ecb7a2d8 E9 - Relational Operators
- Added missing-data handling for the relational operators <, <=, >
  and >=.
2011-08-21 16:54:50 -04:00
Paul Beckingham
f11c8ee5c6 Unit Tests
- Added unit tests for the '<=' and '>=' operators.  All tests pass,
  which makes a nice treat.
- Added more tests to '<' and '>' operators, so that all three data
  types are covered.
2011-08-21 16:45:38 -04:00
Paul Beckingham
a4fca31e7d Unit Tests
- Added unit tests for the '<' and '>' operators.  Many fail.  Sigh.
2011-08-21 16:28:01 -04:00
Paul Beckingham
ee42f9898f Unit Tests
- Added unit tests for the 'and', 'or' and 'xor' operators.  Many of
  them fail.  As expected.
2011-08-21 15:59:47 -04:00
Paul Beckingham
788eea8d80 E9 operator_not
- Corrected the implementation of the ! operator, which was previously
  doing ... nothing.
2011-08-21 15:38:07 -04:00
Paul Beckingham
6e976e7d7c E9 - operator_equal
- Added proper handling for missing dates to the '=' operator.  This
  is a trial run of enhancements to lots of other operators to come.
2011-08-21 14:33:10 -04:00
Paul Beckingham
2b961c128a DEVELOPER File
- Added some clarification, minor changes.
2011-08-21 14:31:49 -04:00
Paul Beckingham
de9dbbbb3d A3, Arg
- Some attribute values (ie wait:tomorrow) when parsed, need to take
  the data type of the attribute (date) and use that as an implied type
  of the value (date literal).
- Arg renders type-less and category-less values as "", instead of "none".
  Cleaner output.
2011-08-21 14:24:26 -04:00
Paul Beckingham
a3ba91c2a3 Recurrence
- Recurrence values are now stored in a parsed state, and rendered by
  Duration::formatCompact.
2011-08-21 13:43:54 -04:00
Paul Beckingham
1714601ce4 Duration
- Allowed durations to be specified numerically as seconds, in string form.
  This flexibility allows the removal of special-case handling that stores
  recurrence periods in raw form ('monthly'), reducing code size.  As a
  consequence this means that recurrence may now be rendered according to
  Duration::formatCompact, which is desirable.
- Added supporting unit tests.
2011-08-21 13:32:55 -04:00
Paul Beckingham
9a126ce717 Error Handling
- Improved some task validation errors by including data.
- Improved the phrasing of some error to be less pompous.
- Marked validation errors that need to be downgraded to warnings.
2011-08-21 12:35:47 -04:00
Paul Beckingham
1b55a48757 Unit Tests
- Eliminated obsolete benchmark.t.
- Removed the 'quick' mode logic to skip benchmarks in run_all.
- Restored bug.480.t tests that hung earlier.
2011-08-21 01:09:32 -04:00
Paul Beckingham
7aa4efef8d Expression Refactor
- Refactoring complete.  Arg objects now uses enumerations for _type
  and _category, which should help with performance.
2011-08-21 01:06:50 -04:00
Paul Beckingham
9086f51d29 Merge branch '2.0.0' of tasktools.org:task into 2.0.0 2011-08-20 17:09:04 -04:00
Paul Beckingham
215364958e Expressions Refactor - Clarified expansion rules
- Arg now has a _value member that reflects the value in play, rather
  than the input _raw value.  Only _value is used in eval.
- DOM expansion capabilities are now controlled by rc.dom.
2011-08-20 17:06:50 -04:00
Federico Hernandez
556ee1165d Portability
Added a reference to the Darwin 32bit version task to the task-faq
man page as well.
2011-08-20 23:01:47 +02:00
Paul Beckingham
c6229a6ca6 Unit Tests
- Removed benchmark2.t - it is no longer useful, and duplicates benchmark.t,
  which is itself not long for this world.
2011-08-20 14:56:09 -04:00
Paul Beckingham
438e65036b Expression Refactor
- Arguments are now categorized as either "literal" or a specific
  category, with accompanying type.  Type is inferred for literals,
  and referenced for attributes.
2011-08-20 14:02:48 -04:00
Paul Beckingham
a2a9bfc933 Portability - Building on 32-bit Darwin
- Added notes on building for 32-bit hardware running Darwin (thanks
  to John Hammond).
2011-08-20 11:16:30 -04:00
Paul Beckingham
516e368df0 Expression Refactor
- E9 now uses Arg object in place of Term.  This means A3 and E9 are
  now using a common object.
2011-08-20 10:11:24 -04:00
Paul Beckingham
816b07e868 Expressions - Refactor
- The A3::Arg object is very similar to the E9::Term object, so the two are
  being merged.  First step is to separate A3::Arg into it's own space, then
  add a _type member.
- Added more valid stop characters as terminators for various arg types.
- Removed redundant E9 special handling for dates, which is already built in
  to the Date object.
2011-08-19 22:42:19 -04:00
Paul Beckingham
7dd3e081c7 Bug #804 - URL link and break line
- Addressed bug #804 by allowing rc.hyphenate to control whether hyphens are
  inserted when long lines are broken.  This may help prevent xterm from
  mis-parsing URLs in task annotations, when wrapped (thanks to Yann Davin).
- Added unit tests.
2011-08-17 22:39:28 -04:00
Paul Beckingham
08fcb5362e Bug - Durations
- Duration were parsed as <int><unit> in A3, whereas <number><unit> is
  correct.
- Added Nibbler::str method for internal access.
- Nibbler::save, ::restore now return positions.  Useful for extracting
  substrings.
- Modified countdown.t to use the (now) correct units for durations.
2011-08-17 00:45:09 -04:00
Paul Beckingham
ee2960b9b0 Date/Duration Distinction
- When a date attribute is updated, the expression may have evaluated to
  a duration, which at this point is simply a number.  If it is below a
  certain threshold (5y) then it is considered a duration and added to
  'now', otherwise it is considered a date.
2011-08-16 23:50:26 -04:00
Paul Beckingham
ac9d1f3bfa Performance Timing
- Change the was performance measurements are taken.  This in preparation
  to automated daily perf charts, leading to efforts to speed up certain
  operations.
2011-08-15 21:53:01 -04:00
Paul Beckingham
ad38d5b92e Bug - File open issue
- If a file (pending.data) is open and locked, trying to open it again
  caused an error, whereas is now does nothing and reports success.
- Corrected timing info in Command::filter.
2011-08-14 21:23:01 -04:00
Paul Beckingham
e403574c34 Unit Test - bug.605.t
- Enabled the (failing) unit test, which now stands a chance of being
  fixed.
2011-08-14 21:03:40 -04:00
Paul Beckingham
8af6d70685 TDB2 - Timing
- Added timing information to TDB2 for performance measuring.
2011-08-14 21:02:30 -04:00
Paul Beckingham
49cabc1bfd Unit Tests
- All unit tests now clean up the new backlog.data and synch.key files.
2011-08-14 14:09:12 -04:00
Paul Beckingham
b0c8cff6a2 A3 - attribute modifier syntax
- Restored the <name>.<modifier>[:=]<value> syntax that was reduced
  to just <name>.<modifier>:<value> to make parsing easier.  Now that
  A3 is more sophisticated, we can have our sugar back.
2011-08-14 13:29:06 -04:00
Paul Beckingham
d59cddcc6c Default Command - next
- The new 'next' report is now the default command.  It was 'list', but
  'next' is much better.
2011-08-14 13:14:12 -04:00
Paul Beckingham
ef35a0cc18 TDB2 - Task IDs
- TF2::load_tasks now properly assigns task IDs.
- TDB2::next_id properly determines the next ID.
2011-08-14 13:08:37 -04:00
Paul Beckingham
f1d429cc96 E9 - Date Handling
- Made dateformat a class member, to reduce multiple lookups to one.
- Added operator-specific data handling.
2011-08-14 12:32:37 -04:00
Paul Beckingham
06d54b2e72 Commands - Calendar
- Converted the 'cal' command to TDB2.
- Reinstated command line handling for 'cal' command, but realized there
  is a conflict with filters.  Filtering disabled for 'cal' until a good
  solution is found.
- Converted recur.cpp to use TDB2, which eliminates the file locking
  problems that occur when both TDB and TDB2 are in use at the same time.
  This will cause other issues until all commands are converted to TDB2.
2011-08-14 12:04:34 -04:00
Paul Beckingham
b1ad00313f TDB2 & CmdCustom
- Converted CmdCustom to use TDB2, which means that for the first time,
  2.0 is now optimizing data load based on filter characteristics.  This
  means that "task list" and "task next" etc are now *fast*.
- Improved diagnostics for TDB2, for debugging.
2011-08-14 12:00:10 -04:00
Paul Beckingham
9a862bc75a File - locking
- Made locking an integral part of the File object, so that a client
  may now call File::lock multiple times with no effect beyond the first
  call.  This simplifies situations like the 'cal' command that must scan
  for recurrence changes, modify tasks, then optionally run a second
  report, all without locking issues.
2011-08-14 11:54:53 -04:00
Paul Beckingham
1f58856299 TDB2 - Recurrence
- Re-enabled the recurrence handling code and converted from TDB to
  TDB2.  Time for some difficult TDB2 work.  But first, coffee.
2011-08-14 10:19:59 -04:00
Paul Beckingham
f3f6cd260a E9 - Typo
- In one of the dumbest typos yet, I entered "fasle" instead of "false"
  and the copy/pasted it around.
2011-08-14 10:04:04 -04:00
Paul Beckingham
5a95b96631 A3 Parsing
- Durations now parse at higher precedence than operators, so that durations
  like '-3d' are not parsed as '-' '3d'.
2011-08-14 00:55:53 -04:00
Paul Beckingham
3e58453693 Unit Tests - filter-prefix.t
- I had forgotten to remove the unit tests for the ~ inversion modifier.
  This feature, though well implemented, is removed because enhancements
  to filtering are going to be added to the new expressions.  Attribute
  modifiers will continue to be supported, but not enhanced beyond 1.9.4
  functionality..
2011-08-14 00:42:39 -04:00
Paul Beckingham
dba950fcf7 A3 Parsing
- Added an 'until whitespace' clause to the attmod parser.  Results are
  better.
- Noted the need for more specific forms to be recognized.
2011-08-14 00:14:48 -04:00
Paul Beckingham
b5053f3711 Unit Tests - view.t
- Added logic to detect whether the unit tests were being run with output
  attached to a TTY or not, and adjust the expected lines of output
  accordingly.  The !TTY case is the important one.
2011-08-14 00:08:54 -04:00
Paul Beckingham
0ead416574 Unit Test - bug.495.t
- Modified the test to reflect the new handling of -- on the command
  line with respect to quoted text.
2011-08-13 23:58:28 -04:00
Paul Beckingham
beac5ed7e9 Unit Tests - bug.489.t
- The command line construct "tags.none:" is translated into the expression
  "tags = ''", but instead of '=' I had entered '=='.  Force of C/C++/Perl
  habit.
2011-08-13 23:40:22 -04:00
Paul Beckingham
38959d6446 Unit Tests
- Another broken unit test because a localized string lost the full
  stop.
2011-08-13 23:36:15 -04:00
Paul Beckingham
eec0abd1e7 Unit Tests - t2.t
- Removed two unit tests for data file syntax that is no longer
  supported, namely unquoted values.
    Supported:      status:"pending"
    Not supported:  status:pending
2011-08-13 23:34:14 -04:00
Paul Beckingham
fb9e82ed0e TDB2 parsing
- TDB2::load_lines was splitting the text on \n, but because the last
  line contains \n, there was an additional blank line.  This is what
  split_minimal is for.
- split_minimal contained a copy/paste bug that added the extra line
  if the input was non-trivial, instead of if the remainder was non-
  trivial.
- Fixed incorrect unit test accordingly.
2011-08-13 23:19:11 -04:00
Paul Beckingham
587f2a002f A3 Duration
- When parsing duration literals, look-ahead now prevents an ordinal
  such as '31st' (August 31st) from being interpreted as two tokens
  '31s' (duration) and 't' (word).  This is the same fix that was
  applied to A3::is_number.  I'll be there are more that I missed.
2011-08-13 22:29:39 -04:00
Paul Beckingham
a4fc8aee6a Unit Tests - bug.628.t
- Quoting problem.  To prevent the shell from stripping quotes, the
  command line must include \" ... \", but in a Perl string, that
  needs to be \\" ... \\".  Silly mistake.
2011-08-13 22:27:59 -04:00
Paul Beckingham
77dc2c47d4 Unit Tests - typo
- Unit test bug.434.t was thwarted by the L10N effort, which left off
  a full stop from a display string.
2011-08-13 22:26:17 -04:00
Paul Beckingham
be0522d567 Annotation Collisions
- Annotation timestamps are now incremented until unique.  This prevents
  rapid, successive annotations colliding.  The kind that occur during
  unit tests and when using UI wrapper programs.
- Removed 'sleep' commands in unit tests that were added to circumvent
  this.  This speeds up the test suite somewhat.
2011-08-13 21:53:10 -04:00
Paul Beckingham
cb366e0270 Unit Tests - rx.t
- Added a \b word-boundary unit test that isn't working.  Documentation
  says it does.  Computer says no.
2011-08-13 21:09:57 -04:00
Paul Beckingham
bfad448f82 TDB2 - id <--> uuid mapping
- Migrated TDB mapping over to TDB2 mapping, which occurs at the TF2 level.
  This should (soon) restore task dependencies.
2011-08-13 17:43:07 -04:00
Paul Beckingham
30034f057b Bug - A3::extract_modifications
- Broadened the list of argument categories that are downgraded to
  'word' for the purpose of task modification.
2011-08-13 16:24:07 -04:00
Paul Beckingham
7ba5e67050 Code Cleanup
- Removed unnecessary debug statements.
2011-08-13 14:31:29 -04:00
Paul Beckingham
7aa7fe083f Parsing
- Added special look-ahead rules to remove cases where '3M' was considered
  a number.
2011-08-13 14:10:24 -04:00
Paul Beckingham
e238b94d1b Urgency
- Urgency recalc was not properly set with the task was modified.
- Corrected urgency formatting.
- Cleaned up some code in A3 and E9.
2011-08-12 23:08:54 -04:00
Paul Beckingham
5a2fba607e Unit Tests
- New 'problems' script to help identify problem areas in the test
  suite.
2011-08-11 18:25:10 -04:00
Paul Beckingham
92ad842ab8 Unit Tests
- Fixed sorting errors, which were in the tests, not the code.
2011-08-11 18:13:46 -04:00
Paul Beckingham
678e08ca0f Portability
- When HAVE_SRANDOM is undefined in 1.9.4, the timeval struct can be omitted
  causing a compile error.  Patch received, but not applied to 2.0.0 branch
  because that code has been rewritten already (thanks to Paolo Almeida).
2011-08-10 01:28:04 -04:00
Paul Beckingham
47ae2ee9f6 Unit Tests
- Added unit tests for Nibbler::getNumber when the input is simply "2.0".
2011-08-10 00:25:03 -04:00
Pietro Cerutti
2274be16d8 Documentation
- Italian translation of the tips file.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-08-09 22:46:41 -04:00
Johannes Schlatow
413f2f6db6 Bug
- merge was playing ping-pong with different undo.data results
  in a setup with three machines
2011-08-09 00:13:21 +02:00
Paul Beckingham
e2a8f85a2f Task Refactoring
- Task is no longer a map of string to Att.  Att is itself a name/
  value pair, so the name was redundant.  Task is now a map of string
  to string.  This brings the obsoletion of Att much closer.
2011-08-07 22:41:25 -04:00
Paul Beckingham
85e77c1958 Code Cleanup
- Merging Record and Task objects, step 5.  Done.
2011-08-07 17:06:06 -04:00
Paul Beckingham
6f980490bd Code Cleanup
- Merging Record and Task objects, step 4.
2011-08-07 17:03:39 -04:00
Paul Beckingham
740cacc49f Code Cleanup
- Merging Record and Task objects, step 3.
2011-08-07 16:40:02 -04:00
Paul Beckingham
33cfdec5a6 Code Cleanup
- Merging Record and Task objects, step 2.
2011-08-07 16:28:40 -04:00
Paul Beckingham
6d00337db3 Code Cleanup
- Merging Record and Task objects, step 1.
2011-08-07 16:23:23 -04:00
Paul Beckingham
6140f4af9d Columns - mask, imask, parent
- Implemented column objects for the mask, imask and parent attributes.
  Why not.
2011-08-07 02:58:43 -04:00
Paul Beckingham
cdda791c84 Command - import
- Implemented the import command, which only suports JSON.  It is
  the basis for all other import formats, which will be implemented
  as external scripts.
2011-08-07 02:10:50 -04:00
Paul Beckingham
e8a49b3e8e Commands - timesheet
- Added stubs for the start of a command rewrite, possibly.
2011-08-06 16:28:45 -04:00
Paul Beckingham
fb23bf73a3 Import
- Trying different methods of making this code cleaner.  Not working
  so far.
2011-08-06 16:27:38 -04:00
Paul Beckingham
3e5bb713eb Merge branch '2.0.0' of tasktools.org:task into 2.0.0 2011-08-06 01:02:49 -04:00
Paul Beckingham
ffa5bc43fe E9
- Working towards arg date/duration eval.
2011-08-06 00:59:14 -04:00
Federico Hernandez
6e1ba161b1 Relative dates
- eoq and soq to refer to the end and start of the quarter
  (thanks to David French)
2011-08-04 01:40:31 +02:00
Paul Beckingham
e5ae145df2 Command - denotate
- Implemented denotate in the new style.
2011-08-02 00:56:29 -04:00
Paul Beckingham
8154222ef1 Documentation
- Updated DEVELOPER file.
2011-08-01 02:12:24 -04:00
Paul Beckingham
cc51c50f84 Configuration
- Added support for rc.dom, which enables/disables DOM support.
2011-08-01 01:39:21 -04:00
Paul Beckingham
a7f694386a Code Cleanup
- Eliminated obsolete Variant code.
2011-08-01 01:26:59 -04:00
Paul Beckingham
76760fe434 Command - show
- Fixed the show command to accept 'all' or a substring to search for
  in the configuration file.
2011-08-01 01:18:12 -04:00
Paul Beckingham
9275f3460f Unit Tests
- Fixed unit test.
2011-08-01 01:17:18 -04:00
Paul Beckingham
9403bc8e49 Operators
- Implemented Priority and string based <, <=, >, >= operators.
2011-08-01 01:05:03 -04:00
Paul Beckingham
ac7bcc81ee Unit Tests
- Corrected all unit tests that used the old syntax "task done 1" to
  use the new syntax "task 1 done".  Similarly, "task 1 ..." is now
  "task 1 modify ...".
2011-07-31 19:03:19 -04:00
Paul Beckingham
9ce7f63d85 Bug
- Fixed bug where argument processing was not properly shut off by
  the terminator -- in A3::tokenize.
2011-07-31 16:18:25 -04:00
Paul Beckingham
a91b6d4564 Attribute Parsing
- Attributes do not contain spaces unless specifically quoted and
  escaped.
2011-07-31 15:19:06 -04:00
Paul Beckingham
a171f6e4ac Bug
- Fixed bug whereby arguments were categorized, then defaults were injected
  but no subsequent categorization occurred.
- Added debug diagnostics for default.command, 'modify' and 'information'
  default processing.
2011-07-31 14:01:41 -04:00
Paul Beckingham
ccd32cb7d6 Unit Tests
- add.t contained a broken test that did not take into account a
  (working) substitution.
2011-07-31 13:34:10 -04:00
Paul Beckingham
e61e08c2ca Annotation Bug
- Fixed DOM lookup of special-case attributes: id and urgency are
  not stored in the usual manner, and must be handled differently.
- Removed the responsibility of DOM to evaluate literals, because
  they are handled more effectively in A3::tokenize.
- Fixed old code that assumed ".id" instead of "id".
- Removed unnecessary diag call from annotate.t.
2011-07-31 12:11:36 -04:00
Paul Beckingham
1884223a2e Arguments
- rc:___ and rc.___ arguments are no longer propagated to commands
  that modify tasks.
2011-07-31 11:18:16 -04:00
Paul Beckingham
c244132476 Unit Tests
- Fixed bug in Nibbler::getN.
- Added unit test for Nibbler::getN.
2011-07-31 11:14:56 -04:00
Paul Beckingham
01d3da90ae Unit Tests
- Filters must precede write-commands on the command line.
2011-07-31 09:49:23 -04:00
Paul Beckingham
4a99723129 CmdShow
- Added 'json.array' to the list of allowed configuration variables.
2011-07-30 14:52:53 -04:00
Paul Beckingham
100af304b7 A3
- Added copy ctor, operator=.
- Included proper handling of the _limit member.
2011-07-30 14:22:15 -04:00
Paul Beckingham
d6dd1fe8ac Holidays
- Added Japanese holidays for 2012, 2013 (thanks to Takanobu Watanabe).
2011-07-30 07:58:36 -04:00
Ben Boeckel
acc00e67ea [PATCH 1/2] Add monthly recurrence
Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-07-29 22:45:13 -04:00
Paul Beckingham
c002e8e24f Holidays
- Added Japanese holiday file for 2011 (thanks to Takanobu Watanabe).
2011-07-29 22:42:26 -04:00
Ben Boeckel
a29097d9e0 [PATCH 2/2] Fix default task directory path
Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-07-29 22:39:13 -04:00
Ben Boeckel
4f06e454a9 [PATCH] Add a missing trailing space
Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-07-29 22:37:05 -04:00
Paul Beckingham
a691dfd6ed Developer File
- Added more required code "specs", removed the burndown y-axis function
  that was provided by Ben Boeckel.
2011-07-29 22:34:25 -04:00
Paul Beckingham
ecfce5091e Burndown
- Modified burndown command to use the Y-Axis calculation from Ben Boeckel.
2011-07-29 22:31:58 -04:00
Ben Boeckel
210b5f54d5 [PATCH] Compute the height of a burndown chart
Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-07-29 22:30:27 -04:00
Paul Beckingham
402bac02a6 Legacy columns, formats
- Marked legacy columns and formats as deprecated.
2011-07-29 00:54:03 -04:00
Paul Beckingham
a26b4ca12f Expression Operators
- Implemented operator_equal, operator_inequal.
- Removed diagnostics for completed operators.
2011-07-28 23:38:37 -04:00
Paul Beckingham
eb1154235a Expression reboot
- Implemented =, !=, ~, !~ operators.
- Generates lots of diagnostics for now.
2011-07-28 00:40:09 -04:00
Paul Beckingham
40a71e2aae Feature #811
- Added feature #811, which makes the 'execute' command optional, and
  controlled by '#define HAVE_EXECUTE 1' in cmake.h.  This allows a build
  that does not have the potential security hole, in the event that taskwarrior
  is run at elevated privilege, or run in the context of a web server.
2011-07-28 00:14:33 -04:00
Paul Beckingham
2460502be8 AUTHORS
- Added Daniel Kullmann as thanks for the code patches, although they
  are not being applied.  We still appreciate the effort.
2011-07-27 22:43:05 -04:00
Paul Beckingham
8651bbec8e DEVELOPER
- Updated the file with holiday data info.
2011-07-27 22:39:51 -04:00
Paul Beckingham
7e3a207d63 Bug #808
- Fixed bug #808, which generated compiler warnings on Solarix (thanks to
  Owen Clarke).
2011-07-26 21:40:31 -04:00
Paul Beckingham
0ee1f9c1c6 Bug #807
- Fixed bug #807, which caused a lack of Lua to prevent tests from building
  (thanks to Owen Clarke).
2011-07-26 21:26:21 -04:00
Paul Beckingham
fde7ec107a Code Cleanup
- Removed obsolete Nibbler::getDOM.
2011-07-26 00:40:29 -04:00
Paul Beckingham
9bf1ec2f7c Code Cleanup
- Eliminated Lexer.
2011-07-26 00:37:49 -04:00
Paul Beckingham
0c08b29e48 Code Cleanup
- Eliminated obsolete Arguments.h, Arguments.cpp.
2011-07-26 00:25:57 -04:00
Paul Beckingham
ab8a6d9e88 Code Cleanup
- Eliminated Expression.{h,cpp}.  E9 now replaces it.
2011-07-25 23:53:41 -04:00
Paul Beckingham
879356fad2 AUTHORS
- Added Miguel de Val Borro, for various contributions.
2011-07-25 23:23:13 -04:00
Matt Kraai
0e2da7f1d4 Code Cleanup
- When compiling the 2.0.0 branch of Taskwarrior with GCC 4.6.1, the compiler
  generates a number of warnings.  This patch eliminates these warnings.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-07-25 23:17:37 -04:00
Paul Beckingham
b9ea9ca2db Code Cleanup
- Removed obsolete deltaXXXX helper functions.
2011-07-25 23:08:56 -04:00
Paul Beckingham
83c0ea6ab2 E9
- Implemented the shell of E9::eval.
- Stubbed out operator_xxx helper methods.
2011-07-25 22:59:47 -04:00
Paul Beckingham
b1048ddfa3 Documentation
- Added DEVELOPER file to give hints, clues as to what needs work, and
  what should be avoided.
2011-07-25 22:51:00 -04:00
Paul Beckingham
3d13ac9f12 Expression reboot
- A3::postfix implemented.
2011-07-25 01:33:23 -04:00
Paul Beckingham
af2f44ca5a Expression reboot
- Implemented selective ID/UUID detection, allowing only a single
  block of consecutive ID/UUID values to be considered a sequence.
- Implemented A3::sequence to expand task IDs and UUIDs into an
  algebraic filter.
2011-07-25 01:10:15 -04:00
Matt Kraai
f86b497fa8 Portability
- Patch provided to define uint32_t types, etc in util.cpp.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-07-24 23:50:12 -04:00
Paul Beckingham
d167842e36 Date
- Implemented Date::get_relatives to retrieve a list of all the supported
  relative date constructs.
2011-07-24 23:34:15 -04:00
Paul Beckingham
8e691d5c5f Expression reboot
- Implemented A3::expand to include all expandable types.
2011-07-24 23:20:06 -04:00
Paul Beckingham
5daabd2548 Expression reboot
- Implemented A3::extract_pattern.
- Implemented A3::infix, which inserts 'and' operators where necessary
  in expressions.
- Began implementation of A3::expand which converts old-style filters
  (pri:H) to the new algebraic style (priority = H).
2011-07-24 21:53:03 -04:00
Matt Kraai
0962b66928 Bug #803
- Here's a patch to make Taskwarrior not display the prompt and not delete the
  parent task if a recurring task is deleted when rc.confirmation is false.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-07-24 21:48:09 -04:00
Paul Beckingham
56af60ceaf Arguments
- Converted from Arguments to A3.
2011-07-24 17:03:32 -04:00
Paul Beckingham
2f5bb14d33 Arguments
- Converted from Arguments to A3.
2011-07-24 17:01:28 -04:00
Paul Beckingham
5b0197300f Arguments
- Converted from Arguments to A3.
2011-07-24 16:55:32 -04:00
Paul Beckingham
852484beb2 Arguments
- Converted from Arguments to A3.
2011-07-24 16:50:58 -04:00
Paul Beckingham
67fb1e9be4 Expression reboot
- Downgraded A3::extract_words to return a simple vector of strings.
  Any more is unnecessary.
2011-07-24 16:44:05 -04:00
Paul Beckingham
b30b187b4c Expression reboot
- Implemented A3::is_tag.
- Removed obsolte A3::extract_* code.
2011-07-24 14:46:22 -04:00
Paul Beckingham
b3a73f2da1 Expression reboot
- Implemented A3::is_id and A3::is_uuid.
- Obsolted old is_operator.
- Obsolted old is_modifier.
- Obsolted old is_expression.
2011-07-24 14:27:10 -04:00
Paul Beckingham
0ecf93553c Nibbler
- Implemented Nibbler::getN, which allows for faster extraction of
  compound tokens if the length is known.
2011-07-24 14:25:53 -04:00
Paul Beckingham
10c1203c87 Expression reboot
- Implemented A3::is_subst.
2011-07-24 13:41:04 -04:00
Paul Beckingham
c39f8bd6af Expressions reboot
- Implemented A3::is_dom obsoleting Nibbler::getDOM.
- Implemented A3::is_duration.
- Implemented A3::is_pattern to replace Nibbler::getQuoted call.
- Improved A3::is_attr, A3::is_attmod.
- Obsoleted A3::is_multipart.
2011-07-24 13:33:20 -04:00
Paul Beckingham
f502ee0c52 Duration
- Implemented Duration::get_units to return the list of supported
  duration units (wk, week, weekly ...).
2011-07-24 13:15:27 -04:00
Paul Beckingham
f174caccbc DOM
- Implemented DOM::get_references to return a list of all the
  fixed-string DOM references supported.
2011-07-24 13:11:49 -04:00
Paul Beckingham
bfe5edd35d Nibbler
- Improved ::getDOM while it waits to be obsoleted.
2011-07-24 12:58:00 -04:00
Paul Beckingham
a4eb390a04 Duration
- The "annual" and "yearly" options were listed twice.
2011-07-24 12:57:10 -04:00
Paul Beckingham
b55f47ec9a Expression reboot
- Implemented A3::is_modifier which canonicalized modifiers.
- Implemtned A3::is_attmod.
2011-07-24 10:57:30 -04:00
Paul Beckingham
94dfc68cca Expression reboot
- A3::tokenize recognizes strings, patterns, attr, ops, dates.
- A3::tokenize canonicalizes attributes.
2011-07-24 01:06:26 -04:00
Paul Beckingham
3fd83ca400 Nibbler
- Implemented Nibbler::getName to parse an alpha-numeric name.
- Added appropriate unit tests.
2011-07-24 01:00:24 -04:00
Paul Beckingham
91225d808f Expression reboot
- A3 now tracks whether a command is read-only, and builds filters accordingly.
- Implemented extract_filter, extract_modfications and extract_words stubs.
- Removed all E9 implementation details - this is going to be written from
  scratch.
2011-07-23 23:39:11 -04:00
Paul Beckingham
c344c07579 Diagnostics
- Removing render timing info to ViewText::render.  It's not useful.
2011-07-23 23:13:19 -04:00
Paul Beckingham
abcda0bcfa Expression reboot
- More integration of A3 into Context.
- Now ready for filter/modification/word extraction.
2011-07-23 17:03:44 -04:00
Paul Beckingham
4fc4e0f637 Expressions reboot
- Now handles argument captures from argv, stdin.
- Now handles rc overrides, aliases, default command.
2011-07-23 15:24:39 -04:00
Paul Beckingham
5b5978952a Expressions reboot
- Created A3.{h,cpp} which will be a simpler, lightweight version of
  Arguments.{h,cpp} that does less, but does it better.
- Created E9.{h,cpp} which will be a better implementation of
  Expression.{h,cpp} that does less, but does it better.
- Integrated A3 into Context::initialize, and Arguments and A3 will
  coexist until A3 surpasses Arguments.
2011-07-23 13:38:33 -04:00
Paul Beckingham
1164ea5cf1 Expression support
- Added Context::getColumns to return a vector of column names.
  This is to help a shift toward using the Column objects to assist
  in the parsing/validation of data entry/modifications.
- Added Column::modifiable to delegate an attributes readable/writeable
  state.  This means the columns will be in charge of their own
  mutability, which will simplify and generalize Command::modify_task.
2011-07-23 12:08:13 -04:00
Paul Beckingham
ee9199b4e0 Bug
- Fixed bug where the command line was incorrectly scanned, looking
  for 'cal', '/cal', 'calendar' or '/calendar'.
2011-07-22 00:31:54 -04:00
Paul Beckingham
197524a5fc Expression
- Added configurable 'abbreviation.minimum' (default:2) setting to
  control how auto-completion works.
2011-07-20 10:51:13 -04:00
Paul Beckingham
a6fadaee67 Expressions
- DOM lookups now canonicalize attribute names, and no longer return
  the unmodified name if the lookup yields nothing.
2011-07-19 22:34:29 -04:00
Paul Beckingham
19cb6110bd Expressions
- Removed unnecessary enquoted blank strings.
2011-07-19 00:51:42 -04:00
Paul Beckingham
09d94a0712 Expressions
- Eliminated the . prefix for DOM references to the current task - it is
  unnatural to state ".due < today".
- Prioritized parsing dates ahead of integers, which were masking all
  dates.
2011-07-19 00:25:26 -04:00
Paul Beckingham
e564827be7 Expressions
- Added recognition of individial words to the tokenize method.
2011-07-18 23:35:35 -04:00
Paul Beckingham
ab6e230f10 Expressions
- Implemented Nibbler::getWord.
- Re-implemented Nibbler::getDOM.
- Modified DOM addressed for context-based attributes from "due" to ".due",
  the help disambiguate DOM references in expressions.  There is now a
  consistency:

      <id>.due         Task-specific
          .due         Contextual
    <uuid>.due         General

- Implemented associated unit tests.
2011-07-18 23:08:05 -04:00
Paul Beckingham
dd75c1af1e Expressions
- Attribute values are now run through the expression evaluator.  This
  is good.  The evaluator fails.  This is bad, but progress has been
  made.
2011-07-17 15:33:09 -04:00
Paul Beckingham
ddbf9d374e Expressions
- Reclassified attr (name:value) and attmod (name.mod:value) values
  as "exp", to be tokenized.
2011-07-17 14:25:49 -04:00
Paul Beckingham
137b00a14a Expressions
- Commented out troublesome "distance_from_command" code.
- Commented out DOM diagnostics, for now.
- Commented out TDB2 diagnostics, for now.
- Category "seq" arguments are now assigned type "exp".
- All type "exp" arguments are now tokenized.
2011-07-17 13:52:55 -04:00
Paul Beckingham
f0a9796683 Expressions
- Any "exp" arguments are given the "exp" type (_second) as well as
  "exp" category (_third).
2011-07-17 13:02:23 -04:00
Paul Beckingham
30b5c6c048 Expression
- Implemented automatic downgrade of arguments to 'word' in the
  context of modifications.
2011-07-17 12:45:59 -04:00
Paul Beckingham
e08d840ba1 Expressions
- Broke out expression handling into two distinct flavors: filter
  and expression.  Filters need lots of preparation and mapping,
  which includes implicit 'AND' operators, expansion of syntactic
  sugar like /pattern/ etc and evaluate to a Boolean.  Expressions
  are simpler wiht less preparation, and evaluate to a Variant.
2011-07-17 12:04:38 -04:00
Paul Beckingham
d66729adf3 Code Cleanup
- Assorted minor edits.
- Snapshot before E9 work.
2011-07-16 23:58:03 -04:00
Paul Beckingham
1bec1c0934 Typo
- Fixed typo in message (thanks to Bryce Harrington).
2011-07-16 18:05:41 -04:00
Paul Beckingham
7fbe124fe0 Unit Tests
- Added proper handling for when no command or filter is specified, and
  no rc.default.command exists.
- Improved wording on above error message.
- Fixed typo in previous commit (managed to check in code before the
  build completed, and ultimately failed).
- Now reports errors that occur during initialization at the same level
  of verbosity as during command execution.
2011-07-16 15:33:09 -04:00
Paul Beckingham
8aeef40b80 Unit Tests
- variant.t.cpp was reporting 6 tests but performing none.  That
  certainly doesn't help our pass rate.
2011-07-16 14:22:42 -04:00
Paul Beckingham
2135cb141d Task Validation
- Shifted test for priority values from Att.cpp to Task.cpp.
2011-07-16 14:22:12 -04:00
Paul Beckingham
1b5648c922 Calendar Shortcut
- Added 'cal' and 'calendar' symlinks to illustrate the supported
  argv[0] values.
2011-07-16 13:20:26 -04:00
Paul Beckingham
05a53778ea Helper Command
- Implemented _columns to simply list all supported columns, in a
  machine-readable format.
2011-07-16 13:18:06 -04:00
Paul Beckingham
27a04b29f5 Feature #800
- Added feature #800, adding a new command 'columns' that lists all the columns
  available for custom reports, and includes their formatting options (thanks
  to T. Charles Yun).
2011-07-16 13:08:23 -04:00
Paul Beckingham
3a5370ddf1 Filters
- Implemented Command::filter_shortcut to detect when a filter begins
  with "status:pending" and skip the loading/parsing of completed.data.
- Removed obsolete att.t.cpp tests.
- Removed diagnostics from TDB2::TDB2 that were causing a segfault.
  I suppose there is no std::cout available during global ctors?
2011-07-14 00:46:01 -04:00
Paul Beckingham
424dc50a36 Command - install
- Temporarily removed CmdInstall from the build.  This is deferred
  until 2.1 or so, when extensions are supported.
2011-07-14 00:04:07 -04:00
Paul Beckingham
8827f9c978 TDB2
- Implemented CmdAdd.cpp and CmdLog.cpp using TDB2.
- Implemented simple append writes in TDB2.
- Modified CmdImport to accept and parse JSON.
- Added more const-ness in DOM, Expression and Task, to allow TDB2::get_tasks
  to return a const vector ref, which is a Very Good Thing.
- Corrected usage for the export command.
- Implemented Task::urgency as a call to Task::urgency_c, which is a const
  overload to allow urgency calculations (without caching) for const Task
  objects.
- Removed obolete code from TDB.
- Added lots of diagnostic output for TDB2 - it's annoying, but will be
  gone soon.
- Added mention in CmdHelp of the new <filter> and <modifications>
  syntax elements.  Needs more.
- Added Command::filter overload which uses TDB2.  Not in use yet.
2011-07-13 23:53:57 -04:00
Paul Beckingham
523c4dfcca Code Cleanup
- Eliminated obsolete or unused methods.
2011-07-12 22:19:18 -04:00
Paul Beckingham
4d410972d4 Command Usage
- Enhanced CmdHelp by adding aliases.
- Corrected usage for CmdModify.
- Renamed CmdQuery --> CmdExport.
- Added an alias _query --> export.
2011-07-12 00:51:05 -04:00
Paul Beckingham
3ef8f3f31a AUTHORS
- Added Brendan O'Flaherty for his export-html.py contribution.
2011-07-12 00:32:40 -04:00
Paul Beckingham
5b4c46fe42 TDB2
- Began serious TDB2 development by adding TDB2::dump, which shows
  all the file-related data in debug mode.
2011-07-11 23:19:21 -04:00
Paul Beckingham
f059c27bf0 Feature #607
- Added feature #607, which allows modification of a task during annotation
  (thanks to Peter De Poorter).
2011-07-11 02:10:50 -04:00
Paul Beckingham
877d8efa8e Bug #744
- Fixed bug #744, which omitted new ID feedback for all but the first
  duplicated task (thanks to Uli Martens).
2011-07-11 02:03:17 -04:00
Paul Beckingham
2bf4276bda Unit Tests
- Renamed bug.485.x to bug.485.t to reflect that it is not only
  fixed, but relevant.
2011-07-11 01:55:56 -04:00
Paul Beckingham
4522877b43 Bug #683
- Fixed bug #683, in which the 'config' command sometimes edited comments
  instead of the proper line in .taskrc (thanks to Erlan Sergaziev).
2011-07-11 01:51:14 -04:00
Paul Beckingham
523173e27e Bug #403
- Fixed bug #403, which disambiguates certain commands involving numbers.
2011-07-11 01:11:48 -04:00
Paul Beckingham
6009507209 Enhancement
- When a command is encountered on the command line, followed by an
  ID or UUID, the distance (in arguments) between the command and
  the sequence is measured in terms of arguments that are not rc: or
  rc. overrides.  It cannot exceed 1.  This helps disambiguate
  commands like 'task list Fedora 13', because the '13' is more than
  one argument away from 'list', and is therefore not an ID.
2011-07-11 00:59:11 -04:00
Paul Beckingham
21ad7a3d3f Unit Tests - add.t
- Corrected typo in unit test results.
2011-07-11 00:26:28 -04:00
Paul Beckingham
ef61981041 Commands - modify
- Re-enabled the modify command.
- Re-implemented Arguments::inject_defaults to accomodate the idea
  of the default command, the modify command without the modify
  keyword, and the automatic info command.
2011-07-10 23:41:30 -04:00
Paul Beckingham
7f84fa0c80 Bug
- The arguments // and /// were being mis-identified as patterns.
2011-07-10 18:20:46 -04:00
Paul Beckingham
8e0296468e Unit Tests
- Improved args.5.t, which was attempting to stop tasks that were
  not started.
2011-07-10 18:04:49 -04:00
Paul Beckingham
d5849b0160 Aliases
- Allowed aliases to nest up to 10 levels.
2011-07-10 17:58:07 -04:00
Paul Beckingham
2d30275889 Push/Pull/Merge
- Re-enabled the commands.
2011-07-10 14:59:30 -04:00
Paul Beckingham
254bce5dc2 I18N
- Forgot to modify a string.
2011-07-10 13:21:15 -04:00
Paul Beckingham
d33de00eac I18N
- Localized more commands.
2011-07-10 13:19:41 -04:00
Paul Beckingham
44d835947b I18N
- Localized more commands.
2011-07-10 12:54:15 -04:00
Paul Beckingham
e5139780ea I18N
- Localized more commands.
2011-07-10 11:08:40 -04:00
Paul Beckingham
ba723db9d7 Helpers
- Implemented Task::setEnd.
- Updated all code to use Task::setEntry and Task::setEnd.
2011-07-10 11:07:00 -04:00
Paul Beckingham
ad55fa2d79 Verbosity
- Implemented new verbosity token 'new-id' which controls whether
  newly generated task IDs are reported.
2011-07-10 10:08:23 -04:00
Paul Beckingham
3456a24749 Documentation Update
- Brought the ChangeLog up to date with recent multiple bug closings.
2011-07-10 02:06:59 -04:00
Paul Beckingham
9b3f9ee4ff Feature #514
- Added feature #514, which allows duplication of tasks based on a generalized
  filter, rather than just IDs (thanks to Peter De Poorter).
2011-07-10 01:48:21 -04:00
Paul Beckingham
f0d2af2651 Filter Bugs
- A substitution arg is categorized as "subst", but was tested for
  "substitution".
- The Arguments::is_multipart method was triggering on '/', which is
  wrong, but I can't remember why I put it in there.  Hmmm.
- When extracting a write-filter, substitutions after the command
  were generating an error, whereas they should be ignored.
- Task::substitute was modifying data even when the patterns were not
  matching.  Yikes.
- Added unit tests for en-passant modification of all types during
  done, delete, start, stop.
2011-07-10 01:03:52 -04:00
Paul Beckingham
69e70889be Unit Tests
- Prevented the info command from running a GC first, which breaks
  certain unit tests.
- Modified delete.t to test annoation on delete.
2011-07-10 00:01:48 -04:00
Paul Beckingham
d087bdfd38 Enhancement
- Various commands now allow modification and annotation.
2011-07-09 23:45:31 -04:00
Paul Beckingham
b5f04a3ebc Code Cleanup
- Obsoleted Context::disallowModifications, because they are no longer
  disallowed.
2011-07-09 23:27:20 -04:00
Paul Beckingham
a16b8366cd TDB
- Integration TDB2 into the initialization process.  It begins...
2011-07-09 21:25:46 -04:00
Paul Beckingham
10b97fc967 Feature #340
- Added feature #340, which implements new color rules 'color.completed' and
  'color.deleted'.
2011-07-09 19:00:58 -04:00
Paul Beckingham
7986227ea2 Bug #691
- Fixed bug #691, which was a mis-reporting of file lock state even when file
  locking was turned off (thanks to Tom Duffy).
2011-07-09 18:30:27 -04:00
Paul Beckingham
63308441ec Documentation
- Added internal documentation on the use of categorized arguments
  in filters.
2011-07-09 18:08:54 -04:00
Paul Beckingham
3abb4d7dd6 I18N
- Completed localizing CmdLog.cpp.
2011-07-09 17:50:43 -04:00
Paul Beckingham
f483d1ed9d Unit Tests - arguments.t
- Removed two obsolete expression operators, % and ^.
2011-07-09 17:49:41 -04:00
Paul Beckingham
322824567f Unit Tests - args.1.t
- Added tests to verify that '<id> <command>' and '<command> <id>'
  both work as expected.
2011-07-09 17:48:14 -04:00
Paul Beckingham
9b2e61f9b3 Arguments
- Corrected mishandling of sequence in both read-only and write
  command filters.
2011-07-09 17:05:25 -04:00
Paul Beckingham
1cb4d19c3c Argument Parsing
- On task modification, all attributes are canonicalized.
2011-07-09 09:51:19 -04:00
Paul Beckingham
2b135ed3c2 Expressions
- Variants can now construct dates and duration from std::string.
2011-07-09 09:03:15 -04:00
Paul Beckingham
aea1c8fea6 Command - config
- Reenabled the config command with new argument processing.
2011-07-08 01:32:26 -04:00
Paul Beckingham
8731bf9ac6 Calendar
- If the program is renamed 'cal' or 'calendar', or symlinked to
  either 'cal' or 'calendar', then the calendar report is run.
2011-07-08 01:16:05 -04:00
Paul Beckingham
e92a7fdf7d Commands - color
- Reenabled the color command using new argument processing.
2011-07-07 01:35:37 -04:00
Paul Beckingham
2ce0b5a1ab closeEnough
- Implemented closeEnough, which does a truncated, caseless compare
  between two strings.  For example, "FoO" is cloneEnough to "food."
  to be a match.  Used to allow mixed case and abbreviated arguments.
2011-07-07 01:33:43 -04:00
Paul Beckingham
63e3f5711e Merge branch '2.0.0' of tasktools.org:task into 2.0.0 2011-07-06 22:53:32 -04:00
Paul Beckingham
01253f1cdf Error Handling
- Errors that occur during initialization no longer prevent the
  display of debug info.
2011-07-06 22:52:59 -04:00
Paul Beckingham
7a544489ae Command Line
- Added a method for extracting unstructured text from the command line.
2011-07-06 22:47:47 -04:00
Bryce Harrington
5e693b2530 Bug #799
- Applied documentation patch for #799, fixing a broken link in the man page.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-07-06 18:39:44 -04:00
Paul Beckingham
8ff3a1675d Duration
- Implemented operator+=, operator-=.
- Added unit tests.
2011-07-04 14:22:33 -04:00
Paul Beckingham
b70f4e8528 Variant
- Cleaned up some operator implementations.
- Added Date, Duration formatting.
2011-07-04 13:51:36 -04:00
Paul Beckingham
fc793e7b1d Duration
- Implemented missing operator<=, operator>=.
- Added corresponding unit tests.
2011-07-04 13:34:20 -04:00
Paul Beckingham
33bb6b6d85 Expressions
- Improved categorization by using the Triple to represent the three
  (raw/inferred/category) values to aid in extraction.
2011-07-04 11:58:55 -04:00
Paul Beckingham
2d4ee13a46 Urgency
- Broke out urgency into separate functions.
2011-07-04 00:28:44 -04:00
Paul Beckingham
42becb9e41 Expressions/Arguments
- Converted the arguments parsed from a pair (token/modified-category)
  to a triple (token/type/category)
2011-07-02 11:47:39 -04:00
Paul Beckingham
e1aea08f81 Unit Tests
- Fixed test that assumed old-style command usage.
- Corrected duration unit tests.
2011-07-02 10:09:37 -04:00
Paul Beckingham
32392b8650 Edit - reenabled
- Reenabled the edit command with the new filtering mechanism.
2011-07-02 09:59:50 -04:00
Paul Beckingham
f1b5999983 Bug - ColDescriptionf indent
- Fixed bug in description.default rendering that inserted the indentation
  twice.
2011-07-02 09:57:42 -04:00
Paul Beckingham
72fa53ad3d I18N
- Localized more files.
2011-07-01 22:55:46 -04:00
Paul Beckingham
59ccad5b62 I18N
- Localized more files.
2011-07-01 22:33:49 -04:00
Paul Beckingham
99d25bd0db Enhancement
- Implemented Record::get_duration as a helper.
2011-07-01 22:21:25 -04:00
Paul Beckingham
63f91c2f88 Enhancement
- Implemented Record::get_date to eliminated the need to obtain a date
  as a string, then convert to time_t, then instantiate a Date.
2011-07-01 22:13:34 -04:00
Paul Beckingham
7d5f4fdfc7 I18N
- Localized Task.cpp
2011-07-01 21:50:23 -04:00
Paul Beckingham
a9a4c1c692 I18N
- Localized more files.
2011-07-01 21:16:28 -04:00
Owen Clarke
3b2e93f1a0 Bug #772
- Implemented custom uuid function that doesn't suffer from the precision
  and cyclic lack of randomness of the previous implementation.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-07-01 15:34:41 -04:00
Ben Boeckel
9f2c5a6190 Bug #798
- Applied patches for bug #798 which allows out-of-source builds (thanks to
  Ben Boeckel).
- Added Ben to the AUTHORS file.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-07-01 09:21:23 -04:00
Owen Clarke
3af5194442 Bug #797
- Fixed bug #797 which corrects a build problem with 'srandom' (thanks to Owen
  Clarke).

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-07-01 09:04:52 -04:00
Paul Beckingham
fd484ee264 Feature
- The duration 'm' is now interpreted as 'months', not 'minutes'.
2011-06-30 18:35:54 -04:00
Paul Beckingham
829a26d70b I18N
- Localized projects and _projects commands.
2011-06-29 23:05:53 -04:00
Owen Clarke
f5e155e54d Bug 795
- Improved detection of uuid library, and the uuid_unparse_lower
  function.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-06-29 22:38:41 -04:00
Paul Beckingham
9ceae7c5c2 Expressions
- Eliminated % modulus operator - who cares?
- Found a potential problem with argv[0].
2011-06-28 00:47:28 -04:00
Paul Beckingham
3096364352 Expressions
- Implemented type-specific <, <=, >, <= for "priority".  Untested.
2011-06-28 00:35:15 -04:00
Paul Beckingham
2c621eaadc Unit Tests
- The dom.t tests were segfaulting because they used a blank Context
  with no arguments, and when the DOM referecne 'context.program' was
  queried, it failed because there was no Context::args[0].
2011-06-27 23:26:51 -04:00
Paul Beckingham
45a757832a Feature #559
- Added feature #559, which implements a new configuration variable,
  rc.exit.on.missing.db, which causes taskwarrior to exit if the
  rc.data.location is missing (thanks to Sander Marechal).
2011-06-27 23:23:28 -04:00
Owen Clarke
526fa07326 Bug #795
- Addressed lack of uuid_unparse_lower on Solaris.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-06-27 22:57:58 -04:00
Owen Clarke
2bc8dfbfe7 Bug #793
- Replaced timegm with equivalent code.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-06-27 22:49:37 -04:00
Owen Clarke
8fbce0288e Bug #794
- Corrected typo and missing ; for Solaris builds.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-06-27 22:40:45 -04:00
Owen Clarke
e4c173771f Bug #792
- Applied patch to allow Solaris to be recognized by cmake.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-06-27 21:59:38 -04:00
Paul Beckingham
8c6e5277ec Expressions
- Project and Recur attributes now match leftmost by default.
2011-06-27 00:40:56 -04:00
Paul Beckingham
43e72b8ac8 Footnotes
- Relocated 'N tasks' style message to footnotes.
2011-06-27 00:22:18 -04:00
Paul Beckingham
1813f67230 Clean Build
- Removed a warning for a clean build on CentOS.
2011-06-27 00:10:33 -04:00
Paul Beckingham
f5ea55031c Commands - add, log
- Made code more consistent between the two commands.
2011-06-26 23:58:17 -04:00
Paul Beckingham
32cbe7a049 Bug
- rc.default.due needs to be converted to an epoch before storage.
2011-06-26 23:45:17 -04:00
Paul Beckingham
2ac33089b1 Commands - delete
- The delete command is now working.
2011-06-26 23:36:48 -04:00
Paul Beckingham
877ecbc864 Commands - done
- The 'done' command now functional.
- Localized CmdDone.cpp.
2011-06-26 23:28:21 -04:00
Paul Beckingham
1b90adc1aa Bug
- Fixed 'limit:N' bug, whereby when a report specifies a limit, and
  the user overrides it, there are potentially two limit arguments,
  in which case the last one, not the first one is needed.
2011-06-26 15:19:14 -04:00
Paul Beckingham
37edd06027 I18N
- Localized more files.
2011-06-26 14:41:59 -04:00
Paul Beckingham
e83b468ade Bug - Seg fault
- Fixed seg fault caused when a custom report had no override labels.
2011-06-26 12:47:51 -04:00
Paul Beckingham
58a04b9813 Bug - DOM lookup for 'id' was not supported
- Removed DOM caching, which appears to be a problem.
- Added 'id' and 'uuid' to DOM::get, which were missing, and therefore
  caused all filters with sequences to fail.
- Modified CmdInfo to load all tasks, until TDB2 is here.
2011-06-26 12:45:48 -04:00
Paul Beckingham
41a6ff29c8 Build
- Fixed broken build on CentOS.
2011-06-26 11:34:45 -04:00
Paul Beckingham
a0f87499e8 Documentation Update
- Added missing contributor to AUTHORS.
- Added missing bug/feature fixes to ChangeLog.
2011-06-26 01:53:18 -04:00
Paul Beckingham
7faad5fb44 Command Line Defaults
- Implemented support for rc.default.command.
- Implemented support for assumed info command.
- Implemented Arguments::inject_defaults to insert default arguments
  at just the right location.
- Corrected CmdCustom handling of limit:page.
2011-06-26 01:21:11 -04:00
Paul Beckingham
91e5a5e02e Commands - info
- When no command is specified, assume 'info' command.
2011-06-26 00:43:18 -04:00
Paul Beckingham
c9cc43dc5f I18N
- Localized more files.
2011-06-25 23:32:40 -04:00
Paul Beckingham
42ead6b34d Report Filters
- Report filters are now properly loaded and injected into the argument
  list.
2011-06-25 21:56:57 -04:00
Paul Beckingham
b58438bdd4 Regexes
- Added regex support to substirutions.
- Fixed bug that prevented 1.9.4 from shipping with regexes.  If the
  description is "aXXaaXXa", and the substitution is /XX/.../ then the
  first substitutions changes the length of the string to "a...aaXXa"
  and therefore invalidates the index for the second match, and makes
  this change: "a...a...Xa".  The fix is to keep a running 'skew' count
  of the difference in 'from' and 'to' length, to adjust the match
  indexes.
- Moved the helper deltaSubstitutions function into the Task object,
  which makes more sense.
- Cleaned up output composition for CmdAdd.
- Eliminated #ifdef FEATURE_REGEX.  They are here to stay.
2011-06-25 16:41:17 -04:00
Paul Beckingham
622e9c5e1e Burndown
- Corrected label placement.
2011-06-25 14:50:39 -04:00
Paul Beckingham
20bb5bf648 I18N
- Localized more commands.
2011-06-25 13:14:47 -04:00
Paul Beckingham
6d4bf3dc75 I18N
- Localized 'ids', '_ids' and '_zshids' commands.
2011-06-25 12:01:12 -04:00
Paul Beckingham
5972272de2 I18N
- Missed a string in CmdAdd.
2011-06-25 11:54:47 -04:00
Paul Beckingham
b70fa61f34 Limits
- Implemented built-in support for limits.
2011-06-25 11:53:35 -04:00
Paul Beckingham
9603864924 Commands - add, log
- Implemented add and log commands using new infrastructure.
- Relaxed restriction about creating completed tasks with no dependencies.
- Localized CmdAdd.cpp CmdLog.cpp.
- Implemented Command::modify_task to apply command line arguments to a
  specified task.
- Implemented Command::apply_defaults to apply various initial values to
  a specified task, such as entry date.
2011-06-24 00:58:26 -04:00
Paul Beckingham
3c1c900b5b Columns
- Refactored column objects to contain a ::validate method, for the
  validation of incoming data.
- Context.columns is now a vector of one of each column object,
  indexed by attribute name, for validation purposes.
2011-06-24 00:39:28 -04:00
Paul Beckingham
a7d6b91ad3 Cleanup
- Renamed RegX to RX.  Got sick of the RegX name - looked too much like GenX.
2011-06-21 18:15:58 -04:00
Paul Beckingham
03dbf7f468 Regex
- Added regex support to expressions.
- Implmented configurable case sensitivity.
2011-06-21 18:07:12 -04:00
Paul Beckingham
8040ed5430 I18N
- More localization.
2011-06-21 18:06:27 -04:00
Paul Beckingham
b63835757f I18N
- Localized more files.
2011-06-21 18:05:17 -04:00
Paul Beckingham
393ebae8aa Cleanup
- Removed obsolete grammar.bnf file.
- doc/misc scripts relocated to screencast.git.
2011-06-21 18:02:08 -04:00
Paul Beckingham
5808e2073f DOM Caching
- Implemented DOM caching on name.  May need a 'clear' method later.
2011-06-21 02:02:53 -04:00
Paul Beckingham
b49523c06d Regex
- Implemented RegX class to maintain a separate compile, and match
  method, thereby allowing efficient re-use of the regex.  This is
  critical to Expression::eval, where an identical regex might be
  applied to every task.
- Obsoleted rx.{h,cpp}, which combined the compile and match steps
  into a single call, and is therefore not efficient when used in
  the context of filtering.
- Fixed some unit tests that weren't building.  Now they do.  They
  don't work of course (don't be silly) but that's a problem for
  another day.
- Modified all code that relies on rx.h to use RegX.h.
2011-06-21 01:43:57 -04:00
Paul Beckingham
aa8d872466 Expressions
- Implemented !~ operator.
- Hid debug output for now.
2011-06-19 23:50:05 -04:00
Paul Beckingham
1bf6c8a9fa Expressions
- DOM::get now returns the input name by default, rather than "", which
  was the cause of many filter elements not working.
- Modified Variant to have no private data, which means fewer copies of
  Variants and less code.
- Eliminated Variant::operator^ - not needed.
2011-06-19 18:15:09 -04:00
Paul Beckingham
7762ee2f9e Commands
- Promoted filtering code to the Command base class.
- Added filtering short-circuit.
2011-06-19 10:25:53 -04:00
Paul Beckingham
db17536266 Expressions
- Filter processing short-circuits if there is no filter.
- Variant code was not only incomplete, but very broken.  It should not have
  been used.  It still doesn't handle dates and durations.
- Converted all logical and relational Variant operators to return Boolean
  values.
- Stack size is now checked for every operator.
- All operators implemented (without any advanced special case handling) except
  %, ~ and !~.
- Added lazy DOM expansion at the last possible moment.
- Implemented Expression::create_variant to create appropriate Variant instances
  based on categorized and inferred type.
- Removed Variant math functions.  No point.
- Debug code left in place for now.
2011-06-19 09:49:43 -04:00
Paul Beckingham
c57f880be7 Expressions
- Simplified ::eval.
- Added standard operand handling.
- Added type information to the value_stack.
2011-06-17 23:53:26 -04:00
Paul Beckingham
c77c6f172f Expressions
- Many operators implemented
- DOM::get partially implemented
2011-06-17 01:00:03 -04:00
Paul Beckingham
4fca40fc69 Expressions
- Added Expression::eval short-circuit.
- Added int/number exlclusions for Nibbler::getDOM.
- Added Variant::boolean for exatracting filter results.
2011-06-16 20:30:48 -04:00
Paul Beckingham
6a48d86f2c L10N
- Localized all column objects, some commands.
2011-06-16 20:28:46 -04:00
Paul Beckingham
c7bfba103e I18N
- Localized some more.
2011-06-16 00:42:03 -04:00
Paul Beckingham
f971fcd110 Code Cleanup
- Obsoleted Filter.{h,cpp}.
- Obsoleted Sequence.{h,cpp}.
- Eliminated Context::autoFilter.
- Stubbed Expression::eval.
2011-06-15 23:45:50 -04:00
Paul Beckingham
6b85669812 Build
- Fixed a broken build.
2011-06-15 07:22:08 -04:00
Paul Beckingham
c23c374b17 Duration
- Implemented operator- for us by the Variant.
2011-06-14 21:29:17 -04:00
Paul Beckingham
6242c4a8ae Bug #788
- Fixed bug #788, which reported regex and readline versions, even though they
  are not used.
2011-06-14 21:27:28 -04:00
Paul Beckingham
8f6bf9ff45 I18N
- Localized a few more files.
2011-06-14 21:02:38 -04:00
Paul Beckingham
e0abee7f9f Expressions
- Command line arguments are now handled a little differently.  Each
  argument is subjected to further splitting, to break up expressions
  early in the process, prior to categorization.
- Patterns are now treated as quoted string, where the quote character
  is /.
2011-06-13 23:06:54 -04:00
Paul Beckingham
087cf7e5ed Feature #479
- Added filtering to the calendar command.
2011-06-13 23:03:50 -04:00
Paul Beckingham
ded55c360b Export - query
- Output from the query command is now optionally surrounded by [ ... ]
  to make this a syntactically correct JSON document.  This is off by
  default.
- Updated documents.
2011-06-13 18:11:44 -04:00
Paul Beckingham
69fc2c3be8 View
- Modified layout algorithm to not attempt to distribute negative
  overage.
- Modified wrapText to enforce a minimum wrap width of 1.
2011-06-13 00:57:04 -04:00
Paul Beckingham
5d2528bff6 Command: tip
- Removed (stubbed) 'tip' command from core.  Will be external, if
  and when it is developed.
2011-06-13 00:49:37 -04:00
Paul Beckingham
d6670ba198 Expressions
- Reordered operator table so that longer operators match first, thus
  disambiguating between ! and !=.
- Eliminated Expression::expand_expression.
- Modified Nibbler to know what a DOM reference looks like.
- Removed alpha equivalent operators (lt, le, gt, ge, not, eq, ne) because
  these are common in descriptions (French: le, ne).
- Modified Arguments and Nibbler unit tests.
2011-06-13 00:45:06 -04:00
Paul Beckingham
a749f83da3 Parsing
- Nibbler learned how to parse formtted dates.  Date now uses Nibbler.
- Added Nibbler unit tests.
2011-06-12 13:59:25 -04:00
Paul Beckingham
236738c708 Date Processing
- Dates now support 'j' and 'J' julian day format.
2011-06-12 13:23:13 -04:00
Paul Beckingham
c8d9a2a268 Expressions
- Support and documentation for rc.patterns, which enables/disables
  support for /pattern/ command line arguments.
- Support and documentation for rc.expressions, which enables/disables
  support for command line expressions.
- Now canonicalizes attribute names.
- Now canonicalizes modifier names.
- New colorization (temporary) that colors all Arguments::dump output
  green when processed.
- New distinction between 'old' and 'new' style command lines.  Old style
  is "pro:A +foo pri.not:M" with implicit "and" operators.  New style
  includes operators but does not include "+foo" and "/foo/".
- Many tokens are converted directly to primitive types (int, number,
  string) when no further processing is required.
- Restored CmdShow to functionality, and linearized the list of supported
  configuration variables, for easier insertion.
- Modified arguments.t.cpp unit tests.
2011-06-12 09:17:50 -04:00
Paul Beckingham
94fa671522 Expressions
- Arguments::categorize is now functioning as designed.
2011-06-11 17:12:11 -04:00
Paul Beckingham
a9b942e913 Expressions
- Corrected interpretation of integers outside the location of a
  sequence as a word.
- Corrected interpretation of uuids outside the location of a
  sequence as a word.
2011-06-11 16:08:38 -04:00
Paul Beckingham
62d2dd316b Build
- Fixed broken build on CentOS.
2011-06-11 15:32:33 -04:00
Paul Beckingham
56bc5cf755 Code Cleanup
- Removed the last uses of 'foreach'.  What remains is only code that
  is being obsoleted, and therefore there is no need to clean that up.
- The definition of 'foreach' in util.h must remain until last.
2011-06-11 15:15:47 -04:00
Paul Beckingham
76b30d8d10 L10N
- More file conversions.
2011-06-11 14:57:11 -04:00
Paul Beckingham
63e6c08fdd Expressions
- Re-enabled read-only commands that were broken because expressions
  were not implemented.  Currently they don't work, but the mechanism
  is in place.
2011-06-11 14:30:19 -04:00
Paul Beckingham
ad75ba49a4 Expressions
- Broke up the parsing process into smaller steps to allow second pass
  parsing when "exp" tokens are expanded.
2011-06-11 13:44:11 -04:00
Paul Beckingham
8f20efc739 Parsing
- Nibbler now understands parsing from a list of tokens, with getOneOf.
2011-06-11 11:13:56 -04:00
Paul Beckingham
a5feb6ef83 Parsing
- Implemented Nibbler::getDigit to retrieve a single numeric digit.
- Implemented Nibbler::getISODate.
2011-06-11 08:12:05 -04:00
Paul Beckingham
ffcc2a49d8 Duration
- Converted Duration::valid to a static method, to match Date.
2011-06-10 18:36:10 -04:00
Paul Beckingham
74d9eac588 L10N
- Localized API.cpp.
2011-06-10 18:35:23 -04:00
Paul Beckingham
f8d9338102 Expressions
- Added list of non-word characters to assist is_attr.
2011-06-10 00:17:52 -04:00
Paul Beckingham
2ab24fa08b Expressions
- Fixed some compiler warnings.
- Added DOM detection of primitives: int, double, string.
- Began implementation of DOM task access.
- Implemented support for .startswith, .endswith, .word and .noword.
- Removed obsolete subst.t.cpp.
2011-06-09 22:19:10 -04:00
Paul Beckingham
199bb85d88 Expressions
- Improved strictness of attr and attmod detection, although it needs
  more.
- Added unit tests arguments.t.cpp, to test the detection methods.
2011-06-08 00:16:19 -04:00
Paul Beckingham
390ffb65f9 Bug #785
- Fixed bug #785, which fixes a broken build on Solaris (thanks to Owen Clarke).
2011-06-07 22:51:16 -04:00
Paul Beckingham
90f6f537fe Bug #783
+ Fixed bug #783, which fixes completed and deleted tasks still showing as
  active (thanks to Adam Wolk).
2011-06-07 01:21:46 -04:00
Paul Beckingham
7c910e46be Code Cleanup
- Just found out about std::vector::back, after all these years.
2011-06-07 00:48:00 -04:00
Paul Beckingham
d83b2d5e36 Expressions
- Implemented an operator lookup table with type, associativity and
  precedence.
- Implemented Expression::to_postfix that generates a postfix
  expression list using a Dijkstra Shunt.
2011-06-07 00:25:21 -04:00
Paul Beckingham
ed8454c202 Expressions
- Implemented sequence --> infix converter.
- Added new Lexer code.
- Added Lexer unit tests.
2011-06-06 01:46:11 -04:00
Paul Beckingham
86dcec8aea Expressions
- Began Expression::toInfix to upgrade old-style filters to infix
  algebraic filters.
- Added operator support to Arguments::categorize.
- Modified CmdCustom.cpp as a read-only command guinea-pig for the
  new argument processing.
2011-06-05 13:47:52 -04:00
Paul Beckingham
68a749ee16 Argument Parsing
- Implemented Arguments::extract_read_only_filter to isolate the
  arguments that pertain to read-only command filters
- Implemented Arguments::extract_write_filter to isolate the arguments
  that pertain to write command filters.
- Implemented Arguments::extract_modifications to isolate the arguments
  that pertain to write command modifications.
- Created stubbed Expression object.
- Began integration of Expression and Arguments into commands/CmdCustom.
2011-06-05 02:09:25 -04:00
Paul Beckingham
61e549c80c Code Cleanup
- Removed many more uses of the 'foreach' macro.
2011-06-04 23:02:18 -04:00
Paul Beckingham
f9c1820740 Argument Parsing
- Added proper handling for sequences, in that they must be contiguous.
- Added placeholder code for default command, and automatic info report.
- Eliminated Context::parse.
- Eliminated Context::run Timer, because when it goes out of scope, it
  adds timing messages to the deubg output, which at the end of Context::run
  has already been displayed.  In addition, the Context::dispatch timer
  is about 0.2 milliseconds shorter, so the two are redundant.
2011-06-04 18:42:33 -04:00
Paul Beckingham
19aa78a922 Argument Parsing
- Fixed bug in Nibbler::getUUID.
- Implemented Arguments::is_id.
- Implemented Arguments::is_uuid.
- Implemented Arguments::is_tag.
- Implemented Arguments::extract_id.
- Implemented Arguments::extract_uuid.
- Implemented Arguments::extract_tag.
- Implemented Arguments::valid_modifier.
- Implemented nibbler.t.cpp unit tests.
2011-06-04 17:02:19 -04:00
Paul Beckingham
354d66a5ac Parsing
- Implemented Nibbler::getUUID to assist parsing efforts.
2011-06-04 16:15:44 -04:00
Paul Beckingham
58a677ffb5 Argument Parsing
- Eliminated stored arg_overrides and file_override in Context.
- Removed Filter, Subst, Task, Sequence from Context.
- Remove shadow file support.  Hallelujah.
- Disabled/commented out most commands, ready for the big transition
  to the new parsing style.
- Obsoleted Subst.{h,cpp}.
2011-06-04 15:11:34 -04:00
Paul Beckingham
b4c1e47ab4 Argument Parsing
- Added argument categorization, and a colorful diagnostic output
  in debug mode.
- Localized all argument parsing in Arguments object, while still
  allowing specific commands to choose which elements are parsed
  from the command line.
2011-06-04 14:30:45 -04:00
Paul Beckingham
644d027a87 Argument Parsing
- Obsoleted Command::exectute  'commandLine' argument.  It is worse
  than unnecessary, it is an uncategorized raw argument string, which
  is only really useful for the 'execute' command, which itself now
  calls Arguments::combine to reconstruct the command line string.
2011-06-04 12:33:58 -04:00
Paul Beckingham
c2e1757fb6 AUTHORS
- Added Dirk, and his role.
2011-06-03 08:13:27 -04:00
Paul Beckingham
5732833da2 Build
- Converted more atoi to strtol calls.
2011-06-02 23:20:15 -04:00
Paul Beckingham
223c7b3c56 Build
- Fixed case-sensitive include file name.
2011-06-02 23:16:52 -04:00
Paul Beckingham
617e0ebe54 Build
- Migrated atoi to strtol, and added missing include.
2011-06-02 23:14:34 -04:00
Paul Beckingham
460a2c5617 Build
- Missing include.
2011-06-02 23:03:08 -04:00
Paul Beckingham
e200b2a502 L10N
- Localized Hooks.cpp
2011-06-02 22:26:19 -04:00
Paul Beckingham
fa36931064 Bug
- Fixed bug that showed the 'due' date, under the heading 'until' date, in the
  info report (thanks to Michael McCann).
2011-06-02 21:39:50 -04:00
Paul Beckingham
e19f087931 Refactor
- Prepared CmdCustom for new command line processing code.
2011-06-02 00:47:05 -04:00
Paul Beckingham
a3912d9123 Refactoring
- Obsoleted Cmd object.
- Removed Context::dispatch, renamed dispatch2 --> dispatch.
- Commented out import and custom report functionality that depends
  on Cmd.  This should be about as broken as taskwarrior gets.  It's
  all uphill from here.
2011-06-02 00:17:16 -04:00
Paul Beckingham
bcbff8d99b Bug
- Fixed bug so that columns of type "string*" calculate ideal size
  by taking into account \n characters in the data, rather than simply
  the string length.
2011-05-31 00:46:56 -04:00
Paul Beckingham
5d9fb1fff9 Help
- Modified command usage help output.
2011-05-31 00:43:26 -04:00
Paul Beckingham
067f5920bb Documentation
- Updated ChangeLog, etc with recent issue completion.
2011-05-31 00:41:29 -04:00
Paul Beckingham
56ccd16730 Helpers
- Implemented longestLine, which finds the longest line in a string.
2011-05-30 21:22:26 -04:00
Paul Beckingham
6f17e80461 Refactoring
- Combined the remains of command.cpp and report.cpp into helpers.cpp.
2011-05-30 16:01:36 -04:00
Paul Beckingham
a2da93b681 Commands - modify
- Migrated handleModify to CmdModify.
2011-05-30 15:48:20 -04:00
Paul Beckingham
510ce650a6 Commands - merge
- Migrated handleMerge to CmdMerge.
2011-05-30 14:45:39 -04:00
Paul Beckingham
af90a14cb5 Commands - push
- Migrated handlePush to CmdPush.
2011-05-30 14:37:39 -04:00
Paul Beckingham
99fae1f9a8 Command - pull
- Migrated handlePull to CmdPull.
2011-05-30 14:30:14 -04:00
Paul Beckingham
abd51e81a3 Commands - delete
- Migrated handleDelete to CmdDelete.
2011-05-30 14:00:34 -04:00
Paul Beckingham
908fbd8ca4 Commands - done
- Migrated handleDone to CmdDone.
2011-05-30 13:53:57 -04:00
Paul Beckingham
75a24f5113 Commands - timesheet
- Migrated handleReportTimesheet to CmdTimesheet.
2011-05-30 13:46:08 -04:00
Paul Beckingham
2fb743992f Command - undo
- Migrated handleUndo to CmdUndo.
2011-05-30 13:38:45 -04:00
Paul Beckingham
4c47748dd7 Commands - calendar
- Migrated handleReportCalendar to CmdCalendar.
2011-05-30 13:30:18 -04:00
Paul Beckingham
a7d5641d00 Commands - import
- Migrated handleImport to CmdImport.
2011-05-30 13:18:10 -04:00
Paul Beckingham
4603bdb509 Commands - _query
- Migrated handleQuery to CmdQuery.
2011-05-30 13:00:51 -04:00
Paul Beckingham
75e651626d Commands - summary
- Migrated handleReportSummary to CmdSummary.
2011-05-30 12:49:45 -04:00
Paul Beckingham
61c2e2b439 Commands - duplicate
- Migrated handleDuplicate to CmdDuplicate.
2011-05-30 12:35:56 -04:00
Paul Beckingham
73e9f52793 Feature #655
- New command that lists reports and their descriptions.
2011-05-30 12:25:50 -04:00
Paul Beckingham
37b48c56d5 Commands - export
- The default export format is now JSON, with an alias that maps 'export'
  to '_query'.
2011-05-30 11:42:35 -04:00
Paul Beckingham
6cf7644e02 Commands - config
- Migrated config and _config to CmdConfig.
2011-05-30 11:18:59 -04:00
Paul Beckingham
0f5a4434ff Bug #511
- Fixed bug #511, which caused display problem on Cygwin when colored output
  used the full width of the terminal.  The 'avoidlastcolumn' configuration
  variable forces taskwarrior to never use the last column.
2011-05-30 10:21:50 -04:00
Paul Beckingham
a1dee148b4 Build
- Added missing includes.
2011-05-30 01:24:25 -04:00
Paul Beckingham
9e3c6f5bc1 Commands - stop
- Migrated handleStop to CmdStop.
2011-05-30 01:19:11 -04:00
Paul Beckingham
86ab605bd4 Commands - start
- Migrated handleStart to CmdStart.
2011-05-30 01:11:34 -04:00
Paul Beckingham
0429949de5 Commands - color
- Migrated handleColor to CmdColor.
2011-05-30 00:59:15 -04:00
Paul Beckingham
d021bb8188 Commands - denotate
- Migrated handleDenotate to CmdDenotate.
2011-05-30 00:48:43 -04:00
Paul Beckingham
f775341fd5 Commands - annotate
- Migrated handleAnnotate to CmdAnnotate.
2011-05-30 00:24:48 -04:00
Paul Beckingham
c8eb5df1b2 Commands - log
- Migrated handleLog to CmdLog.
2011-05-29 21:43:37 -04:00
Paul Beckingham
cb613c0691 Commands - add
- Migrated handleAdd to CmdAdd.
2011-05-29 19:17:16 -04:00
Paul Beckingham
b0cbc7f757 Commands - burndown.monthly, burndown.weekly, burndown.daily
- Migrated burndown charts to CmdBurndown.
2011-05-29 01:20:58 -04:00
Paul Beckingham
398380d390 Build
- Need to link to libtask.a twice.  Nice.
2011-05-29 00:10:06 -04:00
Paul Beckingham
0260aff441 Build
- Enabled compiler warnings, which were off.  Yikes.
- Fixed all compiler warnings on OSX.
2011-05-28 23:59:43 -04:00
Paul Beckingham
36e24fa1fb Build
- More missing includes.
2011-05-28 18:18:48 -04:00
Paul Beckingham
94318a6925 Build
- More missing include files.
2011-05-28 18:15:56 -04:00
Paul Beckingham
08c4d4bdfe Build
- Fixed more case-sensitivity problems, and missing include files.
2011-05-28 17:53:58 -04:00
Paul Beckingham
17f3717871 Bug
- Fixed typo in CMakeLists.txt file that worked on the OSX case-insensitive
  file system.
- Man page correction.
2011-05-28 17:46:45 -04:00
Paul Beckingham
82eebc93bf Commands - history.monthly, history.annual, ghistory.monthly, ghistory.annual
- Migrated all history reports into CmdHistory objects.
2011-05-28 17:34:30 -04:00
Paul Beckingham
b9246e04b2 Command - append
- Migrated handleAppend to CmdAppend.
2011-05-28 16:41:21 -04:00
Paul Beckingham
ef65617258 Command - prepend
- Migrated handlePrepend to CmdPrepend.
2011-05-28 16:40:39 -04:00
Paul Beckingham
920e1c6c86 Commands - projects, _projects
- Migraged handleProjects and handleCompletionProjects to CmdProjects.
2011-05-28 16:18:53 -04:00
Paul Beckingham
a7bc09d487 Command - count
- Migrated handleCount to CmdCount.
2011-05-28 16:05:07 -04:00
Paul Beckingham
27d6e7cc81 Commands - ids, _ids, _zshids
- Migrated handleIds, handleCompletionIds, handleZshCompletionIds
  to CmdIDs.
2011-05-28 15:40:18 -04:00
Paul Beckingham
56e4c8172b Commands - stats
- Migrated handleReportStats to CmdStatistics.
2011-05-28 15:11:32 -04:00
Paul Beckingham
33d13ddb1d Commands - _commands, _zshcommands
- Migrated handleCompletionCommand and handleZshCompletionCommands
  to CmdCommands.
2011-05-28 14:57:48 -04:00
Paul Beckingham
330b148ca9 Commands - _tags
- Migrated handleCompletionTags to CmdTags.
2011-05-28 14:34:06 -04:00
Paul Beckingham
b075f1252c Commands - shell
- Migrated handleShell to CmdShell.
- Note there is a segfault bug that will probably go away by itself when
  Context::parse is obsoleted.
2011-05-28 14:22:38 -04:00
Paul Beckingham
4857269d12 Commands - help
- Help command now displays helper functions after the regular commands.
2011-05-28 14:11:04 -04:00
Paul Beckingham
bd93126f4e Commands - _urgency
- Migrated _urgency to CmdUrgency.
2011-05-28 14:07:21 -04:00
Paul Beckingham
9af1c71daf Commands - edit
- Migrated edit.cpp to CmdEdit.
2011-05-28 13:38:44 -04:00
Paul Beckingham
ed97fcc108 Commands - diag
- Migrated diag.cpp to CmdDiagnostics.
2011-05-28 13:15:19 -04:00
Paul Beckingham
0ce198ab8c Commands - info
- Migrated 'info' command to CmdInfo.
- Renamed 'info' command to 'information'.
2011-05-28 12:55:45 -04:00
Paul Beckingham
306f10b420 Command Line Parsing
- Implemented Arguments::extract_command to locate the command
  keyword in an argument list.
- Implemented Arguments::extract_sequence to locate and remove an ID
  sequence from an argument list.
- Added unit test for extract_sequence.
- Stubbed all Argument::extract_<object> methods.
- Simplified code in (soon to be obsolete) Sequence.cpp.
2011-05-28 12:09:25 -04:00
Paul Beckingham
8f85b0e194 Utils - combine
- Implemented combine, which takes two integer vectors and combines
  them resulting in a single vector contianing the unique values of
  both.
2011-05-28 09:49:22 -04:00
Paul Beckingham
8fabffe18c Code Cleanup
- Eliminated '#include "x"' by changing all to '#include <x>'.
2011-05-28 00:19:59 -04:00
Paul Beckingham
f67706c28e L10N
- Added '#define L10N' marker to all source files that are localized.
2011-05-28 00:02:04 -04:00
Paul Beckingham
d51bd3f445 Refactoring
- Moved argument handling out of Context, into Arguments.
2011-05-27 23:20:17 -04:00
Paul Beckingham
3de1275afe l10n
- Localized CmdShow.cpp.
2011-05-26 22:20:35 -04:00
Paul Beckingham
0caea22f08 Extensions
- The extensions directory is now created, if needed.
2011-05-26 22:01:36 -04:00
Paul Beckingham
32e7af4610 i18n
- Added several overloaded positional string formatters.  May need
  more.
2011-05-26 21:56:23 -04:00
Paul Beckingham
5e71003558 Utils
- 'verify' is a utility intended to make sure that all the i18n strings
  defined in src/en-US.h (and any other languages) are all used.  In other
  words it detects unused strings, which can presumably be removed.
2011-05-25 18:05:44 -04:00
Paul Beckingham
02065c3cdc i18n
- Localized a few strings, for fun.
2011-05-25 01:13:19 -04:00
Paul Beckingham
62203a45f8 Commands
- Migrated handleShow to CmdShow.
2011-05-25 00:38:21 -04:00
Paul Beckingham
54d98a6b2d Commands
- Migrated the _version command from handleCompletionVersion to
  CmdVersion.
2011-05-24 20:57:24 -04:00
Paul Beckingham
fc77e04b54 Commands
- Migrated handleVersion to CmdVersion.
2011-05-24 20:43:50 -04:00
Paul Beckingham
d892a0cbd2 Code Cleanup
- Fixed comments, compilation warnings.
- Decomposed Context::initialize into several, single-purpose methods.
- Replaced Context::initialize with Context::initialize2.
2011-05-24 19:37:03 -04:00
Paul Beckingham
a20a4da412 Code Cleanup
- Eliminated custom.cpp by implementing CmdCustom.cpp.
2011-05-24 19:31:47 -04:00
Paul Beckingham
bedc28f517 Commands
- Eliminated the Command::implements method.
- Implemented CmdCustom to handle all custom reports.
- Implemented CmdTags.
2011-05-24 19:29:47 -04:00
Paul Beckingham
31e865e823 Documentation
- Corrected typo (thanks to T. Charles Yun).
2011-05-24 19:21:25 -04:00
Paul Beckingham
7e55c0c786 Aliases
- Implemented the first part of enhanced aliases.
2011-05-23 23:46:00 -04:00
Paul Beckingham
f1635c3eff Code Cleanup
- Removed obsolete Rectangle code.
2011-05-23 23:24:43 -04:00
Paul Beckingham
8fa18d0da2 Bug #761
- Fixed bug #761, in which the 'prepend' and 'append' commands failed to
  generate an error when no text was provided (thanks to Aikido Guy).
2011-05-23 23:16:01 -04:00
Paul Beckingham
3f58e5a2ee Code Cleanup
- Removed unused Tree code.
2011-05-23 22:29:24 -04:00
Paul Beckingham
8e4a757200 Commands
- Rewrote Command::factory to construct all commands, indexed by
  primary command keyword.
2011-05-23 22:12:40 -04:00
Paul Beckingham
f53d509930 Code Reorganization
- Added the ability for a command to specify it's own pirmary keyword.
2011-05-23 20:23:53 -04:00
Paul Beckingham
f8b44b68d7 View
- Fixed problem with incorrect Color vector addressing.
- Modified ViewText to not underline empty column headers.
- Implemented ViewText::set method to set only color.
2011-05-23 20:16:37 -04:00
Paul Beckingham
f0f3e55cc6 Text Handling
- Implemented nontrivial (), which detemines whether a string contains
  any non-space characters.  Used to detect strings with no content.
2011-05-23 20:08:33 -04:00
Paul Beckingham
f669b5f56f Unit Tests
- Added JSON samples to test the parser.
2011-05-22 14:41:40 -04:00
Paul Beckingham
df1920d75c JSON
- Completed JSON parser with the addition of syntax error messages.
2011-05-21 15:06:42 -04:00
Paul Beckingham
409fa216b8 Color
- Corrected some cases where rc.color was not obeyed.
2011-05-21 11:29:34 -04:00
Paul Beckingham
df652d2ec7 Unit Tests
- Added unit tests to verify that appending or prepending nothing
  generates an error.
2011-05-21 10:35:46 -04:00
Paul Beckingham
bb24701f36 Unit Tests
- Added the first few JSON unit tests.
2011-05-20 01:17:46 -04:00
Paul Beckingham
690fa6e206 JSON
- Replaced old Tree-based parser with a faster, leaner parser.
  Currently lacking good error handling and a large test suite.
- Integrated new parser into Task object, for encode/decode.
- Replicated same basic unit tests.  Needs more.
- Fixed bug in handleShell that failed to call the new Context::initialize2.
- Removed debugging code from CmdInstall.
- Implemented format() that does not require width and precision args.
2011-05-20 00:18:36 -04:00
Paul Beckingham
05b3fa0bb6 Text Processing
- Implemented splitq, which can handle quoted and oddly-quoted string
  splits.
2011-05-16 00:22:14 -04:00
Paul Beckingham
0308ee953a Build
- Added missing include.
2011-05-15 23:07:12 -04:00
Paul Beckingham
bc756637da Commands
- Implemented CmdHelp object that replaces the report.cpp longUsage
  function, and builds the output dynamically from other Command
  objects.  This is also why the help text right now is very short,
  as only a few commands are migrated.
- Obsoleted longUsage function.
- Updated task.1 man page with 'execute' command details.
- Modified command.lua sample to include command usage.
- Removed "help" from old Context::dispatch, which means "help" is
  the first migrated command.
- Added usage and description to all Cmd* objects.
- Implemented Command::usage and Command::description as base class
  methods that simply return data that is specified by the derived
  classes.
2011-05-15 01:14:13 -04:00
Paul Beckingham
afc97d566c Commands
- New 'exec' command that runs external programs, implemented by
  CmdExec.
- Restructured code so that only Commands implements ::read_only
  and ::displays_id methods, while derived objects simply set flags.
- Corrected column alignment in summary report.
2011-05-15 00:18:24 -04:00
Paul Beckingham
52599dca63 Unit Tests
- Fixed tests that assumed no color.
2011-05-14 16:02:35 -04:00
Paul Beckingham
902ed48243 Commands
- Implemented the ability to iterate over installed Command objects,
  to augment the '_commands' command.
- Renamed verbosity tokens, to de-pluralize them.
2011-05-14 15:45:52 -04:00
Paul Beckingham
14bea5e1b4 Verbose
- The 'verbose' configuration variable now accepts a specific list of items to
  be verbose about.  See taskrc(5).
2011-05-14 15:38:03 -04:00
Paul Beckingham
557440db0c Commands
- Implemented stubbed Context::initialize2.
- Implemented combined command line.
- Migrated some code from Context::initialize to ::initialize2.
- Integrated ::initialize2 into the startup sequence.
- Implemented Context::dispatch2.
- Integrated ::dispatch2 into the run sequence.
- Implemented Context::updateXtermTitle.
- Added debug messages to new Command objects.
- Implemented CmdLogo, which implements the _logo command, for fun.
- Removed unnecessary base class overrides from Cmd* objects.
2011-05-14 12:18:39 -04:00
Fumihito YOSHIDA
02c2023dc4 i18n
- Added tips.ja-JA thanks to Fumihito Yoshida.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-05-14 09:59:05 -04:00
Paul Beckingham
bb04a58bdc Unit Tests
- Corrected use of rc.fontunderline with the new Views.
- Added new sample todo.sh import data, thanks to Daniel Wilcox.
- Added rc.defaultwidth to various tests.
- Modified tests to accomodate new next report.
- Corrected regex in rc.override.t.
2011-05-13 23:55:01 -04:00
Paul Beckingham
73f72c54c1 Bug
- Fixed bug that required the '%YAML' prologue in a YAML import.
2011-05-13 20:23:32 -04:00
Paul Beckingham
1d10370341 Bug
- Fixed bug that caused dependencies to be sorted by UUID, although
  they are shown as IDs.
- Updated unit test to accomodate new comma-less formatting of
  dependencies.
2011-05-13 18:05:26 -04:00
Paul Beckingham
4f8c503a04 View
- Implemented new string formats: left_fixed and right_fixed, which
  do not word-wrap.  This is used for the history report.
2011-05-13 18:04:49 -04:00
Paul Beckingham
291818c33d i18n
- Added function utf8_text_length which calculates the length of
  text in characters, not bytes, and excludes color control codes.
2011-05-13 18:02:20 -04:00
Paul Beckingham
46b799a5b7 Bug
- The ColumnDepends object was failing to map uuid --> id and so
  rendered no data for the blocked report.
- Code used the term 'blocked' when it should have used the term
  'blocking'.
2011-05-13 17:59:01 -04:00
Paul Beckingham
3d69f70d66 Bug
- Lack of Task default constructor, copy constructor and operator=
  implementation details caused tasks stored in an STL container to
  lose their cached urgency value.
- Info report now specifically formats urgency values, whereas the
  default formatting adds justification spacing.
2011-05-13 17:54:08 -04:00
Paul Beckingham
6fb3bc5b03 View
- Integrated ViewTask and ViewText completely.
- Obsoleted Table.{h,cpp}, Grid.{h,cpp}, grid.t.cpp
- Fixed ViewTask rendering bug that caused the full width to be used every time.
2011-05-13 01:10:30 -04:00
Paul Beckingham
c8c7e02bc8 View
- Converted projects to use TextView.
2011-05-12 00:43:15 -04:00
Paul Beckingham
e5555b579d View
- Converted undo to use TextView.
2011-05-12 00:34:34 -04:00
Paul Beckingham
9e3e40c3a9 View
- Converted info report to ViewText.
- Fixed bug in history report.
- Removed rc.blanklines from Config.cpp defaults.
2011-05-12 00:19:56 -04:00
Paul Beckingham
c1b4f34a70 Sorting
- Added missing custom sorting for due dates.
2011-05-11 22:21:43 -04:00
Paul Beckingham
5fa77a36de Verbose
- Implemented rc.verbose=on|off|list...
- Migrated rc.blanklines to a verbosity token.
- Updated documentation.
2011-05-11 21:49:31 -04:00
Paul Beckingham
adc8605b06 Credit
- Added Jonathan Hankins, as thanks for the help diagnosing a Cygwin
  problem.
2011-05-11 21:34:35 -04:00
Paul Beckingham
ec7d9ed765 View
- Converted history reports to use ViewText.
- Fixed unit test.
2011-05-11 00:20:35 -04:00
Paul Beckingham
fcb711d673 View
- Converted 'help' and 'stats' reports to use ViewText.
- Modified Column.cpp to omit column headers if blank.
2011-05-10 23:46:47 -04:00
Paul Beckingham
1a833af2a4 View
- Broke out View into ViewTask and ViewText, where the former uses an
  external std::vector <Task> as storage, thus eliminating the additional
  copy, and the latter that duplicates data and color into 2D vectors
  for rendering non-task data.
2011-05-10 22:49:20 -04:00
Paul Beckingham
ac60ee8d33 Code Cleanup
- Removed unnecessary include files.
2011-05-09 20:27:33 -04:00
Paul Beckingham
6464a2bca5 Color
- Implemented Color::strip which can remove the color codes from a
  string.
2011-05-09 20:24:16 -04:00
Paul Beckingham
93cfbf8dd2 Error Messages
- Improved error messages with specific field names rather than types.
2011-05-09 01:05:21 -04:00
Paul Beckingham
e22a07156f Reports
- Made the minimal report more minimal by using the description.truncated
  format.
2011-05-09 01:04:47 -04:00
Paul Beckingham
b4fba5b08d Next Report
- Removed all traces of the old next report.
- Removed rc.next support.
2011-05-08 19:33:05 -04:00
Paul Beckingham
5da435e70d Unit Tests
- Corrected several tests with respect to the new custom report columns
  and sort fields.
2011-05-08 18:10:03 -04:00
Paul Beckingham
868a7a2249 Reports
- Migrated all reports to use the new columns and sort fields.
2011-05-08 17:48:48 -04:00
Paul Beckingham
04033911c3 Unit Tests
- Modified several unit tests to accomodate new column names.
2011-05-08 17:14:28 -04:00
Paul Beckingham
0d9d01324e View
- Stubbed new render method for generic string grids.
2011-05-08 17:13:55 -04:00
Paul Beckingham
590273d4e8 Code Reorganization
- Changed the ::measure and ::render methods from pure virtual to
  virtual.
- Fixed bug where recur.indicator used the length of the indicator
  instead of the indicator.
- Implemented ColString.{h,cpp} to support generic Views based on
  strings, not tasks.
- Implemented newly virtual Column:: methods.
2011-05-08 17:12:05 -04:00
Paul Beckingham
00125c19d1 Unit Test
- Reworded new error message to more closely match an old error message,
  modified unit test accordingly.
2011-05-08 16:28:36 -04:00
Paul Beckingham
949e702c98 Bug
- ColDescription::measure did not correctly account for annotation size.
- The macro 'max' was used with expensive arguments, which get evaluated
  twice.
2011-05-08 15:15:48 -04:00
Paul Beckingham
001769997d Bug
- The entry.age column did not modify the column label of 'Added' to
  be 'Age'.
2011-05-08 15:14:42 -04:00
Paul Beckingham
f05fedfc7a Urgency
- Set initial urgency value to zero.
2011-05-08 11:04:57 -04:00
Paul Beckingham
041bcfdf21 Custom Reports
- Integrated new View in place of Table for all custom reports.
- Implemented legacy field mapping for columns and sort fields.
- Implemented rc.indent.report.
- Implemented rc.row.padding.
- Implemented rc.column.padding.
- Implemented rc.color.label.
- Modified default rc.indent.annotation from 1 to 2.
- Implemented urgency value caching.
- Implemented View truncation by line and row.
- Columns now know which report thy belong to, so they can use the
  rc.report.<report>.dateformat override.
- Assorted bugs remain.
2011-05-08 09:29:55 -04:00
Paul Beckingham
67a43d6099 Color
- Added 'inverse' swatch to the color command output.
2011-05-07 14:55:30 -04:00
Paul Beckingham
0231a6c412 Documentation
- Documented the 'inverse' color attribute.
2011-05-07 10:24:29 -04:00
Paul Beckingham
9c53810d3e Color - Inverse
- Added support for the 'inverse' color attribute.  Documentation
  still needs to be updated.  Thanks to David Patrick.
2011-05-07 10:19:55 -04:00
Christopher J. Pilkington
06cab5a1ca Bug #771
- Applied patch for Bug #771, which looks for libuuid if uuid_unparse_lower is
  not located (thanks to Christopher J. Pilkington).

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-05-06 22:56:34 -04:00
Christopher J. Pilkington
62334201d1 Bug #770
- Applied patch for Bug #770, which fixed a broken build (thanks to Christopher
  J. Pilkington).

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-05-06 22:51:36 -04:00
Paul Beckingham
250c98f03c Build
- Missing include file (thanks to Uli Martens).
2011-05-06 07:48:09 -04:00
Paul Beckingham
ebeb935975 Documentation update
- Caught up ChangeLog with missing entries for fixed bugs.
2011-05-06 00:11:57 -04:00
Paul Beckingham
7c38641263 Bug Fix #763
- Fixed bug #763, so that modifications to tasks are considered 'write'
  commands, and therefore update shadow files (thanks to Aikido Guy).
2011-05-05 23:51:36 -04:00
Paul Beckingham
58f2b9789e Bug #762
- Fixed bug #762, so that modifications to task are considered 'write' commands,
  and there update shadow files (thanks to Aikido Guy).
2011-05-05 23:49:51 -04:00
Paul Beckingham
4584da8895 Sorting
- Sorting implemented using a non-relocatable task list, a stable
  sort, and type-specific comparisons.
2011-05-05 22:37:54 -04:00
Paul Beckingham
9268e552d8 View
- Integrated new longestWord helper function.
2011-05-05 19:55:00 -04:00
Paul Beckingham
1d0ad3838b Text Handling
- Implemented longestWord, a UTF8-aware helper for word-wrapping.
2011-05-05 19:45:09 -04:00
Paul Beckingham
28b0960015 View
- Implemented 'description.default', 'description.count', and
  'description.oneline'.
- New 'indent.annotation' for the 'description.default' field format.
2011-05-04 23:15:17 -04:00
Paul Beckingham
f37a250894 View
- Implemented description.desc
2011-05-03 00:58:06 -04:00
Paul Beckingham
d0cbf43478 View
- Implemented due.countdown.
- Fixed formatting bug in description.truncated.
- Fixed bug in start.indicator.
2011-05-02 23:43:41 -04:00
Paul Beckingham
f9ab8f2a1c View
- Implemented start.active.
2011-05-02 22:53:47 -04:00
Paul Beckingham
27752bd510 Date
- Implemented Date::dayOfYear which yields a number, 1 to 366.
2011-05-02 22:13:15 -04:00
Paul Beckingham
b4be5991b8 View
- Implemented urgency.default.
2011-05-02 21:44:42 -04:00
Johannes Schlatow
7e1f8591f6 exec
- moved function that executes external commands from Transport.cpp
  to util.cpp since it is not dedicated to push/pull/merge anymore
2011-05-02 16:25:40 +02:00
Johannes Schlatow
398371d324 Bug #732
- changed the parsing of ssh:// URIs, paths are now absolute by default
2011-05-02 16:18:40 +02:00
Paul Beckingham
df8496edae View
- Implemented ColDate, ColDue, ColEntry, ColEnd, ColStart, ColUntil,
  ColWait.
- Implemented formats: default, iso, julian, epoch.
2011-05-02 01:50:48 -04:00
Paul Beckingham
8f00665268 Unit Tests
- Added extra format test for the Julian date format.
2011-05-02 01:50:15 -04:00
Paul Beckingham
5e851c4c98 View
- Implemented status.default, status.short.
2011-05-01 12:17:19 -04:00
Paul Beckingham
1506ee67f4 Code Cleanup
- Implemented Context::color to hide the color override details,
  then integrated it.
2011-05-01 11:53:13 -04:00
Paul Beckingham
b0ff1ff55b I18N
- Renamed text.cpp/characters to utf8.cpp/utf8_length, which is more
  appropriate.
2011-05-01 11:10:32 -04:00
Paul Beckingham
0b3281d01d View
- Implemented recur.default and recur.indicator.
2011-05-01 00:42:57 -04:00
Paul Beckingham
a033300a7d View
- Implemented depends.default, depends.indicator, depends.count
  field formats.
2011-04-30 18:31:15 -04:00
Paul Beckingham
ac69c02876 View
- Implemented (a fraction of) description columns.
2011-04-30 18:03:18 -04:00
Paul Beckingham
6974e48290 Configuration
- Added the new dependency.indicator, which works the same way the
  other indicator configuration variables do.
- Added documentation to taskrc.5.in.
2011-04-30 17:54:59 -04:00
Paul Beckingham
8a87db6163 View
- Implemented tags.default, tags.indicator, tags.count.
2011-04-30 00:06:07 -04:00
Paul Beckingham
ed7fc44685 View
- Implemented uuid.default and uuid.short.
2011-04-29 23:23:13 -04:00
Paul Beckingham
9849b4082d View
- Removed debugging code.
- Implemented intra, extra and alternate colorization.
- Column::factory now parses <type>.<style> and properly initializes
  the column objects.
2011-04-29 20:06:21 -04:00
Paul Beckingham
a722064d80 I18N
- Reviewed UTF8-safety.
2011-04-29 19:41:18 -04:00
Paul Beckingham
9fd819e3a0 Columns
- Implemented ColPriority, with 'default' and 'long' formats.
- Implemented ColProject 'parent' format.
2011-04-29 19:33:54 -04:00
Paul Beckingham
dd1be996a6 Commands
- Added logo command, for fun.
- Renamed commands to CmdXxxxx for clarity and commonality with columns.
2011-04-29 19:31:29 -04:00
Paul Beckingham
8bc7d5932b Code Cleanup
- Thread object removed - not needed.
2011-04-29 19:28:48 -04:00
Paul Beckingham
683a269991 View
- Implemented View::lines.
2011-04-29 01:57:53 -04:00
Paul Beckingham
4dca2a5a2d View
- Documented the new layout algorithm.
- Used Nibbler for decomposing fields into word chunks.
- Implemented variable intra padding.
- Implemented variable left margin.
- Implemented variable extra padding.
- Implemented colored headers.
- Implemented wrappable headers.
- Eliminated need to specify fixed column size.
2011-04-29 01:45:10 -04:00
Paul Beckingham
66afc7c057 Enhancement
- Modified leftJustify and rightJustify to handle UTF8.
2011-04-29 01:10:58 -04:00
Paul Beckingham
937f2d9c8f Enhancement
- Added integer versions of leftJustify, rightJustify.
2011-04-29 01:01:08 -04:00
Paul Beckingham
d0a91acf28 Enhancement
- Implemented leftJustify, rightJustify for composing justified strings.
2011-04-29 00:49:05 -04:00
Paul Beckingham
9b85cb47ce Documentation
- Corrected color precedence order that differed between taskrc.5.in
  and task.1.in (thanks to Stefan Keel).
2011-04-27 19:20:31 -04:00
Paul Beckingham
d6f2c5d04f Themes
- Two additional solarized theme files, solarized-dark-256.theme and
  solarized-light-256.theme (thanks to Stefan Keel).
2011-04-27 02:02:34 -04:00
Paul Beckingham
9f672d0b06 View
- Implemented column sizing algorithm.
2011-04-27 01:50:32 -04:00
Paul Beckingham
29649bdf07 View
- Code reorganization.  Much can be moved to default behavior in the
  base class.
2011-04-27 00:22:56 -04:00
Paul Beckingham
63c84129f2 Hooks
- Removed last vestiges of old hook triggers.
2011-04-26 23:09:40 -04:00
Paul Beckingham
c5f71051ad View
- Added unit tests - blank for now.
- Added stubbed ColProject, just so that ColID is not the only column.
- Renamed files for clarity and namespace reasons.
2011-04-26 22:46:04 -04:00
Paul Beckingham
74d799acea View
- First pass at the interface, structure and algorithm used by the
  new View object that will ultimately obsolete Table, Grid and Cell.
2011-04-26 18:19:57 -04:00
Paul Beckingham
120562a7e9 Enhancement
- Began detailed implementation of commands and columns objects.
2011-04-24 19:11:56 -04:00
Paul Beckingham
1c23b28514 Interaction
- Modified 'You have higher priority tasks' to 'You have more urgent tasks',
  which is more accurate (thanks to Eric Fluger).
2011-04-24 18:27:38 -04:00
Paul Beckingham
01df9e189e Extensions
- Removed the redundant README file, which is now better presented in
  rfc5-hooks.txt.
- Modified all the sample Lua to be rfc5 compliant.
2011-04-24 16:25:11 -04:00
Paul Beckingham
638fcd8ca0 Commands
- Modified command object design.
2011-04-24 12:41:38 -04:00
Paul Beckingham
a7c3858729 Extensions
- Clarification in the extensions document.
2011-04-24 12:40:50 -04:00
Paul Beckingham
86ef048cb0 Bug #605
+ Fixed bug #605, which gave misleading project completion percentages under
  certain circumstances (thanks to Steve Rader).
2011-04-24 11:36:43 -04:00
Paul Beckingham
5f8b3cf989 Code Cleanup
- Further attemps at removing 'foreach'.
2011-04-23 23:06:00 -04:00
Paul Beckingham
10e3f306dd Export
- Added export-html.pl.
- Added error handling to export scripts.
2011-04-23 21:38:01 -04:00
Paul Beckingham
8a7f1e03c7 Unit Tests
- Added variant tests.
2011-04-23 21:15:40 -04:00
Paul Beckingham
f183201f6f Export
- Added the ability to include the ID in _query command results.
2011-04-23 21:13:57 -04:00
Paul Beckingham
0471c17f12 Build System
- Added new src/commands and src/columns intermediate libs.
- Began implementation of the first Command object.
- Began implementation of the first Column object.
- TDB2, Variant updates.
2011-04-23 16:41:37 -04:00
Paul Beckingham
f1fa315342 Themes
- Added new gray theme to the same .taskrc.
2011-04-22 17:58:57 -04:00
Paul Beckingham
75fd846399 Unit Tests
- Fixed hook tests that broke when 'hooks' was renamed to 'extensions'.
2011-04-22 00:48:29 -04:00
Paul Beckingham
d7cbd46653 Bug #741
- Fixed Bug #741, which miscounted columns widths when a table header used
  unicode characters (thanks to Tomas Cech).
2011-04-22 00:39:30 -04:00
Paul Beckingham
83320a3e07 Feature #679
+ Added feature #679, which makes color rules match project names in a left-
  most fashion, like filters (thanks to ch077179).
2011-04-22 00:29:30 -04:00
Paul Beckingham
4f4a04738f Bug #745
- Fixed Bug #745, which allows projects names with spaces, provided the values
  are quoted (thanks to Duane Waddle).
- Added unit test.
2011-04-22 00:04:24 -04:00
Paul Beckingham
76f11cb73c Extensions
- Missed a 'hooks' -> 'extensions' rename.
2011-04-21 23:52:06 -04:00
Paul Beckingham
d08e1dab76 Extensions
- Documented the 'extensions' master control switch.
2011-04-21 23:28:34 -04:00
Paul Beckingham
07faa663b4 Documentation
- Typo
2011-04-20 23:34:54 -04:00
Duane Waddle
a675c35876 Doucmentation
- Man page patch from Duane Waddle applied.  This documents the
  reportable 'entry' field.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-04-19 19:01:29 -04:00
Paul Beckingham
f049ab3432 Feature #523, #657, #658, #659
- Added 'status' as a reportable column (thanks to Peter De Poorter
  and Bryce Harrington).
- Closed features pertaining to the 'task ids ... | task ...' (thanks
  to Bryce Harrington and Eric Fluger).
2011-04-18 01:41:08 -04:00
Paul Beckingham
60a5d271f4 Extensions
- Created scripts/extensions/README to describe samples.
- Created sample extension scripts of each type.
2011-04-18 00:51:34 -04:00
Paul Beckingham
bac4610580 Hooks
- Removed obsolete field hook.
2011-04-17 21:54:06 -04:00
Paul Beckingham
48eb4757f8 Hooks
- Removed all obsolete hooks, except from commands.cpp, which is being
  worked on in parallel.
- Implemented new on-launch and on-exit unit tests.
2011-04-17 21:09:58 -04:00
Paul Beckingham
2f4efb28d6 Lua
- Created new scripts/extensions directory.
- Added README for extensions.
- Started priority.lua extension.
- Implemented api_task_get and api_task_set DOM accessors.
- Removed more obsolete API.
2011-04-17 00:48:05 -04:00
Paul Beckingham
9d0037bc78 DOM
- Added more variables.
- Removed unnecessary API.
2011-04-17 00:14:35 -04:00
Paul Beckingham
0240ffa1d2 Hooks
- Removed obsolete hook unit tests.
2011-04-16 15:19:07 -04:00
Paul Beckingham
87c285e6b2 File/Directory Enhancement
- Migrated enhanced code out of taskd.
2011-04-16 00:44:07 -04:00
Paul Beckingham
e9273cd6c3 TDB2
- Implemented most of the layered I/O for the pending.data file.
- Needs File::xxxxx support that doesn't exist yet.
2011-04-15 01:29:22 -04:00
Paul Beckingham
b72173bb0e DOM
- Stubbed shell of DOM, with limited support for 'system....'.
- Added unit tests.
2011-04-15 01:28:06 -04:00
Paul Beckingham
17d1e59e29 Hooks
- Eliminated the concept of list hooks.
- Eliminated unnecessary API functions.
2011-04-13 23:20:55 -04:00
Paul Beckingham
dbb556bce9 Unit Tests
- Eliminated obsolete unit tests pertaining to Hooks that are no
  longer needed.
2011-04-13 23:19:30 -04:00
Paul Beckingham
6e1e709564 Code Cleanup
- Removed obsolete Keymap object.
2011-04-13 23:18:01 -04:00
Paul Beckingham
49fcb7a104 Merge branch '2.0.0' of tasktools.org:task into 2.0.0 2011-04-13 00:22:03 -04:00
Paul Beckingham
b8a19b52e0 Typo 2011-04-13 00:21:57 -04:00
Paul Beckingham
9b3f565e90 Enhancements
- Added stubbed DOM code.
- Added stubbed TDB2 code.
2011-04-12 23:47:38 -04:00
Paul Beckingham
2ce54f10f8 Lua
- Eliminated unimplemented API calls, which are all going to be replaced
  by DOM get/set.
- Documented new 2.x hooks.
2011-04-12 23:01:49 -04:00
Paul Beckingham
139e55fca3 Code Cleanup
- Eliminated "itask" interactive mode code.
2011-04-12 20:47:41 -04:00
Johannes Schlatow
4c7c8cf195 Bug #732
* fixed misleading documentation and messages on
  merge/pull/push URIs (thanks to Thomas Cech).
2011-04-11 14:31:31 +02:00
Paul Beckingham
4245d83812 Code Cleanup
- Eliminated obsolete Lisp code.
2011-04-10 20:41:38 -04:00
Paul Beckingham
f1525df48a Urgency
- Corrected unit tests for urgency.
- Modified default 'blocked' coefficient to be negative, to compensate
  for the bug fix for #707 that inverted the test.
2011-04-10 20:40:29 -04:00
Paul Beckingham
19582dd139 Holidays
- Renamed all holiday files to include a locale, rather than just
  a country code.
- Enhanced update-holidays.pl add-on script to support regions,
  provide better error handling, error on missing Perl module,
  warnings on unavailable data, and help text.
- Updated documentation accordingly.
2011-04-10 15:37:30 -04:00
Paul Beckingham
40b2258589 Bug 707
- urgency.blocked.coefficient logic was inverted.
2011-04-08 00:42:00 -04:00
Paul Beckingham
14b184089d Code Cleanup
- Fixed broken build on tt.
2011-04-07 18:27:03 -04:00
Paul Beckingham
039bf15df1 Holiday Update Script
- Script to download current data from holidata.net.
2011-04-07 18:26:30 -04:00
Paul Beckingham
e163ef71e8 Holiday Data
- Added Czech Republic holiday files (thanks to Tomas Cech).
2011-04-06 07:34:16 -04:00
Paul Beckingham
d9b2ac0f33 Variant
- Salvaged Variant code from older project, for use in expression
  evaluation.
2011-04-05 23:47:09 -04:00
Paul Beckingham
7961ca136f Code Cleanup
- Removed FEATURE_TDB_OPT conditional compilation.
2011-04-03 19:44:58 -04:00
Paul Beckingham
2ad3d0d449 Code Cleanup
- Removed FEATURE_URL conditional compilation.
2011-04-03 19:43:22 -04:00
Paul Beckingham
77ba7946f5 Code Cleanup
- Removed conditional compilation of the shell, controlled by FEATURE_SHELL.
2011-04-03 19:41:19 -04:00
Paul Beckingham
e4b0c6e7c0 Configuration
- Forgot the NEWS file.
2011-04-03 18:29:37 -04:00
Paul Beckingham
585151f184 Configuration
- The old 'curses' configuration variable is now replaced by 'detection', and
  has the same meaning - whether or not to auto-detect terminal size.
2011-04-03 18:24:50 -04:00
Paul Beckingham
df41ea9988 Code Cleanup
- The FEATURE_NCURSES_COLS define was not used anywhere.  Removed.
2011-04-03 17:37:43 -04:00
Paul Beckingham
fb2fd79a52 Diagnostics
- Removed unnecessary "Alias foo -> bar" debug message.
2011-04-02 21:56:42 -04:00
Paul Beckingham
44e6b27560 Bug
- Wrong include.
2011-04-01 23:32:54 -04:00
Paul Beckingham
b63e92b540 Code Cleanup
- Converted atoi to strtol.
- Added include, which is causing tinderbox fail.
2011-04-01 23:30:12 -04:00
Paul Beckingham
38576ba08a Unit Tests
- Because taskDifferences now uses ucFirst on attribute names, three
  tests fail.
2011-03-30 00:35:06 -04:00
Paul Beckingham
628fbd6b64 Enhancement
- Broke out the "taskDiff" family of functions into feedback.cpp,
  which is where all subsequent user feedback text composition will
  occur.
2011-03-29 23:40:19 -04:00
Paul Beckingham
036aee2a8d Enhancement
- Began the new Context::initialize2, which will offer a different
  rabbit-hole to go down.  This method will instantiate Command
  objects and the new Parser, rather than the monolithic alternative
  dispatch method and command.cpp/report.cpp/custom.cpp files.
2011-03-29 23:38:16 -04:00
Paul Beckingham
a994baae75 Tips
- Added great tip from Michelle Crane.
2011-03-29 23:19:54 -04:00
Paul Beckingham
976e480903 i18n
- Added en-US.h, which will be a header file full of string defines.
- Added logic to i18n.h to include en-US.h based on cmake command
  line argument (cmake ... -DPACKAGE_LANGUAGE=1).
- Added one sample string.
2011-03-29 23:18:02 -04:00
Paul Beckingham
ed3b4d587c Enhancements
- Added src/columns/*.{h,cpp}
- Added src/commands/*.{h,cpp}
2011-03-29 23:16:05 -04:00
Paul Beckingham
84fb46f233 Code Cleanup
- Eliminated 'Sensor' code and tests, which would only have been used
  for the interactive version.
- Eliminated obsolete ui code.
2011-03-27 12:36:25 -04:00
Paul Beckingham
c502f0216a i18n
- Eliminated StringTable.{h,cpp}.
- Eliminated strings.<locale> files.  This is not the way to do it.
2011-03-27 02:06:09 -04:00
Paul Beckingham
3cccdf722e Bug #723
- Fixed Bug #723, which displayed a misleading message when the output was
  truncated to a page.
2011-03-26 10:59:02 -04:00
Paul Beckingham
a1d47e9509 Bug #703 - /foo/bar/g doesn't operate globally on annotations
- Fixed bug #703 that was failing to reset a moving pattern cursor between
  annotations.
- Added unit tests to  verify this functionality.
2011-03-26 09:50:26 -04:00
Cory Donnelly
437bb95f01 Standardized journal messages
- Made journal messages more consistent with one another
2011-03-23 17:28:55 -04:00
Alexei Romanoff
4dfa6d3648 Documentation
- Corrected typos concerning BY holidays.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-03-21 18:53:35 -04:00
Paul Beckingham
7c9ebec557 Feature
- Enhanced diagnostics command.
2011-03-20 17:12:47 -04:00
Paul Beckingham
81e6af427f Bug
- Corrected terminal size calculation for "limit:page", which was
  assuming 2 blank lines, instead of 1.
2011-03-20 11:20:16 -04:00
Alexei Romanoff
9a80216e89 Feature #714
- Added feature #714, including Belarus holidays (thanks to Alexei Romanoff).

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-03-19 16:44:24 -04:00
Alexei Romanoff
7f9938d4f1 Bug #713
- Fixed Bug #713, which fixes typos in the holidays-UK.rc file (thanks to
  Alexei Romanoff).

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-03-19 16:35:17 -04:00
Paul Beckingham
bd0dbe3af6 Unit Tests, Documentation
- Added 'ids' command to task.1.in.
- Added unit test for 'ids' command.
- Reformatted 'help' output for the ~ modifier.
2011-03-19 01:18:56 -04:00
Dan White
4b71fa73f8 Feature #710
- Added feature #710, which adds an attribute modifier prefix to return the
  complement of a filtered set (thanks to Dan White).
- Added missing description to the 'help' command.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-03-19 00:56:45 -04:00
Federico Hernandez
17f97651a3 AUTHORS
- added Timm Reitinger to the AUTHORS file for providing the N900
  package
2011-03-17 00:22:29 +01:00
Cory Donnelly
994404d6e1 Merge branch '2.0.0' of tasktools.org:task into 2.0.0 2011-03-16 08:40:02 -04:00
Cory Donnelly
45e0ef20da Bug #708
- Project completion report didn't account for multiple changes made
  at once. For example, task 1-3 done, task 4-6 del, task 7-9 pro:new
2011-03-16 08:37:29 -04:00
Paul Beckingham
9470e9af17 New 'ids' command, and stdin reading
- New 'ids' command that returns a filtered set of task ID numbers, instead
  of the actual tasks.  For advanced pipeline use.
- Now supplements the command line with data read from standard input, which
  allows commands like:  echo 'add Pay the bills' | task
2011-03-16 00:53:29 -04:00
Cory Donnelly
dd8bceecf7 Bug #706
- Journal was recording deletions twice, once as a deletion and
  again as a modification to ""
2011-03-14 22:55:29 -04:00
Cory Donnelly
d3447165c8 Bug #704
- Polished journal messages
2011-03-14 21:35:51 -04:00
Cory Donnelly
18f82c1207 Logic error in util.cpp
- taskDiff() was returning true whenever beforeOnly.size() or
  afterOnly.size() were nonzero, which made no sense and was
  clearly a typo
2011-03-14 19:44:43 -04:00
Johannes Schlatow
6d6a5492bb Feature #700
- added tab-completion of built-in tags
2011-03-13 01:32:44 +01:00
Johannes Schlatow
236b017d57 Merge/Uri support
- fixed autopush bug where e.g. 'ssh://' was omitted
  (Uri::parse() was wrongly modifying the data member)
2011-03-11 00:56:37 +01:00
Paul Beckingham
96d406960d Enhancement
- Corrected sorting to use std::stable_sort instead of std::sort, which is not
  guaranteed stable (thanks to Stefan Hacker).
2011-03-09 12:45:45 -05:00
Paul Beckingham
954db75b37 Packaging
- Updated the packaging scripts for OS X to accomodate the new files.
2011-03-05 08:38:38 -05:00
Paul Beckingham
589b84982f Documentation Update
- Removed 1.9.x references.
- Cleared out NEWS file.
2011-03-03 22:34:26 -05:00
Federico Hernandez
4de854a3c3 CMake
- zapped autoh*ll from build system. No more pain.
2011-03-04 03:58:55 +01:00
Federico Hernandez
dbdba4c59e Bumped version number to 2.0.0 2011-03-04 03:24:06 +01:00
Federico Hernandez
5eff2f4176 Added SHA1 of tagged release commit 2011-03-04 03:07:54 +01:00
Federico Hernandez
2d99b80672 Release date for 1.9.4 2011-03-04 00:07:56 +01:00
Federico Hernandez
949d71a81b CMake
- a few words on the cmake config variables special to task
2011-03-03 23:35:30 +01:00
Federico Hernandez
df1fc5a6da Release
- bumped version number to 1.9.4
2011-03-03 23:09:48 +01:00
Federico Hernandez
7745733001 Man page
- fixed bug in taskrc.5 that caused 3 variables not to be displayed
  (thanks to Michelle L Crane)
2011-03-01 19:07:43 +01:00
Federico Hernandez
10ef12b008 CMake
- cmake variables for the different installation paths
  (thanks to Pietro Cerutti)
2011-03-01 18:59:40 +01:00
Paul Beckingham
19ef6a672d Unit Tests
- Fixed assumption that "task add ...; sleep 1; task list" will never yield
  results with "2 secs" as a task age.
2011-02-27 12:05:10 -05:00
Federico Hernandez
6c110a641d Bumped version number to 1.9.4.beta1 2011-02-18 00:11:30 +01:00
Paul Beckingham
2ec296088a Documentation
- Minor doc edits.
2011-02-17 12:36:37 -05:00
Federico Hernandez
14cc9c6873 Typo 2011-02-17 00:51:44 +01:00
Federico Hernandez
05c157e449 More deprecated autotools stuff 2011-02-17 00:48:55 +01:00
Federico Hernandez
73fd2cefca Build system
- missing source code files for deprecated autotools
- exclude test cmakefile in packaged source
2011-02-16 23:39:45 +01:00
Federico Hernandez
f2f590e193 Unit test
- disabled unit test that requires faketime
  which is not available on Mac OS X
2011-02-16 23:38:08 +01:00
Federico Hernandez
a840b6505b Unit tests
- bug 605 is postponed
2011-02-14 20:13:15 +01:00
Paul Beckingham
467f0a477e Themes
- Added new dark-gray-256 color theme.
2011-02-14 11:49:17 -05:00
Paul Beckingham
e046b37287 Grammar
- Almost complete grammar, with some 2.x enhancements.
2011-02-14 11:13:24 -05:00
Cory Donnelly
9efe1d45cc Bug #677
- _query incorrectly displayed 'No tasks specified.' message when 'No matches'
message is more appropriate
2011-02-13 21:12:30 -05:00
Cory Donnelly
2ed73c0700 Bug #605
- Added unit test
2011-02-13 18:31:23 -05:00
Cory Donnelly
d845dca3af Feature #608
- Unit test added (will need to be updated when journal text is finalized)
2011-02-13 18:14:15 -05:00
Cory Donnelly
930e695ea4 Bug #628
- Unit test had noncritical spelling mistake (yes, I realize I have problems)
2011-02-13 18:09:05 -05:00
Johannes Schlatow
079bcff893 Unit test
* was using the default data.location
2011-02-13 01:51:51 +01:00
Johannes Schlatow
ea57b560d9 Bug
* fixed bug in merge command where the first match of a uuid in
  pending.data was on the depends attribute
2011-02-13 01:51:34 +01:00
Federico Hernandez
436c152fde Regex
- Removed reference to regex in NEWS file
2011-02-13 00:06:46 +01:00
Paul Beckingham
f93273ef23 Related to bug #649
- You can no longer directly complete or delete parent recurring tasks.
2011-02-12 15:30:05 -05:00
Paul Beckingham
6608cbf287 Code Cleanup
- Removed tabs.
2011-02-12 15:14:00 -05:00
Paul Beckingham
a65fe591b8 Bug #634
- Fixed bug #634, so that 'undo' obeys the 'confirmation' setting (thanks to
  Steve Rader).
2011-02-12 15:08:57 -05:00
Paul Beckingham
afb89f0add Themes
- Added the three new burndown chart colors to all themes, with
  variations.
2011-02-12 14:41:44 -05:00
Paul Beckingham
2ac5c2f897 Bug #628
- Fixed bug #628, where dateformats containing spaces were not properly
  parsed (thanks to Steve Rader).
2011-02-12 14:16:06 -05:00
Paul Beckingham
2e9bc3194b Bug #653
- Fixed bug #653, which caused undo information to be recorded when no changes
  were made by the 'edit' command.
2011-02-12 02:29:22 -05:00
Paul Beckingham
691931adf9 Bug #485
- Fixed bug #485, which caused filters of 'recur' to fail for partial matches
  (thanks to T. Charles Yun).
2011-02-12 01:39:25 -05:00
Paul Beckingham
b2828b9702 Bug #656
- Fixed bug that caused multiple recurring child tasks to be generated
  under certain circumstances.
- Removed text.t.cpp tests that are not in task.
- Added Bryce Harrington to AUTHORS file.
- Corrected tests that were broken by the fix.
2011-02-12 01:00:33 -05:00
Paul Beckingham
776a56fa67 Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2011-02-11 11:13:07 -05:00
Paul Beckingham
bc5cdfecb4 Regex
- Removed references to rc.regex in the man pages.
2011-02-11 11:12:43 -05:00
Cory Donnelly
d80e9aa7c5 Bug #674
- Unit test created based on Peter Lewis's bug report
2011-02-11 09:12:46 -05:00
Paul Beckingham
1e2b551795 AUTHORS
- Added Pete Lewis for finding a big nasty bug.
2011-02-10 08:25:47 -05:00
Paul Beckingham
ea374c05df Bug
- Edit wasn't properly parsing annotation entry dates since a recent
  commit changed the length of the pattern used to find annotations.
2011-02-09 00:17:27 -05:00
Paul Beckingham
3a7e620ce6 Unit Tests
- Inherited improved text.cpp unit tests from taskd.
2011-02-08 23:55:57 -05:00
Paul Beckingham
589c918f79 Documentation
- Clarified the need for quoting substitutions containing spaces (thanks
  to Eric Fluger).
2011-02-08 23:55:07 -05:00
Federico Hernandez
1ea513ad75 AUTHORS file
- Patrick R McDonald submitted a detailed bug report and backtrace
  through Fedora's bugzilla. Worth a mention in the AUTHORS file,
  although the bug is already fixed.
2011-02-05 17:48:10 +01:00
Paul Beckingham
036d77e08f Bug
- Disallowed @ and / from an attribute name or modifier.  This causes
  input like 'user@host:path' to now be parsed as description, and not
  as an unrecognized attribute.
2011-02-04 12:14:52 -05:00
Paul Beckingham
783a326b11 Bug #641
- Fixed bug #641, where certain reports broke when 'dateformat' differed from
  'dateformat.report'.
2011-02-04 11:16:14 -05:00
Paul Beckingham
a650847201 Bug #671
- Fixed bug #671, removing the claim in the 'edit' command claims that
  description text can wrap over multiple lines, because it cannot.
2011-02-04 10:44:40 -05:00
Paul Beckingham
7e1e187d6c Export
- Added the alias 'export.json' that maps to the _query command.
2011-02-04 10:25:43 -05:00
Cory Donnelly
3a623af363 Bug #668
- Inconsequential typo in bug.668.t
2011-01-31 18:37:52 -05:00
Cory Donnelly
6b5253e6a0 Bug #669
- A test for due date < wait date in command.cpp only sometimes added
  an extra context.footnote complaining about the condition and was removed.
2011-01-31 18:31:57 -05:00
Johannes Schlatow
feb19cafdd Unit tests
* Bug #668
2011-01-31 22:09:42 +01:00
Paul Beckingham
c963fd30ba Code Review
- Incorporated (most of the) feedback from John's review of the code.
  Got stuck on replacing 'import commands' with 'import subprocess',
  and all that entails.
2011-01-30 16:16:35 -05:00
Paul Beckingham
eee4d05b77 Feature #41
- Feature #41 (export.xml) is now satisfied by the new export-xml.{pl,py,rb}
  add-ons.
2011-01-29 17:37:56 -05:00
Paul Beckingham
5f8858856b Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2011-01-29 17:20:34 -05:00
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
Paul Beckingham
074ae41ee6 Documentation
- Clarified that the 'all' report does not have a filter, and can
  therefore show all tasks, including recurring parent tasks.
2011-01-29 12:01:32 -05:00
Paul Beckingham
06e15b6e25 Regex
- Removed regex support (controlled in main.h by #ifdef FEATURE_REGEX),
  because it has proven buggy.
2011-01-25 23:54:44 -05:00
Paul Beckingham
14f06e98b7 Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2011-01-25 23:18:03 -05:00
Paul Beckingham
18aa5c5b69 JSON
- Tags are now a JSON array:  "tags":["one","two"]
2011-01-25 23:17:28 -05:00
Federico Hernandez
6e872c69dd feature #46
- proper sortable age column
2011-01-25 23:55:03 +01:00
Federico Hernandez
3ba877b078 Added a few example of using H:N:S in dateformats to taskrc.5 2011-01-24 23:47:18 +01:00
Cory Donnelly
4d95dcf1da Bug c001
- Added unit test bug.c001.t to test for an unreported issue in 1.9.4
  commit 2d50d1c that involves the creation of a recurring task not
  incrementing the displayed Task ID.
2011-01-23 17:47:52 -05:00
Cory Donnelly
03d8cf1114 Bug #656
- Unit test bug.656.t added (thanks Bryce Harrington)
2011-01-23 17:34:05 -05:00
Paul Beckingham
2d50d1cbf5 Bug
- The .not modifier was accidentally inverted when rc.regex=on.
2011-01-23 01:31:04 -05:00
Paul Beckingham
ad2614c452 Bug #651
- Fixed bug #651, which broke the edit command when a task description
  contained certain tokens (like 'Due:').
2011-01-23 00:54:54 -05:00
Paul Beckingham
eaf184c833 Bug
- The _query command now generates JSON with the string entities
  properly encoded.
2011-01-23 00:08:47 -05:00
Paul Beckingham
57c1983e07 Code Migration
- Migrated taskd JSON parser into task, to provide encode/decode
  capability to Task::composeJSON.
- Migrated taskd utf8 code, replacing old unused code.
- Added unit tests or JSON.
- Migrated Tree updates from taskd.
2011-01-22 23:33:47 -05:00
Paul Beckingham
2f4e0d9e17 Bug #654
- By misplacing a } I broke the info command for tasks without undo
  history, which subsequently broke 28 unit tests.
2011-01-22 23:20:26 -05:00
Cory Donnelly
43e68f73d3 Documentation
- Made changes to INSTALL reflecting cmake build process
- Added cygwin and Darwin troubleshooting tips
2011-01-22 21:12:24 -05:00
Cory Donnelly
6fd2fb08bb Bug #652
- Removed extra line in edit.cpp introduced by the patch discussed in Bug #618
2011-01-22 19:44:44 -05:00
Cory Donnelly
c5b61a3125 Bugs #628, #634, #635
- Unit tests added for a few issues.
2011-01-22 14:29:58 -05:00
Cory Donnelly
5317703dcc Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2011-01-21 15:16:46 -05:00
Cory Donnelly
f820e7a8be Bug #649
- Unit test bug.649.t added to demonstrate issue with 1.9.4 commit ae4e286
2011-01-21 15:15:32 -05:00
Paul Beckingham
cc0b0b00af Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2011-01-21 12:00:46 -05:00
Paul Beckingham
8ed1cc6006 Bug
- The _query command emitted this:
    [ {}, {}, {} ]
  which is not valid JSON.  It should instead be:
    {}, {}, {}
2011-01-21 11:59:51 -05:00
Paul Beckingham
103bcef6ab Bug
- The edit command included two entries for the tags, parsing then only
  found the first.
2011-01-21 11:59:15 -05:00
Federico Hernandez
0dd969cc24 CMake
- missing cmake message
2011-01-20 22:19:34 +01:00
Paul Beckingham
e301cda990 Bug, Reorg
- Fixed bug in journal annotations that omitted \n characters for
  certain events, creating an unreadable journal entry.
- Relocated the 'Total active time' into the journal table, made
  the text bold, and changed from "Xh XXm" format to Duration::format.
2011-01-20 10:42:37 -05:00
Federico Hernandez
200fbe3334 Fixed broken unit tests that use _version
- _verstion now outputs the short git sha1 id and not longer the
  task version when building from the git repository.
2011-01-18 02:37:06 +01:00
Federico Hernandez
0cac03ad4a Feature #638
- added worded dates "later" and "someday" to enable the hiding of
  a task until doomsday.
2011-01-18 02:21:00 +01:00
Federico Hernandez
be0357da4a CMake
- added information to task diag to indicate if task is built with
  cmake (to support the upcoming move away from autotools).
2011-01-18 00:00:28 +01:00
Federico Hernandez
32235ca60a CMake
- improve compilation by removing the git sha1 dependency into its
  own include file that is just used 2 times instead of auto.h that
  is included in more places.
2011-01-17 23:27:38 +01:00
Johannes Schlatow
792eab8621 Info report
* added a line to the journal which shows the total time a task was active
2011-01-17 15:21:55 +01:00
Paul Beckingham
8e5ad1288c Holidays
- Added three missing holiday files to Makefile.am.
2011-01-16 20:03:06 -05:00
Paul Beckingham
332dbc4a08 Holidays
- Added new holiday configuration file for Austria (thanks to Andreas Poisel).
2011-01-16 17:01:47 -05:00
Paul Beckingham
0fda4b060c Bug
- _query command used {} instead of [] for task collection.
2011-01-16 01:03:28 -05:00
Federico Hernandez
55de71feca SHA1
- removed previously introduced _sha1 helper command
- modified helper command _version to either display the version
  or the sha1 depending if build from source tar ball or from git.
2011-01-15 22:18:44 +01:00
Federico Hernandez
c0c58f9aff Added _sha1 helper command to quickly identify a
task dev version.
2011-01-15 21:41:28 +01:00
Paul Beckingham
ae4e28689d Holiday Files
- Updated all holiday files to have a complete set of 2011 definitions,
  and remove 2010 definitions.
2011-01-14 23:04:29 -05:00
Paul Beckingham
7ca51e78f0 Feature - enhanced date parse error
- When a date fails to parse, the expected format is displayed, as a reminder
  (thanks to Eric Fluger).
2011-01-14 22:56:52 -05:00
Paul Beckingham
d4772fe060 Bug
- Fixed bug that caused entry, end, start and wait dates to not use report-
  specific date format overrides (thanks to Eric Fluger).
2011-01-14 22:12:17 -05:00
Paul Beckingham
47f2758c8f Holidays
- Added new holiday configuration file for Italy (thanks to Nicola Busanello).
2011-01-11 00:51:12 -05:00
Paul Beckingham
dac31390cb Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2011-01-11 00:08:23 -05:00
Paul Beckingham
68fe437889 Taskd
- Modified Task::composeJSON to use ISO 8601 date format, and the new
  hierarchical annotation format.
2011-01-11 00:07:11 -05:00
Federico Hernandez
d358af4a53 Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2011-01-11 00:37:23 +01:00
Federico Hernandez
e3269984ce Feature #629 - Holidays
- new configuration file for New Zealand (thanks to Stephen Haywood)
2011-01-11 00:36:41 +01:00
Federico Hernandez
e9b9adad06 Holidays
- new configuration file for New Zealand (thanks to Stephen Haywood)
2011-01-11 00:33:44 +01:00
Paul Beckingham
c08c280dd9 Feature #608
- Added feature #608, and now completing a task, with journal.time turned on
  will stop the task first (thanks to Andy Kriger).
2011-01-09 23:39:05 -05:00
Paul Beckingham
109f22051d Bug #603
- When an ID was not specified, delete gave no feedback (thanks to
  Steve Rader).
- Closer inspection showed this to be true for the urgency, query, delete,
  start, stop, done, modify, append, prepend, duplicate, annotate and denotate
  commands.
2011-01-09 23:15:30 -05:00
Paul Beckingham
9764fe310a Documentation
- Mentioned import from a URL in the NEWS file.
2011-01-09 23:07:22 -05:00
Paul Beckingham
10a69c4d3d Import
- Modified man page to acknowledge import from file or URL.
- Changed FEATURE_URL from #if to #ifdef, for consistency.
- Modified import.url.t to accomodate a new URL for the test.
2011-01-09 23:05:01 -05:00
Paul Beckingham
77f26994a6 Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2011-01-09 21:25:59 -05:00
Paul Beckingham
1d8a60a9ba Bug
- Fixed bug that caused the 'done' command to always exit with a non-zero
  status (thanks to Steve Rader).
2011-01-09 21:25:09 -05:00
Johannes Schlatow
59e2e102e6 Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2011-01-10 01:03:49 +01:00
Johannes Schlatow
f52e98d8df Zsh completion
* improved naming conventions of tags for use with zstyle
* added file completion for push/pull
2011-01-10 01:03:38 +01:00
Paul Beckingham
08c089258f Documentation
- Added missing documentation - bugs/features that were closed, but
  not listed in the ChangeLog.
2011-01-09 16:48:10 -05:00
Johannes Schlatow
976cd284ff Zsh completion
* fixed ID completion after edit/info/annotate/start/...
* now IDs will be updated any time the completion function is called
2011-01-09 18:01:53 +01:00
Federico Hernandez
914626e2b2 Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2011-01-08 21:25:32 +01:00
Federico Hernandez
a5f8762570 Msg for sha1 searching in cmake 2011-01-08 21:25:18 +01:00
Paul Beckingham
8d4deda2bb Feature #309
- Added feature #309, which sets the xterm title when reports are run,
  according to the configuration variable 'xterm.title', which defaults to off.
2011-01-08 11:30:58 -05:00
Paul Beckingham
0c05069baf Bug #624
- Enhanced unit tests in response to bug #624 (thanks to Steve Rader).
2011-01-08 11:12:39 -05:00
Paul Beckingham
b5c46062c6 Feature - dependency column justification
- The dependency columns are now right-justified (thanks to Eric Fluger).
2011-01-08 11:10:39 -05:00
Federico Hernandez
022b219c0f CMake
- added sha1 of git commit to task diag
2011-01-08 01:10:26 +01:00
Federico Hernandez
e28d03df82 CMake
- build only target for the unit tests - to be used by the tinderbox
2011-01-07 23:04:04 +01:00
Federico Hernandez
733101a560 CMake
- made lua optional
- included a package_source stub for cpack
2011-01-07 22:23:42 +01:00
Federico Hernandez
32144fb6b0 Removed README.build from Makefile.am 2011-01-06 23:56:51 +01:00
Federico Hernandez
4cdec31803 CMake
- fixed scripts dir that just installed the directories but not the
  files
2011-01-05 23:08:48 +01:00
Federico Hernandez
70a83dad4d CMake
- the version number in the man pages is now set automatically via
  the ${PACKAGE_STRING} cmake variable
2011-01-05 22:46:25 +01:00
Steve Rader
86eef4c184 Bug #618
- Applied patch to fix bug #618, so that the configuration setting
  'edit.verbose' can be set to 'no' and eliminate the help text when using
  the 'task edit' command (thanks to Steve Rader).

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-01-05 08:56:28 -05:00
Paul Beckingham
8fefc8c12a Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2011-01-05 08:30:21 -05:00
Federico Hernandez
75a3266929 Merged README.build to INSTALL 2011-01-05 09:58:07 +01:00
Federico Hernandez
7f0c3bf94b Prepared gitignore for upcoming CPack 2011-01-05 01:26:32 +01:00
Federico Hernandez
506799cac4 CMake
- finalized install target
2011-01-05 01:10:26 +01:00
Paul Beckingham
fca8c43d47 Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2011-01-04 17:37:02 -05:00
Federico Hernandez
198e69f8d1 CMake
- install target: included man pages and rc files
2011-01-04 23:26:35 +01:00
Paul Beckingham
28ceaaaaab Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2011-01-04 16:30:03 -05:00
Paul Beckingham
2bee2f4aa5 Unit Tests
- Added new "is" method for double-precision floating point comparison,
  with tolerance value.
2011-01-04 16:29:31 -05:00
Johannes Schlatow
86f778f504 Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2011-01-04 21:57:23 +01:00
Johannes Schlatow
2181c48eb7 Zsh completion
- added features #585 and #586
2011-01-04 21:57:15 +01:00
Federico Hernandez
9429c96172 CMake
- install command for task binary had wrong target
2011-01-04 08:44:59 +01:00
Steve Rader
e2d11d8575 Bug #590
- Applied patch to fix bug #590, which makes the yes/no/all/quit
  confirmation prompts consistent (thanks to Steve Rader).
- Patch modified to work with autocomplete.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-01-03 23:11:38 -05:00
Paul Beckingham
b553954d37 Bug #597
- Fixed bug #597, which caused a missing project to be counted as a project
  in the projects command (thanks to Steve Rader).
2011-01-03 22:21:51 -05:00
Steve Rader
07755e2c56 Bug #613
- Missing projects are now consistently reported as "(none)" in the
  summary chart and the projects command.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-01-03 22:04:10 -05:00
Paul Beckingham
6b18a2842f Build
- Made pthreads usage conditional upon HAVE_LIBPTHREAD.
2011-01-03 19:34:00 -05:00
Paul Beckingham
6a7e741b02 Bug
- Fixed visual problem where two consecutive months are rendered on the
  x-axis as "OctNov".  Now it renders as "Oc Nov", truncating the earlier
  label.
2011-01-03 14:51:43 -05:00
Paul Beckingham
96851c1d34 Cmake
- Removed NOPE define.
2011-01-02 20:45:24 -05:00
Federico Hernandez
2663f437fc CMake
- foreach loop in test to compile the unit tests
2011-01-03 01:41:48 +01:00
Federico Hernandez
94224d0ac5 CMake
- finalized unit tests transition to CMake
- introduced 2 variables to collect inlcude dirs and libraries
2011-01-03 01:05:39 +01:00
Federico Hernandez
3a599b66f5 CMake
- added stub for the cmake file in test
- proof of concept to generate the test binaries by linking to libtask
2011-01-02 23:53:50 +01:00
Federico Hernandez
51fd0afade CMake
- moved configuration stuff from src to top level cmake file
- building static library task and using it for building task binary
- the static library will then be used as well in the unit tests
2011-01-02 23:45:25 +01:00
Federico Hernandez
101bc8045b with_lua description not longer needed with cmake 2011-01-02 20:21:43 +01:00
Federico Hernandez
3e68bc9ec5 CMake
- added library checks to cmake
- added configuration of include files to cmake
- move package information into configurable include file
- cmake.h.in generates auto.h to be compatible with current
  implementation of autoconf
2011-01-02 16:26:33 +01:00
Paul Beckingham
462caf5bd4 Copyright
- Updated copyright to 2011.
2010-12-31 22:03:05 -05:00
Paul Beckingham
98f3e6e61d Code Cleanup
- Used File object inside Sensor.
2010-12-31 17:25:13 -05:00
Paul Beckingham
8543bd457b Documentation Update
- Added discussion of "less -FrX" and the reported problems with Linux
  'more' (thanks to Steve Rader).
2010-12-31 12:41:44 -05:00
Paul Beckingham
08f32cb9e9 Bug
- Sorting bug in which 'urgency' column was not identified as numeric.
2010-12-31 00:34:23 -05:00
Paul Beckingham
57d577a140 Bug #595
- Fixed bug #595, where taskwarrior ignored changes to the wait date during
  the edit command, consequently not changing task status (thanks to Eric
  Fluger).
2010-12-31 00:33:43 -05:00
Paul Beckingham
1b66904550 Urgency/next
- Added 'urgency' as a reportable, sortable column.  This will allow
  us to test the urgency coefficients.  Note that this is experimental,
  and as such will not be documented.
2010-12-30 22:20:33 -05:00
Paul Beckingham
77f3269f09 Bug #589
- Fixed bug #589, where the man page did not adequately describe searching
  or usage of attribute modifiers (thanks to Steve Rader).
2010-12-30 09:37:40 -05:00
Paul Beckingham
317b7f5d40 Bug #587
- Fixed bug #587, where the man page needed clarification on quoting some
  arguments to prevent them from being broken up by the shell (thanks to
  Steve Rader).
2010-12-29 22:54:32 -05:00
Paul Beckingham
552c594d3f Documentation
- Updated the INSTALL file to discuss cmake, not autoconf.
- Removed the transient test/Makefile from git.
2010-12-29 16:48:54 -05:00
Paul Beckingham
429709a426 Documentation
- Added brief discussion of the reasons Lua is the chosen plugin
  langauge (thanks to Eric Fluger).
2010-12-29 10:19:52 -05:00
Paul Beckingham
f5f1b38fe8 CMake
- Added cmake transient files to the .gitignore file.
2010-12-29 10:19:15 -05:00
Federico Hernandez
b2a7b91a7c Cmake:
- added parts of the configure.ac checks to src/CMakeList.txt as
  comments/TODOs
2010-12-29 01:14:04 +01:00
Federico Hernandez
fb24835ac5 First commit of cmake stubs - more to come 2010-12-29 00:31:20 +01:00
Federico Hernandez
dd10bf52e7 Unit tests:
- TZ related bug in date.t.cpp (test 78). 1234567890 is 2/14 in CET.
  Changed epoch to 1234526400 which is 2/13/2009 12:00:00 UTC.
2010-12-28 22:33:18 +01:00
Federico Hernandez
5d775fdc3e Cmake:
- adapted makefile and unit tests to new place of test dir
2010-12-28 21:38:03 +01:00
Federico Hernandez
17ef077e27 Moved src/tests to test (cmake preperations) 2010-12-28 21:17:23 +01:00
Federico Hernandez
02dcdf83b5 Fixed auto.h includes to point to top level dir for cmake 2010-12-28 21:12:30 +01:00
Paul Beckingham
d572383e76 Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2010-12-27 16:34:09 -05:00
Paul Beckingham
a6cf99a83c Code Cleanup
- Migrated format helper functions over from taskd.
- Converted much of the sprintf usage to format calls.
2010-12-27 16:31:11 -05:00
Federico Hernandez
74607341ff New platform: NetBSD 2010-12-27 22:11:47 +01:00
Paul Beckingham
5f007ed1d9 Bug
- The burndown chart was reserving space for the y-axis labels based
  on the maximum value in the data.  This is wrong.  Instead it should
  have used the maximum *label*.  Consider a graph with a maximum value
  of 99, having a width of 2 characters.  The graph labels should go up
  to 100, not 99, and therefore will take up 3 characters.
2010-12-27 01:11:03 -05:00
Paul Beckingham
8d720cacc5 Bug
- When rc.regex:on is set, filters with "+tag" elements were causing
  a segfault because the "tag" word was converted to a non-capturing
  regex, no results were captured, and array[0] failed.  Now it is
  implemented that tag elements in a filter never use regexes, which
  maintains the idea the tags are not really words, but tokens that
  either match or don't.
2010-12-27 00:57:24 -05:00
Paul Beckingham
4a58fbdd53 Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2010-12-27 00:24:30 -05:00
Paul Beckingham
3d7bb9d253 Bug #564
- Fixed bug #564, which allowed the deletion of parent recurring tasks (thanks
  to Peter De Poorter).
2010-12-27 00:22:57 -05:00
Paul Beckingham
7f32435ce9 Helper Command
- Added _query helper command for script writers, which accepts a filter like
  any other report, but returns raw JSON.
2010-12-26 10:00:41 -05:00
Johannes Schlatow
126a3d88b5 Zsh completion
- added completion of attributes
- added completion of projects and tags
- added completion of special dates and frequencies
2010-12-25 23:57:00 +01:00
Paul Beckingham
367c32c050 Error
- Forgot to uncomment the lua line.  Oops.
2010-12-24 00:29:09 -05:00
Paul Beckingham
d9bd9c3532 Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2010-12-24 00:28:35 -05:00
Paul Beckingham
879f0fed78 Feature #574
- Added feature #574, default due dates (thanks to Erlan Sergaziev).
2010-12-24 00:28:06 -05:00
Paul Beckingham
07050a35f3 Portability
- Added preliminary enhancement to configure.ac (thanks to Sander Marechal),
  but this still needs work.
2010-12-23 23:53:28 -05:00
Paul Beckingham
05d664cae1 Bug #541
- Fixed bug #541, which prevented sorting by 'age' column in some situations.
2010-12-23 23:26:01 -05:00
Paul Beckingham
18c770141d Merge branch '1.9.4' of tasktools.org:task into 1.9.4
Conflicts:
	ChangeLog
2010-12-23 23:16:05 -05:00
Paul Beckingham
595dd9f3f4 Bug #581
- Applied patch to fix bug #581, in which backslashes in annotations and
  descriptions caused problems (thanks to Itay Perl).
- Corrected unit tests that were shown to be incorrect, after the patch
  corrected other behavior.
2010-12-23 23:14:20 -05:00
Paul Beckingham
1d4c79b897 Code Cleanup
- Applied refactoring patch from Itay Perl.
2010-12-23 22:58:55 -05:00
Johannes Schlatow
ee77debfce Bug #540
- fixed issue with user names containing @ characters
- updated ChangeLog
- updated task-sync.5
2010-12-24 01:00:03 +01:00
Johannes Schlatow
d44e592635 Bug #580
- reuse merge uri for autopush
2010-12-23 22:15:11 +01:00
Paul Beckingham
4840708090 Bug #579
- Fixed bug #579, which displayed incorrect counts when using the 'limit:N'
  filter (thanks to Thomas Sattler).
- Changed wording from 'lines' to 'tasks', because the former was inaccurate.
- Adjusted limit.t tests accordingly.
2010-12-22 09:31:00 -05:00
Johannes Schlatow
bad31d83b1 Bug #570
- fixed execvp parameter
2010-12-16 22:36:24 +01:00
Paul Beckingham
1c29c2c87d Diagnostics
- Added mention of $TERM and the size of the terminal.
2010-12-16 09:29:46 -05:00
Paul Beckingham
ca4b15bc0b Holidays
- Added feature #575, including Danish holidays (thanks to Irfan Siddiqui).
2010-12-15 16:13:27 -05:00
Paul Beckingham
c73f131f32 Eliminated ncurses
- Removed autoconf ncurses detection.
- Modified man pages.
- Inserted vitapi replacement code.
- Cached terminal size values for reuse.
- Modified packaging info for OSX.
- Removed -lncurses from unit test makefile.
- Removed obsolete taskrc example.
- Modified (simplified) source build instructions.
2010-12-14 14:40:03 -05:00
Johannes Schlatow
551c4b99c4 Bug #570
- fixed merge/push/pull bug (missing brace expansion in dash)
2010-12-14 10:27:28 +01:00
Federico Hernandez
4ca35fb956 Feature #567
- added a calendar offset that effectively changes the first
  month to be displayed in the calendar report (thanks to
  Michelle Crane)
- calendar.offset turns the featue off or on
- calendar.offset.value controls the number of month to be
  applied for the offset
2010-12-01 23:25:13 +01:00
Paul Beckingham
14ab7ba7bd GC
- Forgot to add 'gc' as a valid configuration variable.
2010-11-29 23:43:36 -05:00
Paul Beckingham
068d85b1f3 Unit Tests
- Added a context value for gc=1, which otherwise defaults to 0 when
  the Config object is empty.
2010-11-29 08:37:20 -05:00
Paul Beckingham
d2fdc10f39 iUnit Tests
- Corrected test that changed columns in the ls report, but not the
  corresponding sort order.
2010-11-29 08:19:12 -05:00
Paul Beckingham
2b7452f9a7 Feature #561
- Added taskrc.5 documentation for rc.gc=off.
2010-11-28 16:32:51 -05:00
Paul Beckingham
0ac2b43ad3 Feature #561
- Added ability to temporarily suspend GC (rc.gc:0) for a given command, which
  helps scriptwriters implement shadow files externally (thanks to Sander
  Marechal).
2010-11-28 16:26:21 -05:00
Paul Beckingham
5bf8feefca Shadow Files
- Added a missing check for file overwrites.
2010-11-28 12:04:44 -05:00
Paul Beckingham
bdc167fd6a Miscellaneous Edits
- Added Max Muller to AUTHORS for suggestions.
- Fixed a unit test Perl warning.
2010-11-28 08:44:25 -05:00
Paul Beckingham
aa98ca42c8 Shell
- Added support for 'bye' and 'exit' as well as 'quit' from the task
  shell.  Thanks to foucist.
2010-11-27 21:33:20 -05:00
Paul Beckingham
5adc86bbbf Sorting
- Added 'description+' to all reports with duplicate sort keys, to stabilize
  the sequence.
2010-11-27 19:52:15 -05:00
Paul Beckingham
bfc2367bdb Code Cleanup
- Removed used of foreach macro.
2010-11-27 19:42:34 -05:00
Paul Beckingham
4c3354fa50 Journal Feature
- Added change log display to the 'info' command, controlled by the
  'journal.info' configuration setting.
2010-11-27 16:38:36 -05:00
Paul Beckingham
31cf470cc8 Copyright
- Made all the copyright notices consistent.  It was bothering me.
2010-11-27 09:13:09 -05:00
Paul Beckingham
fe85e28605 Show Command Defaults
- Added highlighting for the show command that indicates which values differ
  from the defaults.
2010-11-26 19:32:37 -05:00
Paul Beckingham
7a95c38290 Diagnostics
- Added configuration settings for 'regex' and 'locking', which might
  be useful.
2010-11-26 17:38:52 -05:00
Paul Beckingham
fe65d28f99 Feature #158
- Added feature #158, regular expression support for filters and substitutions.
- Added unit tests to att.t and filter.t.
- Updated docs.
2010-11-26 17:26:03 -05:00
Paul Beckingham
09ce815fc5 Feature #247
- Added feature #247, providing infinite width reports when redirecting output
  to a file, by setting defaultwidth to 0.
2010-11-26 14:54:55 -05:00
Paul Beckingham
38ffa390ea Bug #542
- Fixed bug #542, which sorted the countdown columns incorrectly (thanks to
  Michelle Crane).
- Duration could not parse all varieties of it's own output, which is why the
  sorting was broken, in particular negative durations and real numbers in
  durations (such as (1.2y').
- Sorting in Table::sort_compare for Table::periodAscending and
  Table::periodDescending was broken.
- Missing unit tests for countdown_compact.
- Imported Nibbler::getNumber from the Attitash project.
- Additional Duration unit tests.
- Additional Nibbler unit tests.
- Additional countdown.t unit tests.
2010-11-26 14:00:49 -05:00
Paul Beckingham
c2a84c7cf6 Unit Tests
- Added unit tests for bug #495, which cannot be replicated.
2010-11-26 11:40:27 -05:00
Paul Beckingham
da5e2925ad Bug #530
- Fixed bug #530, where unrecognized periods on recurring tasks were not
  being properly handled (thanks to T. Charles Yun).
2010-11-26 11:23:09 -05:00
Paul Beckingham
6ef5650129 Bug #515
- Fixed bug #515, which displayed an incorrect message after duplicating a
  non-existent task (thanks to Peter De Poorter).
2010-11-26 11:08:51 -05:00
Paul Beckingham
d7de67d242 Feature #546
- Added feature #546, which is a 'count' command that counts tasks, and is
  intended to help scripts that manipulate task output.
- Added unit tests.
- Added man page description.
2010-11-26 10:39:00 -05:00
Paul Beckingham
4c40784328 Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2010-11-24 18:18:21 -05:00
Paul Beckingham
b581e5d3c4 Burndown
- Added discussion of the new burndown.bias configuration variable
  to the NEWS file.
- Changed 'major' and 'minor' string names to avoid some clash with
  gnu_version_major etc.
- Added missing include for Linux.
- Added new burndown configuration variables to the allowed list.
2010-11-24 18:16:57 -05:00
Paul Beckingham
fd27fe3392 Portability
- Added missing include.
- Apparently, you cannot have a string name 'major' or 'minor', which
  clashes with gnu_version_major etc.
2010-11-24 23:14:48 +00:00
Paul Beckingham
955634c35b Burndown Chart
- Added debug output showing calculations.
- Made the bias configurable, defaulting to 0.666.
- Added 'burndown.bias' to the taskrc.5 man page.
2010-11-24 15:11:02 -05:00
Paul Beckingham
42c0b33f07 Burndown Chart
- Implemented rate calculations
- Implemented completion estimate
- Added debug diagnostics for the inevitable questions that will arise
2010-11-24 13:01:34 -05:00
Paul Beckingham
c5158a6457 Burndown Chart
- Now renders (and wraps if necessary) a chart title, with additional
  filter description.
- Removed more redundant code.
- Fixed divide-by-zero bug when the filter resulted in zero matches.
- Made the burndown commands read-only, so that filters apply.
2010-11-22 23:54:16 -05:00
Paul Beckingham
9fd9e8e3a8 Recurrence
- Child tasks now have their own entry date, instead of inheriting it
  from the parent.  This improves the ability to report new tasks in
  the burndown charts, history report.
2010-11-22 23:11:45 -05:00
Paul Beckingham
ead7cfe2b8 Burndown Chart
- Completed chart rendering for all three variations.
- Updated assorted documentation.
- Removed most of the obsolete code.
- Not completed:
  - find rate calculation/algorithm
  - fix rate calculation/algorithm
  - completion date algorithm
2010-11-22 22:42:03 -05:00
Paul Beckingham
3a4fff1683 Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2010-11-22 01:48:59 -05:00
Paul Beckingham
c4a5a75fd6 Burndown Chart
- Infrastructure rewritten with the following benefits:
  - greater performance
  - reduced memory footprint
  - generalized periods (daily, weekly, monthly)
- Currently graphs do not render, daily chart is still the old implementation
2010-11-22 01:47:10 -05:00
Johannes Schlatow
4cb5caa342 Bug #548
- Fixed issue with push command where curl transfers
  only pending.data
- Differentiate between "command not found" and other errors
2010-11-22 01:16:07 +01:00
Paul Beckingham
652b7d9c8d Burndown Chart
- Implemented burndown.daily, which is functional, but has outstanding
  problems that need to be addressed:
    - Slow
    - Does not optimize output (i.e. contains /\S\s+$/)
    - Needs generalized helper functions to reduce the size of the handler
2010-11-21 00:28:34 -05:00
Paul Beckingham
94480c23d2 Bug 555
- Fixed #555 that caused a segfault when 'log' was used with a project,
  because the onProjectChange code assumes the files are still open, and
  they were not.  Checked all other commands for similar problem.
- Added Itay Perl to the AUTHORS file.
- Added unit test.
2010-11-20 09:48:19 -05:00
Paul Beckingham
d3303f6a98 Code Cleanup
- Obsoleted the monthlyEpoch and yearlyEpoch functions, which are better
  served by the Date::startOf{Month,Year} methos.
2010-11-15 12:04:27 -05:00
Paul Beckingham
125058093f Dates
- Added Date::startof{Day,Week,Month,Year} methods to facilitate the
  history, ghistory and burndown charts.
2010-11-15 11:43:21 -05:00
Paul Beckingham
891136788f Documentation
- New task-sync man page not mentioned in default .taskrc file.
2010-11-12 08:51:48 -05:00
Paul Beckingham
d1b7e66694 Bug #538
- Fixed bug #538, where some color legend items were not readable.
2010-11-11 14:47:13 -05:00
Paul Beckingham
914007c7e5 Merge branch '1.9.4' of tasktools.org:task into 1.9.4 2010-11-11 13:16:34 -05:00
Paul Beckingham
e9d60e693e Packaging
- Added Andraž 'ruskie' Levstik to the AUTHORS file for his contribution
  which is to add task to the sourcemage distribution.
2010-11-11 13:08:15 -05:00
Johannes Schlatow
e6ea471cbe ChangeLog
- added note for previously fixed bug #537
2010-11-11 18:42:23 +01:00
Johannes Schlatow
a3ba025d22 Bug
- fixed #537, URIs in task-sync.5
2010-11-11 18:34:22 +01:00
Paul Beckingham
b9f10addf8 Bug #539
- Fixed but #539, where the man page task-color(5) contained a line that
  began with a ' and was not displayed.
2010-11-11 10:36:37 -05:00
Paul Beckingham
c8e35fab88 Bug #535 - Missing holidays-NO.rc file in package
- Fixed bug #535 which omitted the file from the top-level Makefile.am
  (thanks to Jostein Berntsen).
2010-11-10 17:47:55 -05:00
Paul Beckingham
cc8299f0cc Bug #529
- Fixed bug #529, where the 'depends' attribute was not mentioned in the
  task man page (thanks to Dirk Deimeke).
2010-11-09 07:56:48 -05:00
Paul Beckingham
55ad0cb8b7 Version number
- Removed all the changes from the NEWS file, ready for whatever
  comes next.
- Bumped version number in task-tutorial.5, othewise it looks dated.
2010-11-08 22:30:13 -05:00
Federico Hernandez
3c9bf20798 Bumped version number to 1.9.4 2010-11-09 02:26:35 +01:00
Federico Hernandez
6b77459286 Added SHA1 of tagged release commit 2010-11-09 02:18:37 +01:00
966 changed files with 88772 additions and 50985 deletions

29
.gitignore vendored
View File

@@ -1,19 +1,18 @@
aclocal.m4
autom4te.cache
auto.h*
config.h.in
config.status
src/.deps
src/Makefile
*/*task
stamp-h1
cmake.h
auto.h
commit.h
Makefile
Makefile.in
configure
config.log
www.xls
src/tests/all.log
src/tests/*.data
*/*task
*/*libtask.a
*/*/libcommands.a
*/*/libcolumns.a
*~
.*.swp
package-config/osx/binary/task
CMakeFiles
CMakeCache.txt
cmake_install.cmake
install_manifest.txt
_CPack_Packages
CPackConfig.cmake
CPackSourceConfig.cmake

113
AUTHORS
View File

@@ -7,6 +7,11 @@ contributions of the following people:
John Florian (Contributing Author)
Cory Donnelly (Contributing Author)
Johannes Schlatow (Contributing Author)
Dirk Deimeke (Technical Advisor & Evangelist)
Wim Schuermann (Contributing Author)
Owen Clarke (Contributing Author)
Louis-Claude Canon (Contributing Author)
Scott Kostyshak (Contributing Author)
The following submitted code, packages or analysis, and deserve special thanks:
@@ -32,6 +37,53 @@ The following submitted code, packages or analysis, and deserve special thanks:
Kathryn Andersen
Alexander Schremmer
Jostein Berntsen
Andraž 'ruskie' Levstik
Irfan Siddiqui
Itay Perl
Sander Marechal
Stephen Heywood
Nicola Busanello
Eric Fluger
Andreas Poisel
Timm Reitinger
Dan White
Alexei Romanoff
Tomas Cech
Duane Waddle
Stefan Keel
Christopher J. Pilkington
Fumihito Yoshida
Michael McCann
Ben Boeckel
Bryce Harrington
Brendan O'Flaherty
Matt Kraai
Daniel Kullmann
Takanobu Watanabe
Paolo Almeida
Michelle Crane
Greg Grossmeier
Barton Meeks
Martin Klepsch
Ralph Bean
Uli Martens
Michal Vyskocil
Steve Rader
Luke Macken
Sam Stuck
Christoph Robbert
Oleksii Tsai
Jörg Plate
Markus Kuhn
Erik Wenzel
Štěpán Henek
Fidel Mato
Justin Forest
Vincent Petithory
Rainer Müller
Jakub Wilk
Russell Steicke
YBSAR
Thanks to the following, who submitted detailed bug reports and excellent
suggestions:
@@ -59,7 +111,64 @@ suggestions:
Juergen Daubert
Rich Mintz
Seneca Cunningham
Dirk Deimeke
Michelle Crane
Alexander Schremmer
Elizabeth Maxson
Peter De Poorter
Max Muller
Thomas Sattler
Erlan Sergaziev
Andy Kriger
Patrick R McDonald
Pete Lewis
Stefan Hacker
Alan Barton
Jonathan Hankins
Andreas Kalex
Adam Wolk
Tom Duffy
Miguel de Val Borro
Yann Davin
John Hammond
Arkady Grudzinsky
Bernhard B
Aikido Guy
Gour-Gadadhara Dasa
Aaron Jackson
Dmitriy Samborskiy
Eli Lev
Paul-Gheorghe Barbu
Jennifer Cormier
Joe Holloway
Peter Lewis
Najmi Ahmad Zabidi
Philipp Woelfel
Tuomas Toivola
Adam Gibbins
Ali Mousavi
Victor Roetman
Andy Spiegl
Ethan Schoonover
Paul Kishimoto
Jeff Schroeder
Bryan Kam
Nicholas Rabenau
Bruno Bigras
Hyde Stevenson
Martin U
Christoph Lange
Stephen Hay
Vlad Zhivotnev
Stanley G
Marek Vitek
Rene Vergara
Stéphane Pezennec
Jim B
Jake Bell
Florian Hollerweger
Thomas Sullivan
Tim None
trHD
Benjamin Weber
alparo
Roy Zuo
Friedrich Heusler

130
CMakeLists.txt Normal file
View File

@@ -0,0 +1,130 @@
cmake_minimum_required (VERSION 2.8)
set(CMAKE_LEGACY_CYGWIN_WIN32 0) # Remove when CMake >= 2.8.4 is required
include (CheckFunctionExists)
include (CheckStructHasMember)
set (HAVE_CMAKE true)
project (task)
set (PROJECT_VERSION "2.2.0")
SET (TASK_MAN1DIR share/man/man1 CACHE STRING "Installation directory for man pages, section 1")
SET (TASK_MAN5DIR share/man/man5 CACHE STRING "Installation directory for man pages, section 5")
SET (TASK_DOCDIR share/doc/task CACHE STRING "Installation directory for doc files")
SET (TASK_BINDIR bin CACHE STRING "Installation directory for the binary")
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
set (LINUX true)
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set (DARWIN true)
elseif (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
set (FREEBSD true)
elseif (${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")
set (OPENBSD true)
elseif (${CMAKE_SYSTEM_NAME} MATCHES "NetBSD")
set (NETBSD true)
elseif (${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
set (SOLARIS true)
else (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
set (UNKNOWN true)
endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
message ("-- Looking for SHA1 references")
if (EXISTS ${CMAKE_SOURCE_DIR}/.git/index)
set (HAVE_COMMIT true)
execute_process (COMMAND git log -1 --pretty=format:%h
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE COMMIT)
configure_file ( ${CMAKE_SOURCE_DIR}/commit.h.in
${CMAKE_SOURCE_DIR}/commit.h)
message ("-- Found SHA1 reference: ${COMMIT}")
endif (EXISTS ${CMAKE_SOURCE_DIR}/.git/index)
set (PACKAGE "${PROJECT_NAME}")
set (VERSION "${PROJECT_VERSION}")
set (PACKAGE_BUGREPORT "support@taskwarrior.org")
set (PACKAGE_NAME "${PACKAGE}")
set (PACKAGE_TARNAME "${PACKAGE}")
set (PACKAGE_VERSION "${VERSION}")
set (PACKAGE_STRING "${PACKAGE} ${VERSION}")
check_function_exists (random HAVE_RANDOM)
check_function_exists (srandom HAVE_SRANDOM)
check_function_exists (timegm HAVE_TIMEGM)
check_struct_has_member ("struct tm" tm_gmtoff time.h HAVE_TM_GMTOFF)
check_struct_has_member ("struct stat" st_birthtime "sys/types.h;sys/stat.h" HAVE_ST_BIRTHTIME)
message ("-- Looking for libuuid")
if (DARWIN)
# Apple includes the uuid functions in their libc, rather than libuuid
set (HAVE_UUID true)
check_function_exists (uuid_unparse_lower HAVE_UUID_UNPARSE_LOWER)
else (DARWIN)
find_path (UUID_INCLUDE_DIR uuid/uuid.h)
find_library (UUID_LIBRARY NAMES uuid)
if (UUID_INCLUDE_DIR AND UUID_LIBRARY)
set (HAVE_UUID true)
set (TASK_INCLUDE_DIRS ${TASK_INCLUDE_DIRS} ${UUID_INCLUDE_DIR})
set (TASK_LIBRARIES ${TASK_LIBRARIES} ${UUID_LIBRARY})
# Look for uuid_unparse_lower
set (CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${UUID_INCLUDE_DIR})
set (CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${UUID_LIBRARY})
check_function_exists (uuid_unparse_lower HAVE_UUID_UNPARSE_LOWER)
endif (UUID_INCLUDE_DIR AND UUID_LIBRARY)
endif (DARWIN)
if (HAVE_UUID AND HAVE_UUID_UNPARSE_LOWER)
message ("-- Found libuuid")
elseif (HAVE_UUID AND NOT HAVE_UUID_UNPARSE_LOWER)
message ("-- Found libuuid, using internal uuid_unparse_lower")
else (HAVE_UUID AND HAVE_UUID_UNPARSE_LOWER)
message ("-- libuuid not found, using internal uuid")
endif (HAVE_UUID AND HAVE_UUID_UNPARSE_LOWER)
# Set the package language.
if (LANGUAGE)
set (PACKAGE_LANGUAGE ${LANGUAGE})
else (LANGUAGE)
set (PACKAGE_LANGUAGE 1)
endif (LANGUAGE)
set (LANGUAGE_EN_US 1)
set (LANGUAGE_ES_ES 2)
set (LANGUAGE_DE_DE 3)
set (LANGUAGE_FR_FR 4)
message ("-- Configuring cmake.h")
configure_file (
${CMAKE_SOURCE_DIR}/cmake.h.in
${CMAKE_SOURCE_DIR}/cmake.h)
add_subdirectory (src)
add_subdirectory (src/commands)
add_subdirectory (src/columns)
add_subdirectory (doc)
add_subdirectory (i18n)
add_subdirectory (scripts)
if (EXISTS test)
add_subdirectory (test EXCLUDE_FROM_ALL)
endif (EXISTS test)
if (EXISTS performance)
add_subdirectory (performance EXCLUDE_FROM_ALL)
endif (EXISTS performance)
set (doc_FILES NEWS ChangeLog README INSTALL AUTHORS COPYING)
foreach (doc_FILE ${doc_FILES})
install (FILES ${doc_FILE} DESTINATION ${TASK_DOCDIR})
endforeach (doc_FILE)
# ---
set (CPACK_SOURCE_GENERATOR "TGZ")
set (CPACK_SOURCE_PACKAGE_FILE_NAME ${PACKAGE_NAME}-${PACKAGE_VERSION})
set (CPACK_SOURCE_IGNORE_FILES "CMakeCache" "CMakeFiles" "CPackConfig" "CPackSourceConfig"
"_CPack_Packages" "cmake_install" "install_manifest" "Makefile$"
"test" "package-config" "misc/*" "src/task$" "src/libtask.a"
"src/columns/libcolumns.a" "src/commands/libcommands.a"
"auto.h$" "/\\.gitignore" "/\\.git/" "swp$")
include (CPack)

294
COPYING
View File

@@ -1,281 +1,23 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
taskwarrior - a command line task list manager.
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Copyright 2006-2013, Paul Beckingham, Federico Hernandez.
Preamble
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
http://www.opensource.org/licenses/mit-license.php

708
ChangeLog
View File

@@ -1,7 +1,705 @@
------ current release ---------------------------
1.9.3 (11/08/2010)
2.2.0 (2013-04-07)
Features
+ Added Feature #685, which provides a 'blocking' report, and new color rule
(thanks to Michelle Crane).
+ Added Feature #953, which includes the total number of blocked and blocking
tasks to the 'statistics' command output (thanks to T. Charles Yun).
+ Added Feature #1039, which adds new date shortcuts, 'socm' and 'eocm',
meaning start and end of current month (thanks to Thomas Sullivan,
Louis-Claude Canon).
+ Added Feature #1061, which allows the 'columns' command to use a search
string for the column name (thanks to Uli Martens).
+ Added Feature #1069, which gives a clearer error when a UDA
is added without the uda.<uda-name>.type variable.
+ Added Feature #1099, which supports the 'color.uda.<uda-name>' color rule
(thanks to Florian Hollerweger).
+ Added Feature #1124, which provides a '_show' command that displays all
configuration defaults and settings, for use by third-party software (thanks
to Jake Bell).
+ Added feature #1147, applying patch to display duration of each activity
session (thanks to Justin Forest).
+ The 'projects' command now outputs abstract parents and reduces
repetition by not printing parent names in front of children names.
+ Added framework for testing bash autocompletion.
+ New helper command '_aliases' for autocompletion purposes.
+ Stop consider new tasks after quitting a bulk change.
+ Removed deprecated 'fg:' and 'bg:' attributes.
+ The 'diagnostics' command now reports libuuid details.
+ New characters for parsing and formating dates ('n', 's' and 'v').
+ Virtual tags (BLOCKED, UNBLOCKED, BLOCKING, DUE, DUETODAY, TODAY, OVERDUE,
ACTIVE, SCHEDULED, CHILD, UNTIL, WAITING and ANNOTATED).
+ New 'modified' attribute, which contains the most recent modification date,
if a modification has occurred.
+ Fixed the mechanism used for selecting translations (thanks to Fidel Mato).
+ Added new export script: export-tsv.pl.
+ Added the configuration variable 'print.empty.columns'.
+ The 'push' and 'pull' commands now properly distinguish between a missing
transport utility and other errors (thanks to Russell Steicke).
+ Removed support for Lua extensions.
+ Added tips.fr-FR (thanks to YBSAR).
+ Added tips.es-ES (thanks to Fidel Mato).
Bugs
+ Fixed bug #642, so that the default 'data.location=~/.task' preserves the
'~', leading to more portable .taskrc files (thanks to alparo).
+ Fixed bug #947, #1031, which kept expanding aliases after the '--' operator
(thanks to Jim B).
+ Fixed bug #1038, which prints blank lines with bulk changes and when the
verbose attributes does not specify it. Lines do a better separation between
each changes also.
+ Fixed bug #1042, where the 'diagnostics' command failed to detect missing
external utilities on Solaris and NetBSD.
+ Fixed bug #1043, where aliases were not recognized by bash autocompletion.
+ Fixed bug #1044, where 'task projects' considers newly deleted tasks and
provides an incorrect summary.
+ Fixed bug #1047, which caused extra commas in exported JSON when UDA orphans
were present (thanks to Thomas Sullivan).
+ Fixed bug #1048, which segfaulted rather than complain about syntax (thanks
to Bryce Harrington, Štěpán Henek).
+ Fixed bug #1053, where ' characters were not escaped by export-csv.pl (thanks
to John Florian).
+ Fixed bug #1056, where CmdSummary did not print abstract parents.
+ Fixed bug #1059, where CmdEdit was running garbage collection.
+ Fixed bug #1060, where an error was not thrown correctly.
+ Fixed bug #1063, so that numeric UDA fields are now sortable (thanks to Max
Muller).
+ Fixed bug #1065, where CmdShow issued messages in incorrect situations.
+ Partially fixed #1083, which showed 'task 0 ...' when modifying a non-
pending task (thanks to Aikido Guy).
+ Fixed bug #1087, which gave incorrect task/line counts under certain
conditions.
+ Fixed bug #1091, allowing filters to use 'urgency.over:4.5'.
+ Fixed bug #1110, which did not treat 'status:Completed' the same
as 'status:completed' (thanks to Aikido Guy).
+ Fixed bug #1118, which dropped changes after edits were rejected (thanks to
Ben Boeckel).
+ Fixed bug #1123, which caused the undo of a 'log' command to corrupt the data
file (thanks to Tim None).
+ Fixed bug #1128, which caused 'age' columns to be right-justified instead of
left-justified (thanks to Steve Rader).
+ Fixed bug #1136, #1177, which incorrectly line-wrapped tasks with annotations
(thanks to Steve Rader, T. Charles Yun).
+ Fixed bug #1135, #1137, which caused file locks to be non-blocking (thanks
to Steve Rader).
+ Fixed bug #1150, which referenced deprecated features in the tutorial man
page (thanks to Benjamin Weber).
+ Fixed bug #1154, which now allows priorities to be specified in any case.
+ Fixed bug #1178, which included binary libraries in the released source
package (thanks to Jakub Wilk).
+ Fixed bug #1181, where single-character columns were often rendered using
widths larger than 1 (thanks to Max Muller).
+ Fixed bug #1183, correcting error message typos (thanks to Jakub Wilk).
+ Fixed bug #1184, correcting man page formatting (thanks to Jakub Wilk).
+ Fixed bug #1185, correcting man page install location for out-of-tree
builds (thanks to Jakub Wilk).
+ Fixed bug #1189, which caused wide Asian UTF8 characters to be measured as
narrow characters (thanks to Roy Zuo).
+ Fixed bug #1191, which kept file locks active for longer than necessary,
and caused the 'execute' command to be considered a 'write' command.
+ Fixed bug #1192, which failed to expand braces internally, as POSIX /bin/sh
does not do {} expansion, thereby causing push/pull errors (thanks to Russell
Steicke).
+ Fixed bug #1194, so that $HOME has precedence over the passwd db when looking
for the user's home directory (thanks to Jakub Wilk).
+ Fixed bug #1199, where 'stat' was used instead of 'lstat' (thanks to Jakub
Wilk).
+ Fixed bug #1200, where directory removal didn't handle d_type==DT_UNKNOWN
(thanks to Jakub Wilk).
+ Fixed bug #1209, spelling mistake in reference page (thanks to Friedrich
Heusler).
+ Fixed bug #1210 so that widths are taken from localized strings instead of
hardcoded.
+ Fixed bug #1218 so that description columns minimum width is calculated
correctly.
+ Improved hyphenation by splitting on commas (even if no whitespace after).
Leads to better output of, for example, 'task show', where comma-separated
lists are common.
+ No more bash completion of, for example, 'projABC:', or of 'proj:' if
abbreviation.minimum is greater than 4.
+ Fixed bug where shadow files are not properly created when there is a missing
.taskrc file (thanks to Pietro Cerutti).
+ Fixed bug with 'socm' date calculation that failed on some days, by
simplifying the implementation.
+ Fix a bug where 'print.empty.columns=no' resulted in never printing the
project column.
+ Integrated latest UTF8 character width calculations from Markus Kuhn.
+ Fixed bug where localized UTF8 strings were not properly substr'd (thanks to
Fidel Mato).
+ Fixed a bug where the bash completion script was causing gc() to be run.
+ Fixed manpages that were not installed when running an out-of-source build
(thanks to Vincent Petithory).
+ Added missing localized confirmation strings (thanks to Rainer Müller).
+ Fixed bug that added an extra newline after setting the terminal title
(thanks to Rainer Müller).
+ Fixed a bug where the terminal title was tried to be set without a tty
(thanks to Rainer Müller).
+ Fixed hook tests to work on released code (thanks to Jakub Wilk).
+ Fixed bug where arguments passed to 'task execute' needed double escaping.
+ Fixed a bug so that the report filter order is preserved, to enable an
optimization that was being skipped.
------ old releases ------------------------------
2.1.2 (2012-09-18) 1e3176ed70d2b50faf03838d0df279b2a4ae93b2
Bugs
+ Bug fix release regarding #1104, which causes duplicate UUIDs during
the merge command.
+ Fixed bug where shadow files are not properly created when there is a missing
.taskrc file (thanks to Pietro Cerutti).
2.1.1 (2012-07-24) 46c5f8b826838ce96d9df7fcd3039de3c43483dd
Bugs
+ Fixed bug that caused misplaced commas in JSON export (thanks to greenskeleton).
+ Fixed bug #1036, which prevents 'until' attributes to be modified for
non-recurring tasks (thanks to Stéphane Pezennec).
2.1.0 (2012-07-23) a413331c9450b48065f94639e7ab0455eaa74293
Features
+ Feature #164, #325, #339, #435, #553, #554, #975, User Defined Attributes.
+ Feature #457, #922, tasks may now be given an 'until' date, after which they
expire and are deleted.
+ Feature #516, which allows the duplication of completed tasks (thanks to
Peter De Poorter, Ethan Schoonover).
+ Feature #921, which implements a 'udas' command that describes defined UDAs,
and a '_udas' for completion purposes. Also detects UDA orphans.
+ Applied patch for feature #1005, which prevents the update-holidays.pl script
from creating duplicate holidays (thanks to Jörg Plate).
+ Added the new 'indented' format for the 'project' attribute.
+ The 'projects' report now uses 'project.indented' format.
+ The 'summary' report now uses 'project.indented' format.
+ Applied patch to allow ID ranges and UUIDs when editing dependencies (thanks
to Louis-Claude Canon).
+ Supports 'scheduled' date for tasks, which represent the earliest opportunity
to work on a task.
+ Performance improvements:
+ Added parse-free convenience functions
+ Filter optimization: with no 'OR' or 'XOR' operators, no UUIDS but with IDs
the completed.data file is not referenced.
+ Reduced excessive number of sort columns on certain reports
+ Speed boost for 'next' report.
+ Similar helper subcommands for 'uuids' as for there is for 'ids' (_uuids and
_zshuuids).
+ Possible to specify the date format when editing with 'dateformat.edit'.
+ Possible to specify the date format when showing information about a task
with 'dateformat.info'.
+ Bash script improvement (column names are now completed).
+ Feature #1013, output error, header, footnote and debug messages on standard error.
+ Feature #1026, command line overrides are now applied before and after the
creation of the default rc file and data directory, which allows for
programmatic initialization without keystroke synthesis (thanks to Nicholas
Rabenau).
+ Feature #1033 allows UDAs to contribute to urgency (thanks to Max Muller).
+ Color error messages with a specific configuration variable 'color.error'.
Bugs
+ Fixed bug #734, which allows a sequence of IDs to work when modifying the
attribute "depends" (thanks to Andreas Kalex).
+ Applied patch for bug #919, so the holidays listed on the 'calendar' report
are sorted (thanks to Jörg Plate).
+ Fixed bug #954, which caused bulk deletions when using a UUID filter term and
the delete command (thanks to Bryce Harrington).
+ Fixed bug #959, which forces use of dateformat for annotations when using the
'edit' command (thanks to Louis-Claude Canon).
+ Fixed bug #964, where the 'projects' command showed the wrong priority labels
(thanks to Ali Mousavi).
+ Fixed bug #967, which did not properly determine character widths for UTF8
characters (thanks to Victor Roetman, Jörg Plate, Markus Kuhn).
+ Fixed bug #968, improving online documentation or dependencies (thanks to
Marek Vitek).
+ Fixed bug #972, #1018, which caused a recurrence of "7" to be interpreted as
"7secs", instead of generating an error (thanks to Vlad Zhivotnev, Stanley G).
+ Fixed bug #973, including 'urgency' in the 'export' output (thanks to Andy
Spiegl).
+ Fixed bug #986, so that the 'info' report uses the correct date format, also
applied patch to correct documentation and add unit tests (thanks to
Louis-Claude Canon).
+ Applied patch for bug #987, so that total active time does not continue to
accumulate after an active task is completed (thanks to Louis-Claude Canon).
+ Fixed bug #988, updating the documentation so that 'undo.data' usage is more
clearly stated (thanks to Louis-Claude Canon).
+ Applied patch for bug #991, which removes an obsolete consistency check
(thanks to Louis-Claude Canon).
+ Fixed bug #995, which mis-parsed UUIDs in filters as other elements (thanks
to Bryce Harrington).
+ Fixed bug #996, so that verbosity code and documentation are in agreement,
and that the 'verbose=off' works as intended (thanks to Peter De Poorter,
Louis-Claude Canon).
+ Fixed bug #997, so that output is correctly controlled by the 'affected'
verbosity token.
+ Fixed grammar in feedback string (thanks to Uli Martens).
+ Addressed valgrind complaints (thanks to Bryce Harrington).
+ Removed default configuration value for the obsolete 'annotations' setting.
+ Corrected rounding errors on burndown chart bar size calculations (thanks to
Uli Martens).
+ Fixed bug where '6 months' was interpreted as 180 days, but when rendered
was shown as '5 months' (thanks to Aikido Guy).
+ Fixed bug where ISO dates were parsed and the TZ was modified, which should
have no bearing on a Zulu time.
+ Fixed man page typos.
+ Fixed incorrect Lua API return value (thanks to Oleksii Tsai).
+ Fixed bug #956, which prevents 'ids', 'uuids' and helper commands to be used
directly by external script when a variable is override.
+ Fixed bug #960, which caused tab-completion to fail after any non-ASCII alpha
characters were used in a description (thanks to Hyde Stevenson).
+ Fixed bug #962 that rename the bash completion script in prevision of future
2.0 bash release.
+ Fixed bug #990, which prevents color precedence to be applied correctly for
tagged tasks.
+ Fixed bug #1001, which caused a segv (thanks to Bryce Harrington).
+ Fixed bug #872, #945, #1006, #1024, which caused words like the German 'im'
and 'des' in a description to be expanded into 'imask' and 'description'
(thanks to Michelle Crane, Louis-Claude Canon, Stephen Hay and Martin U).
+ Fixed bug #1008, which failed to remove tasks with the special tag '+nocal'
from the calendar report output with 'calendar.details=full' set (thanks to
Bryan Kam).
+ Fixed bug #1012, which failed to install add-on scripts with execute
permission.
+ Fixed bug #1016, which caused segfaults when importing JSON with annotations
that lack description or entry date (thanks to Nicholas Rabenau).
+ Fixed bug #1017, which exported invalid JSON when there were no tasks (thanks
to Nicholas Rabenau).
+ Fixed bug #1022, where dependencies were note released when a blocking task
was completed (thanks to Arkady Grudzinsky).
+ Fixed bug #1023, which applied default.project and default.priority during
modification (thanks to Christoph Lange).
+ Fixed bug #1028, so that UDA durations are stored in seconds, not in raw form
(thank to Uli Martens).
+ Fixed bug #1030, which defines a portable implementation of timegm and removes
the use of tm_gmtoff for non GNU/BSD platforms.
+ Fixed bug #1032, which prevented negative urgency coefficients from working
for projects and tags.
2.0.0 (2012-03-17) 03799eba9f230e48c4fa6d6ebddabe91bef7998f
# Untracked Features, biggest first.
+ autoconf eliminated.
+ New 'ids' command that returns a filtered set of task ID numbers, instead
of the actual tasks. Similarly there is a 'uuids' commands.
+ Corrected sorting to use std::stable_sort instead of std::sort, which is not
guaranteed stable (thanks to Stefan Hacker).
+ Enhanced diagnostics command.
+ Performance enhancements.
+ The old 'curses' configuration variable is now replaced by 'detection', and
has the same meaning - whether or not to auto-detect terminal size.
+ Added Czech Republic holiday files (thanks to Tomas Cech).
+ Added Japanese holiday files (thanks to Takanobu Watanabe).
+ All holiday files have been renamed to include a locale, rather than just a
country code. For example: holidays.en-US.rc.
+ Now ships with an add-on script, update-holidays.pl, which contacts
http://holidata.net, and brings the installed holiday files up to date.
+ Extension system now controlled by the 'extensions' configuration variable.
+ HTML export in the form of an external scripts export-html.pl.
+ Two additional solarized theme files, solarized-dark-256.theme and
solarized-light-256.theme (thanks to Stefan Keel).
+ New 'dependency.indicator' configuration variable for the depends.indicator
report field.
+ New 'indent.annotation' for the 'description.default' field format.
+ New 'color.label' for colorizing the report column labels.
+ The 'blanklines' configuration variable now replaced by the 'verbose' token
'blanklines'.
+ The 'verbose' configuration variable now accepts a specific list of items to
be verbose about. See taskrc(5).
+ New 'execute' command that runs external programs.
+ The default export format is now JSON.
+ The configuration variable 'json.array' determines whether 'query' command
output is enclosed by '[...]'.
+ The duration 'm' is now interpreted as 'months', not 'minutes'.
+ Urgency now has an 'age' component.
+ Improved text wrapping of UTF8 text.
+ When duplicating a parent recurring task, a new recurring parent task is
created. When a child recurring task is duplicated, a plain task is created.
+ The 'diagnostics' command now checks for duplicate UUID values in the data.
# Tracked Features, sorted by ID.
+ Added feature #52, which provides improved text-wrapping support for UTF-8
descriptions.
+ Added feature #278, which provides a more consistent command line grammar.
+ Added feature #318, which shows a full edit history in the 'info' report,
when enabled by 'journal.info=on'
+ Added feature #330, which supports the 'inverse' color attribute.
+ Added feature #340, which implements new color rules 'color.completed' and
'color.deleted'.
+ Added feature #422, #566 and #639, which allow task modifications during
'done', 'delete', 'start', 'stop' and 'duplicate' commands (thanks to Max
Muller).
+ Added feature #474, which means the 'info' command accepts filters.
+ Added feature #479, which enables filtering for the 'calendar' command.
+ Added feature #496, which allows rc.default.command to be supplemented with
a filter, so that 'task project:Home' applies the project filter to the
default command.
+ Added feature #507, which provides an alternative mechanism for inverting
attribute modifiers, in the form of new algebraic filters (thanks to Michelle
Crane).
+ Added feature #514, which allows duplication of tasks based on a generalized
filter, rather than just IDs (thanks to Peter De Poorter).
+ Added feature #523 & #659, adding 'status' as a reportable field (thanks to
Peter De Poorter and Bryce Harrington).
+ Added feature #545, #610, #611, #646, which support complex aliases.
+ Added feature #559, that causes Taskwarrior to exit if the ~/.task (or
rc.data.location override) does not exist, controlled by the
rc.exit.on.missing.db configuration variable (thanks to Sander Marechal).
+ Added feature #571, which provides descriptive feedback when a special tag
is applied.
+ Added feature #607, which allows modification of a task during annotation
(thanks to Peter De Poorter).
+ Added feature #609, which allows suppression of output labels and verbose
text.
+ Added feature #612, so that the 'info' command displays the sum of all
active (start/stop) times for a task, if the 'journal.info' configuration
variable is set (thanks to Andy Kriger).
+ Added feature #632, which allows environment variables TASKRC and TASKDATA
to override .taskrc and .task directory locations (thanks to Steve Rader).
+ Added feature #657 & #658, using the 'ids' command, tasks matching a filter
can now be modified as a group (thanks to Bryce Harrington, Eric Fluger).
+ Added feature #679, which makes color rules match project names in a left-
most fashion, like filters (thanks to ch077179).
+ Added feature #682, which allows the configuration variable 'defaultheight'
to override the assumed height of 24 lines when 'detection' is not enabled
(thanks to Steve Rader).
+ Added feature #700, which adds tab-completion of built-in tags.
+ Added feature #710, which adds an attribute modifier prefix to return the
complement of a filtered set (thanks to Dan White).
+ Added feature #714, including Belarus holidays (thanks to Alexei Romanoff).
+ Added feature #725, which provides feedback when tasks become unblocked.
+ Added feature #733, including Czech holidays (thanks to Tomas Cech).
+ Added feature #740, that allows for indented annotations, controlled by the
'indent.annotation' configuration variable (thanks to Steve Rader, Tomas
Cech).
+ Added feature #755, adding a new command 'reports' that lists reports and
their descriptions.
+ Added feature #779, which uses more relevant and consistent terms on the
'burndown' charts.
+ Added feature #800, adding a new command 'columns' that lists all the columns
available for custom reports, and includes their formatting options (thanks
to T. Charles Yun).
+ Added feature #806, which provides the ability to compare dates using the
relational operator '>=' (thanks to Miguel de Val Borro).
+ Added feature #811, which makes the 'execute' command optional, and
controlled by '#define HAVE_EXECUTE 1' in cmake.h. This allows a build
that does not have the potential security hole, in the event that taskwarrior
is run at elevated privilege, or run in the context of a web server.
+ Added feature #813, new "eoq" and "soq" dates for the end and start of
quarter. (thanks to Dave French and Paulo Almeida for the patch).
+ Added feature #827, which allows augmentation of default.command with extra
arguments, when default.command itself contains mulitple arguments (thanks to
Aikido Guy).
+ Added feature #891, which allows for leftmost partial matches of UUID values.
# Tracked Bugs, sorted by ID.
+ Fixed bug #208, which addresses various problems with recurring tasks, and
change propagation.
+ Fixed bug #403, which disambiguates certain commands involving numbers.
+ Fixed bug #447, #942, which only allowed dates to be edited if they changed
day (thanks to Michelle Crane and Owen Clarke).
+ Fixed bug #458, removing the ambiguous 'm' as a duration, leaving 'mi[nutes]'
and 'mo[nths]' requiring at least two characters for a match.
+ Fixed bug #475, which allowed a blank annotation command to be entered
(thanks to Andreas Kalex).
+ Fixed bug #511, which caused display problem on Cygwin when colored output
used the full width of the terminal. The 'avoidlastcolumn' configuration
variable forces taskwarrior to never use the last column.
+ Fixed bugs #533 and #536, which prevented having correct paths for themes
in .taskrc (thanks to Juergen Daubert)
+ Fixed bug #552, where 'rc.verbose=off' suppressed warnings (thanks to Peter
De Poorter).
+ Fixed bug #594, which broke the 'all' report with a combination of bad regex
handling and a formatting bug (thanks to Steve Rader).
+ Fixed bug #605, which gave misleading project completion percentages under
certain circumstances (thanks to Steve Rader).
+ Fixed bug #636, which causes the burndown reports to not honor the
_forcecolor=off setting (thanks to Steve Rader, Uli Martens).
+ Fixed bug #645 & #660, which prevented logically combining report filters
(thanks to Bryce Harrington).
+ Fixed bug #683, in which the 'config' command sometimes edited comments
instead of the proper line in .taskrc (thanks to Erlan Sergaziev).
+ Fixed bug #691, which was a mis-reporting of file lock state even when file
locking was turned off (thanks to Tom Duffy).
+ Fixed bug #694, which allows attributes to be modified while annotating a
task (thanks to Aikido Guy).
+ Fixed bug #696, where the command line parser was confused by a single '-'
or '+' character.
+ Fixed bug #699, truncated ssh://... during autopush after merge.
+ Fixed bug #703, where global substitutions didn't make all expected
annotation changes.
+ Fixed bug #704, which improved wording of journal messages.
+ Fixed bug #706, where deletions were recorded in the journal twice.
+ Fixed bug #707, which had inverted logic with the urgency calculation for
blocked tasks.
+ Fixed bug #708, which corrected bad math in project % complete calculations
(thanks to Michelle Crane).
+ Fixed bug #713, which fixes typos in the holidays-UK.rc file (thanks to
Alexei Romanoff).
+ Fixed bug #720, so that when the 'info' report renders total active time,
it uses a lossless format (thanks to Bernhard B).
+ Fixed bug #722, #801, so that all recurring task change propagations are
confirmed (thanks to Arkady Grudzinsky).
+ Fixed bug #723, which displayed a misleading message when the output was
truncated to a page.
+ Fixed bug #732, which fixes misleading messages and documentation for
merge/push/pull URIs (thanks to Tomas Cech).
+ Fixed bug #737, which allows wait dates after due dates, but provides a
warning (thanks to Arkady Grudzinsky).
+ Fixed bug #741, which miscounted columns widths when a table header used
unicode characters (thanks to Tomas Cech).
+ Fixed bug #744, which omitted new ID feedback for all but the first
duplicated task (thanks to Uli Martens).
+ Fixed bug #745, which allows projects names with spaces, provided the values
are quoted (thanks to Duane Waddle).
+ Applied patch for Bug #746, which added missing documentation for the 'entry'
report column (thanks to Duane Waddle).
+ Fixed bug #761, in which the 'prepend' and 'append' commands failed to
generate an error when no text was provided (thanks to Aikido Guy).
+ Fixed bug #762, #763, so that modifications to tasks are considered 'write'
commands, and therefore update shadow files (thanks to Aikido Guy).
+ Applied patch for Bug #770, which fixed a broken build (thanks to Christopher
J. Pilkington).
+ Applied patch for Bug #771, which looks for libuuid if uuid_unparse_lower is
not located (thanks to Christopher J. Pilkington).
+ Fixed bug #777, which prevented _query command output from passing JSON
validation due to missing [] around the task list.
+ Fixed bug #781, which prevented tasks with dependencies from showing on the
'next' report (thanks to Wim Schuermann).
+ Fixed bug #783, which fixes completed and deleted tasks still showing as
active (thanks to Adam Wolk).
+ Fixed bug #785, which fixes a broken build on Solaris (thanks to Owen
Clarke).
+ Fixed bug #788, which reported regex and readline versions, even though they
are not used.
+ Applied patches for bugs #792, #793, #794 and #795, so that cmake now
recognizes and builds on Solaris (thanks to Owen Clarke).
+ Applied patch for bug #797 which corrects a build problem with 'srandom'
(thanks to Owen Clarke).
+ Applied patches for bug #798 which allows out-of-source builds (thanks to
Ben Boeckel).
+ Applied documentation patch for #799, fixing a broken link in the man page
(thanks to Bryce Harrington).
+ Applied patch for #803, allowing rc.confirmation to bypass confirmation of
the deletion of a recurring task (thanks to Matt Kraai).
+ Addressed bug #804 by allowing rc.hyphenate to control whether hyphens are
inserted when long lines are broken. This may help prevent xterm from
mis-parsing URLs in task annotations, when wrapped (thanks to Yann Davin).
+ Fixed bug #807, which caused a lack of Lua to prevent tests from building
(thanks to Owen Clarke).
+ Fixed bug #808, which generated compiler warnings on Solarix (thanks to
Owen Clarke).
+ Fixed bug #817, which caused a build problem with a Core2 Duo processor on a
Mac OSX 10.6 machine. Notes updated in INSTALL file (thanks to John
Hammond).
+ Fixed bug #818, which caused partial tag matching (thanks to Joe Holloway).
+ Fixed bug #822, #845, which generated incorrect IDs (thanks to Matt Kraai and
Michelle Crane).
+ Fixed bug #823, so that recurring task change propagations are now always
confirmed (thanks to Miguel de Val Borro).
+ Fixed bug #824, which caused probles when completing recurring tasks (thanks
to Matt Kraai).
+ Fixed bug #831, which prevented some date fields from being properly parsed.
+ Fixed bug #835, which prevented hierarchical projects from being recognized.
+ Fixed bug #836, which preserves numeric arguments as-is (thanks to Matt Kraai
for the patch).
+ Fixed bug #837, which caused incorrect urgency calculations for tasks that
have completed dependencies, and problems when editing those tasks (thanks
to Matt Kraai).
+ Fixed bug #839, which caused problems when recurrence frequencies of '1m'
were used. This is an obsolete form, and should now be '1mo' (thanks to
Gour D).
+ Fixed bug #846, which prevented the default.command configuration from
handling multiple arguments (thanks to Uli Martens).
+ Fixed bug #850, which failed when newline characters were in a modified task
description. They are now stripped (thanks to Aikido Guy).
+ Fixed bug #851, which failed to recognize durations like '1day' when
filtering date attributes (thanks to Philipp Woelfel).
+ Fixed bug #856, which prevented filters on missing project from working
(thanks to Michelle Crane).
+ Fixed bug #859, which used only one color for the 'ghistory.*' report
legends (thanks to Uli Martens).
+ Fixed bug #860, which prevented lower-case priority values from being
accepted (thanks to Michelle Crane).
+ Fixed bug #862, which suppressed feedback from the 'denotate' command.
+ Fixed bug #863, which suppressed report labels with rc.verbose=off (thanks to
Michelle Crane).
+ Fixed bugs #865 and #886, which caused silent failure of unrecognized dates
(thanks to Michelle Crane).
+ Fixed bug #879, which mis-parsed escaped characters in the data file (thanks
to Michelle Crane).
+ Fixed bug #880, which listed the wrong file paths for themes (thanks to Peter
Lewis).
+ Fixed bug #892, which caused a segfault due to misuse of
std::map::operator[] (thanks to Dmitriy Samborskiy).
+ Fixed bug #897, which adds the UUID field to the 'completed' report
(thanks to Eli Lev).
+ Fixed bug #899, which displayed incorrect project completion numbers (thanks
to Paul-Gheorghe Barbu).
+ Fixed bug #901, which was preventing multiple IDs and UUIDs from being used
as a filter (thanks to Bryce Harrington).
+ Fixed bug #906, which caused problems with inverted project matching (thanks
to Uli Martens).
+ Fixed bug #910, which caused unexpected behavior when duplicating a recurring
task (thanks to Jennifer Cormier).
+ Fixed bug #917, which mis-encoded quotes (thanks to Uli Martens).
+ Fixed bug #929, which corrected argument handling for aliases (thanks to Uli
Martens).
+ Fixed bug #932, which fixed change propagation for recurring tasks (thanks to
Jennifer Cormier).
+ Fixed bug #936, which caused tests to fail on Solaris (thanks to Owen Clarke).
+ Fixed bug #937, which failed 'stat' calls on Solaris (thanks to Owen Clarke).
+ Fixed bug #938, which corrected compiler warnings on Solaris (thanks to Owen
Clarke).
+ Fixed bug #944, which caused a test to fail when it was run on an NFS share.
+ Fixed bug #946, which caused 'edit' command problems when
'dateformat.annotation' did not contain any date elements (thanks to Tuomas
Toivola).
+ Fixed bug #950, which warned about dependency chain problems during
annotation, which makes no sense (thanks to Uli Martens).
+ Fixed bug #951, which caused tag filtering to fail (thanks to Max Muller).
+ Fixed bug #952, which generated cmake warnings on Cygwin.
# Untracked Bugs, biggest first.
+ Fixed bug that required the '%YAML' prologue in a YAML import.
+ Fixed bug that showed the 'due' date, under the heading 'until' date, in the
info report (thanks to Michael McCann).
+ Fixed burndown chart y-axis height calculation (thanks to Ben Boeckel).
+ Fixed missing recurrence values in zsh completion script (thanks to Ben
Boeckel).
+ Fixed problem with DOM-checking the 'limit' pseudo-attribute (thanks to
Barton Meeks).
+ Fixed problem with duplicate 'project changed' messages (thanks to Owen
Clarke).
+ Fixed problem with non-UTC defaults for "TZ" (thanks to Owen Clarke).
+ Removed use of Lua API call that is deprecated in 5.1 and removed from 5.2
(thanks to Michal Vyskocil).
+ Fixed problem where update-holidays.pl did not properly handle UTF8 JSON
data.
+ Fixed problem where update-holidays.pl did not use the YYYYMMDD date foramt.
+ Fixed problem where urgency was not properly calculated for waiting tasks.
+ Fixed problem where 'project' was not supported as a verbosity token (thanks
to Adam Gibbins).
1.9.4 (03/03/2011) b9bae255f4fa03970eced3ac0876935271d1d7a1
+ Added burndown charts - 'burndown.daily', 'burndown.weekly',
'burndown.monthly', that use 'color.burndown.pending', 'color.burndown.started'
and 'color.burndown.done' colors.
+ Added highlighting for the 'show' command that indicates which values differ
from the defaults.
+ Added change log display to the 'info' command, controlled by the
'journal.info' configuration setting.
+ Added 'description+' to all reports with duplicate sort keys, to stabilize
the sequence.
+ Added ability to temporarily suspend GC (rc.gc:0) for a given command, which
helps scriptwriters implement shadow files externally (thanks to Sander
Marechal).
+ Added alias 'export.json' that maps to the new _query helper command.
+ Added new dark-gray-256 color theme.
+ Added feature #30, which eliminates the dependency on ncurses (thanks to
Johan Friis).
+ Added feature #41, XML export in the form of add-on script export-xml.pl,
export-xml.py and export-xml.rb.
+ Added feature #157, which implements the _query command, a helper command for
script writers, which accepts a filter like any other report, but returns
only full JSON.
+ Added feature #158, regular expression support for filters and substitutions.
+ Added feature #247, providing infinite width reports when redirecting output
to a file, by setting defaultwidth to 0.
+ Added feature #309, which sets the xterm title when reports are run,
according to the configuration variable 'xterm.title', which defaults to off.
+ Added feature #546, which is a 'count' command that counts tasks, and is
intended to help scripts that manipulate task output.
+ Added feature #567, which makes it possible to apply an offset to the first
month to be displayed in the calendar report (thanks to Michelle Crane).
+ Added feature #574, default due dates (thanks to Erlan Sergaziev).
+ Added feature #575, including Danish holidays (thanks to Irfan Siddiqui).
+ Added feature #608, and now completing a task, with journal.time turned on
will stop the task first (thanks to Andy Kriger).
+ Added feature #629, a new holiday configuration file for New Zealand
(thanks to Stephen Haywood).
+ Added feature #638, a wait:later possibility (thanks to Clément Bœsch).
+ Added feature #46, proper sortable age column.
+ Added new holiday configuration file for Italy (thanks to Nicola Busanello).
+ Added new holiday configuration file for Austria (thanks to Andreas Poisel).
+ Eliminated dependency on ncurses.
+ The dependency columns are now right-justified (thanks to Eric Fluger).
+ When a date fails to parse, the expected format is displayed, as a reminder
(thanks to Eric Fluger).
+ Fixed bug that caused the 'done' command to always exit with a non-zero
status (thanks to Steve Rader).
+ Fixed bug that caused entry, end, start and wait dates to not use report-
specific date format overrides (thanks to Eric Fluger).
+ Fixed bug #485, which caused filters of 'recur' to fail for partial matches
(thanks to T. Charles Yun).
+ Fixed bug #515, which displayed an incorrect message after duplicating a
non-existent task (thanks to Peter De Poorter).
+ Fixed bug #529, where the 'depends' attribute was not mentioned in the
task man page (thanks to Dirk Deimeke).
+ Fixed bug #530, where unrecognized periods on recurring tasks were not
being properly handled (thanks to T. Charles Yun).
+ Fixed bug #535 which omitted the holidays-NO.rc file from the packages
(thanks to Jostein Berntsen).
+ Fixed bug #537, where the man page task-sync(5) mis-specified some URIs.
+ Fixed bug #538, where some color legend items were not readable.
+ Fixed bug #539, where the man page task-color(5) contained a line that
began with a ' and was not displayed.
+ Fixed bug #540, where user names containing @s could not be parsed.
+ Fixed bug #541, which prevented sorting by 'age' column in some situations.
+ Fixed bug #542, which sorted the countdown columns incorrectly (thanks to
Michelle Crane).
+ Fixed bug #555, which caused a segfault when logging a task with a project
(thanks to Itay Perl).
+ Fixed bug #564, which allowed the deletion of parent recurring tasks (thanks
to Peter De Poorter).
+ Fixed bug #570, which used unsupported brace expansion with dash (default
/bin/sh in Ubuntu).
+ Fixed bug #579, which displayed incorrect counts when using the 'limit:N'
filter (thanks to Thomas Sattler).
+ Fixed bug #580, where reusing the merge uri for autopush failed when the
uri was taken from taskrc.
+ Applied patch to fix bug #581, in which backslashes in annotations and
descriptions caused problems (thanks to Itay Perl).
+ Fixed bug #587, where the man page needed clarification on quoting some
arguments to prevent them from being broken up by the shell (thanks to
Steve Rader).
+ Fixed bug #589, where the man page did not adequately describe searching
or usage of attribute modifiers (thanks to Steve Rader).
+ Applied patch to fix bug #590, which makes the yes/no/all/quit confirmation
prompts consistent (thanks to Steve Rader).
+ Fixed bug #595, where taskwarrior ignored changes to the wait date during
the edit command, consequently not changing task status (thanks to Eric
Fluger).
+ Fixed bug #597, which caused a missing project to be counted as a project
in the projects command (thanks to Steve Rader).
+ Fixed bug #603, which caused no feedback when task IDs were not specified
(thanks to Steve Rader).
+ Applied patch to fix bug #613, so that the summary report and the projects
command now consistently show a missing project as "(none)" (thanks to
Steve Rader).
+ Applied patch to fix bug #618, so that the configuration setting
'edit.verbose' can be set to 'no' and eliminate the help text when using
the 'task edit' command (thanks to Steve Rader).
+ Enhanced unit tests in response to bug #624 (thanks to Steve Rader).
+ Fixed bug #628, where dateformats containing spaces were not properly
parsed (thanks to Steve Rader).
+ Fixed bug #634, so that 'undo' obeys the 'confirmation' setting (thanks to
Steve Rader).
+ Fixed bug #641, where certain reports broke when 'dateformat' differed from
'dateformat.report'.
+ Fixed bug #651, which broke the edit command when a task description
contained certain tokens (like 'Due:').
+ Fixed bug #653, which caused undo information to be recorded when no changes
were made by the 'edit' command.
+ Fixed bug #654, which broke the info command when a task had no journal
entries.
+ Fixed bug #656, which caused multiple recurring child tasks to be created
(thanks to Bryce Harrington).
+ Fixed bug #671, removing the claim in the 'edit' command claims that
description text can wrap over multiple lines, because it cannot.
------ old releases ------------------------------
1.9.3 (11/08/2010) bf36b47593a33e6347425d47a36477b627310e65
+ Added feature #43, now task supports relative dates like '3wks',
'1 month', '4d' for 'due', 'wait' and 'until' dates. Essentially
durations are now allowed where dates are expected, and are treated
@@ -35,8 +733,6 @@
report.
+ Added feature #481, allowing for user control of the color rule order
of precedence via the 'rule.precedence.color' configuration variable.
+ Fixed bug #493, which made waiting, recurring tasks invisible (thanks to
Alexander Schremmer).
+ Added feature #499, giving an extra line in the message output when
doing bulk done changes (thanks to T. Charles Yun).
+ New 'depends' column for custom reports.
@@ -86,6 +782,8 @@
+ Fixed bug #480, which didn't properly support @ characters in tags. This
also now supports $ and #.
+ Fixed bug #489, which caused the filter 'tags.none:' to fail.
+ Fixed bug #493, which made waiting, recurring tasks invisible (thanks to
Alexander Schremmer).
+ Fixed bug #494, causing imported text files to ultimately lack uuids
(thanks to Elizabeth Maxson).
+ Fixed problem with command line configuration overrides that had no
@@ -97,8 +795,6 @@
+ Clarified the documentation regarding the project name (taskwarrior) and
the program name (task).
------ old releases ------------------------------
1.9.2 (7/10/2010) a13989f18eb34b3363f433c965084b6491425b9f
+ Added feature #320, so the command "task 123" is interpreted as an implicit
"task info 123" command (thanks to John Florian).

193
DEVELOPER Normal file
View File

@@ -0,0 +1,193 @@
General Statement
This file is intended to convey the current efforts, priorities and needs of
the codebase. It is for anyone looking for a way to start contributing.
While this is biased towards developers, anyone can contribute, and everyone
is encouraged to do so. Here are many ways to contribute that may not be
immediately obvious to you:
- Use Taskwarrior, become familiar with it, and make suggestions. There are
always ongoing discussions about new features and changes to existing
features. Join us in the forums.
- Join us in the #taskwarrior IRC channel on freenode.net. Some great ideas,
suggestions, testing and discussions have taken place there. It is also the
quickest way to get help, or confirm a bug.
- Review documentation: there are man pages, wiki articles, tutorials and so
on, and these may contain errors, or they may not convey ideas in the best
way. Perhaps you can help improve it.
- Take a look at the bug database, and help triage the bug list. This is a
review process that involves confirming bugs, providing additional data,
information or analysis. Bug triage is very useful and much needed.
- Fix a bug. For this you'll need C++ and Git skills, but this is one of
the largest ways you can contribute. We welcome all bug fixes, provided
the work is done well and doesn't create other problems or introduce new
dependencies.
- Add unit tests. Unit tests are possibly the most useful contributions of
all, because they not only improve the quality of the code, but prevent
future regressions. Plus, broken tests are a great motivator for us to fix
the causal bug.
- Add a feature. Well, let's be very clear about this: adding a feature is
not usually well-received, and if you add a feature and send a patch, it
will most likely be rejected. The reason for this is that there are many
efforts under way, in various code branches. There is a very good chance
that the feature you add is either already in progress, or being done in a
way that is more fitting when considering other work in progress. So if
you want to add a feature, please don't. Start by talking to us, and find
out what is currently under way or planned. You might find that we've
already rejected such a feature for some very good reasons. So please
check first, so we don't duplicate effort or waste anyone's time.
- Donate some server time to the testing effort, by participating in the
continuous integration of all changes, with our Flod software. See this
page for an example: http://tasktools.org/tinderbox
Ask us about running a Flod satellite, we're always looking for exotic
platforms to test on.
- Spread the word. Help others become more effective at managing tasks.
- Encouragement. Tell us what works for you, and what doesn't. It's all
good.
Following are specific areas that could use some attention.
Deprecated Code
This is code that is going to be phased out soon, and therefore is not worth
fixing or documenting. Don't waste your time.
- Shadow file support in core. It will migrate to become an external script.
New Code Needs
This is code that needs to be written, usually down at the C++ function/method
level.
- Need export_viz.yy script. Any language. This would have value as an
example, or template script serving as a starting-point for anyone who
needed this format.
- Need new export_xxx.yy scripts - the more the better. Any language.
- The JSON.{h,cpp} code is fast and efficient up to a point, but has a non-
linear performance curve, implying a slowdown due to fragmentation. Find
it, fix it.
- Need a function that can optimize color codes. For example, if a string
contains this:
<red>one two </red><red>three four</red>
It can be shortened to:
<red>one two three four</red>
This is only possible if there is nothing between </red> and <red> and the
colors match.
- Need an external script that can locate and correct duplicate UUIDs in the
data file, as found by 'task diag'. This should check to see if there is
a suitable UUID generator installed. This should also be careful to
properly handle recurring tasks.
- Need an external implementation equivalent to, or better than the 'shadow
file' feature. Simply because shadow file capability *can* be implemented
outside the core code, we want to make it be that way.
- Take a look at:
http://taskwarrior.org/versions/show/42
This 'extension' release is a collection of all the requested features that
lie outside of the core product, and will be implemented as external scripts
by anyone who wishes to participate.
Documentation Needed
Various forms of documentation that are needed, or are in need of review or
update.
- Wiki/How-To: Date Handling
- Wiki/How-To: Aliases, particularly new enhanced aliases
- Wiki/Features: All sections
Unit Tests Needed
There are always more unit tests needed. More specifically, better unit tests
are always needed. The convention is that there are four types of unit test:
1. High level tests that exercise large features, or combinations of commands.
For example, dependencies.t runs through a long list of commands that test
dependencies, but do so by using 'add', 'modify', 'done' and 'delete'.
2. Regression tests that ensure certain bugs are fixed and stay fixed. These
tests are named bug.NNN.t where NNN refers to the Redmine issue number.
While it is not worth creating tests for small fixes like typos, it is for
changes to the logic.
3. Small feature tests. When small features are added, we would like small,
low-level feature tests named feature.NNN.t, where NNN is the Redmine
issue number.
4. Code tests. These are tests written in C++ that exercise C++ objects, or
function calls. These are the lowest level tests. It is important that
these kind of tests be extensive and thorough, because the software depends
on this code the most.
The tests are mainly written in Perl, and all use TAP. Here is how to get the
code and run the test suite:
git clone git://tasktools.org:task.git
cd task.git
cmake .
make
make test
Alternately, you go to the test directory and run the following:
cd task.git/test
make
make test
Either way, a TAP file 'all.log' is written that contains all test results.
Once this file is created, you can see the failing tests using this script:
cd task.git/test
./problems
If you make a habit of running the test suite, consider downloading the
vramsteg utility to show a colorful progress bar, from:
git://tasktools.org/vramsteg.git
Tests needed:
- The basic.t unit tests are a misnomer, and should be either removed or
renamed. We have long talked of 'basic functionality' that includes add,
delete, done, and list commands. We need unit tests that prove that basic
functionality is working, and the file containing them should be called
basic.t.
- None of the current unit tests remove the 'extensions' directory, and they
all should.
- Test propagation of modifications to recurring tasks.
- Test regex support.
- Need unit tests for each bug in the issue list, if suitable.
- We have bugs in the unit tests that only manifest on days such as December
31st. Clearly there is some bad date math going on, most likely in the
tests themselves, rather than in Taskwarrior.
* Note that running the unit tests requires the Perl JSON module to be
installed.
Note that all new unit tests should follow the test/template.t standard.
Work in Progress
Things that are currently in flux, which is another way of saying leave it
alone while it is being worked on.
- Command line parser (A3).
- Expression evaluation (E9).
- All columns/Col*::validate methods.
- New columns/Col*::modify methods.
Current Codebase Condition
'master' branch:
- 2.2.0 Current release, locked.
'2.2.0' branch:
- Current release. Locked.
'2.3.0' branch:
- Current development branch with sync features, and new tasksh.
---
2012-05-12 Added general statement about how to contribute.
2013-03-31 Updated branch info.

200
EXPOSITION Normal file
View File

@@ -0,0 +1,200 @@
Startup
On startup, main creates a global Context object, then calls the
Context::initialize and Context::run methods.
Context is a large object that holds all task information, both in terms of
the task data, and intermediate run-time data. Having one global Context
object means we don't have 50 global variables. Context is therefore just a
big global bucket of data.
Context::initialize sets up all the data and processes the command line. The
initialization process is a big chicken-and-egg problem, because the command
line depends on configuration (aliases) and the command line can force a
reload of configuration (rc:foo). This is solved by look-ahead: the command
line is scanned for 'rc:xxx' and 'rc.data.location:xxx' arguments, then later
for overrides.
The Context::run method handles all the debug output and exceptions. Its
main purpose is to set up exception handling and call Context::dispatch.
Command Line Parsing
Command line parsing is difficult because of all the ambiguity. The solution
is to make several passes over the command line. For example, the task
command determines whether subsequent arguments are interpreted as part of a
filter or set of modifications.
Dispatch
Dispatch is simple: once the command line is parsed, the command is used to
look up a command object, then call its execute method.
Context stores an associative map of command object pointers indexed by a
string. This means the 'done' string is an index to the CmdDone object that
implements the functionality.
Command Objects
Every task command is implemented by a command object. The command object
provides metadata, usage and one-line help in addition to the ::execute method
that implements the command.
Column Objects
There is a 1:1 correspondence between attributes stored in the data files and
the columns that may be reported. These are represented by column objects,
which are responsible for validating input, measuring space needed according
to various formats, and for rendering data for reports.
TDB2
The TDB2 object is a layered, transactioned I/O manager. Its purpose is to
isolate code from file I/O, locking, synching, and parsing details. It is
also responsible for minimizing reads, writes and parsing of data files.
All input is assumed to be UTF8. All stored data is UTF8.
GC
Garbage Collection is the process that moves tasks between the pending.data
and completed.data files. It is also responsible for waking tasks out of the
wait state.
Every command that displays task IDs will cause a GC to be run first, which
minimizes the number of changes necessary to the task IDs. This means that
when a report shows task IDs, those IDs will remain valid while subsequent
write commands are issued. The next report run may show different IDs.
Minimizing the size of pending.data is important for performance, because it
is the file that is accessed most.
Files
The data files used are all kept in the rc.data.location directory, which
defaults to ~/.task. The files are:
pending.data
completed.data
undo.data
backlog.data
synch.key
The pending.data file aspires to contain only pending, waiting and recurring
tasks, but this is only correct after a GC, and before any tasks are modified.
This file tends to be relatively stable in size, reflecting the length of the
task list.
The completed.data file accumulates data over time, and grows unbounded.
The undo.data file accumulates changes over time, and grows unbounded. It
provides all the necessary metadata to support the 'undo' command and the
'merge' command.
The backlog.data file contains an accumulated set of changes that have not
been transmitted to the task server. It grows unbounded between 'synch'
commands.
The synch.key file contains a synch receipt that is used to optimize synch
operations.
Filter
A filter is simply a set of command line arguments, but is only a subset of
the complete command line. These arguments (Arg objects) are grouped into
a set by the A3 (Args) object according to whether the command found is a
read or write command.
There is a Command::filter method for applying a filter to a set of tasks,
yielding a result set. It does this by creating an expression from the
filter using the E9 object, then evaluating the expression for each task,
such that the result set contains only tasks for which the expression
evaluates to Boolean true.
Sorting
Sorting is performed on a set of tasks. More specifically, the list that is
sorted is a set of numeric indexes to tasks that are stored in a separate
list. This minimizes the amount of data copying involved to just integers
rather than Task objects, but at the expense of one level of indirection.
Memory fragmentation is a bigger problem than the performance of vector
indexing.
The actual sorting is performed by std::stable_sort, but the compare function
is custom.
Render
There are two rendering objects, ViewTask and ViewText. These both have the
same tabular grid rendering capabilities. ViewText maintains a 2D vector of
strings to contain the data to be rendered, so it is used for things like the
help command output. ViewTask does not copy data, but assumes all data is
stored externally in a vector of Tasks, which minimizes data copying.
ViewTask contains projection data in the form of a set of Column objects that
represent the X axis. The Y axis is represented by a vector of tasks.
The rendering process is complex. It involves dynamically setting column
widths based on (1) available terminal width, (2) the columns to be included
in the output, (3) ability to wrap text for certain columns and (4) the size
of the data to be rendered, which involves added complexity when UTF8 is used.
The Column objects determine minimum width for a column and the maximum width
which then allows ViewT* to make choices.
Test Suite
A strong and diverse test suite is critical to the successful release of any
software. With the complex command set and its myriad permutations, a test
suite is the only way to ensure quality levels, and guarantee that big changes
are sound.
It is intended that the test suite continues growing, mostly adding more
regression tests (bug.*.t) and more feature tests (feature.*.t). The test are
mostly written in Perl, and utilize the Test::More module to generate TAP
output. Some tests are written in C++ and also generate TAP.
There are currently over 5,000 unit tests, that take a minute or two to run
in total.
Taskwarrior uses flod software to automate continuous integration across
many platforms. Code changes are automatically detected, propagated, built and
tested on a variety of participating platforms. Grid testing results are here:
http://tasktools.org/tinderbox/taskwarrior.html
When making code changes, it is important that the test suite be run to verify
that functionality was not broken.
Debugging
The 'rc.debug=on' override provides the following additional information which
is useful during debugging:
- Timing of various components (used to generate the data for the charts at
http://tasktools.org/performance).
- Data load times.
- Terminal size, color capabilities.
- Command line parsing steps, shown in colorful diagrams.
- TDB2 layer and I/O information.
Patches
Patches are encouraged and welcomed. Either attach them to the appropriate
Redmine issue, or send them to support@taskwarrior.org. A good patch:
- Maintains the MIT license, and does not contain code lifted from other
sources.
- Precisely addresses one issue only.
- Doesn't break unit tests.
- Doesn't introduce dependencies.
- Is accompanied by unit tests, where appropriate.
- Is accompanied by documentation changes, where appropriate.
- Conforms to the prevailing coding standards - in other words, it should
fit right in with the existing code.
A patch may be rejected for not following the above guidelines, and more.
Bad patches may be accepted and modified depending on work load and mood. It
is possible that a patch may be rejected because it conflicts in some way with
plans or upcoming changes.
---

289
INSTALL
View File

@@ -1,234 +1,149 @@
Installation Instructions
*************************
-------------------------
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006 Free Software Foundation, Inc.
Please follow the instructions below to build task with cmake.
Pre-requisites
--------------
You will need the CMake build system installed in order to build taskwarrior
from source.
More information on cmake can be obtained at http://cmake.org
It is HIGHLY RECOMMENDED that you build with a library that provides uuid_*
functions, such as libuuid.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
------------------
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package.
Briefly, these shell commands will unpack, build and install taskwarrior:
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
$ tar xzf task-X.Y.Z.tar.gz [1]
$ cd task-X.Y.Z [2]
$ cmake . [3]
$ make [4]
$ sudo make install [5]
$ cd .. ; rm -r task-X.Y.Z [6]
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.
These commands are explained below:
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
1. Unpacks the source tarball. This creates the directory task-X.Y.Z,
containing all the code.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
2. Change directory to the root of the distribution.
The simplest way to compile this package is:
3. Invokes CMake to scan for dependencies and machine-specific details, then
generate the makefiles. This may take a minute.
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
4. Builds taskwarrior. This may take a minute.
Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.
5. Installs the program, documentation and other data files.
2. Type `make' to compile the package.
6. Removes the temporary directory.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
Build and configurations options
--------------------------------
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
You can customize the configuration run with cmake variables. This will modify
the installation process:
Compilers and Options
=====================
To change the installation directory you use the following configuration
variable:
Some systems require unusual options for compilation or linking that the
`configure' script does not know about. Run `./configure --help' for
details on some of the pertinent environment variables.
$ cmake -DCMAKE_INSTALL_PREFIX=<path-to-installation-dir> .
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
cmake configuration variables are applied with the -D option and consist of a
<name> and a <value>:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
$ cmake -D<name>=<value> .
*Note Defining Variables::, for more details.
Four more variables can customize the installation process. The following table
lists them and their defaults plus the CMAKE_INSTALL_PREFIX:
Compiling For Multiple Architectures
====================================
CMAKE_INSTALL_PREFIX /usr/local
TASK_BINDIR bin
TASK_DOCDIR share/doc/task
TASK_MAN1DIR share/man/man1
TASK_MAN5DIR share/man/man5
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
The corresponding TASK_* variables will be combined with CMAKE_INSTALL_PREFIX to
get absolute installation directories:
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
CMAKE_INSTALL_PREFIX/TASK_BINDIR /usr/local/bin
CMAKE_INSTALL_PREFIX/TASK_DOCDIR /usr/local/share/doc/task
CMAKE_INSTALL_PREFIX/TASK_MAN1DIR /usr/local/share/man/man1
CMAKE_INSTALL_PREFIX/TASK_MAN5DIR /usr/local/share/man/man5
Installation Names
==================
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX'.
Uninstallation
--------------
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
To uninstall taskwarrior, you need the Makefiles, so if you deleted them in
step 7 above, they must first be regenerated by following steps [1], [2] and
[3]. Then simply run:
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
$ sudo make uninstall TODO TODO TODO -- cmake doesn't include uninstall
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Taskwarrior Build Notes
-----------------------
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
Taskwarrior has dependencies that are detected by cmake in almost all cases, but
there are situations and operating systems that mean you will need to offer a
little help.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
If taskwarrior will not build on your system, first take a look at the Operating
System notes below. If this doesn't help, then go to the Troubleshooting
section, which includes instructions on how to contact us for help.
Specifying the System Type
==========================
There may be some features `configure' cannot figure out automatically,
but needs to determine by the type of machine the package will run on.
Usually, assuming the package is built to be run on the _same_
architectures, `configure' can figure that out, but if it prints a
message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
Operating System Notes
----------------------
CPU-COMPANY-SYSTEM
Cygwin
If 'make install' fails when writing to the /usr/local/share/ directory,
this may be because your current login doesn't have permission to write
to the Windows directory containing your Cygwin installation. Either
login to Windows as an Administrator and try the 'make install' process
again, or reinstall Cygwin under your normal Windows login.
where SYSTEM can have one of these forms:
OS KERNEL-OS
Darwin, 32bit
The taskwarrior packages will not work on a 32-bit OSX installation on Core
Duo hardware. You will need to build Taskwarrior from source, and use this
configure command:
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
cmake -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 -DCMAKE_EXE_LINKER_FLAGS=-m32 .
If you are _building_ compiler tools for cross-compiling, you should
use the option `--target=TYPE' to select the type of system they will
produce code for.
See:
http://taskwarrior.org/issues/817
http://stackoverflow.com/questions/3261909/build-32bit-on-64-bit-linux-using-a-configure-script
http://stackoverflow.com/questions/2617508/cmake-gcc-cuda-and-m32-wtf
http://stackoverflow.com/questions/6077414/cmake-how-to-set-the-ldflags-in-cmakelists-txt
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
Sharing Defaults
================
Troubleshooting
---------------
If you want to set default values for `configure' scripts to share, you
can create a site shell script called `config.site' that gives default
values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
If you've recently made changes to dependencies (by reinstalling them, for
example) be sure to rerun 'cmake .' before trying to execute 'make' again.
Defining Variables
==================
CMake will run and locate all the necessary pieces for the build, and create
a Makefile. There may be errors and warnings when running CMake, or there
may be compiler errors and warnings when running 'make'. Sometimes you will run
CMake with no reported problems, and the build will fail later. This is
almost always because CMake is mistaken about some assumption.
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
If a build does not succeed, please send the contents of the 'CMakeCache.txt'
and 'CMakeFiles/CMakeOutput.log' files to support@taskwarrior.org, or post a
message in the support forums at taskwarrior.org along with the information.
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf bug. Until the bug is fixed you can use this workaround:
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
`configure' recognizes the following options to control how it operates.
`--help'
`-h'
Print a summary of the options to `configure', and exit.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.
If CMake runs but taskwarrior does not build, please send the contents of the
above files as well as a transcript from the build, which is not written to a
file and must be captured from the terminal.
---

23
LICENSE Normal file
View File

@@ -0,0 +1,23 @@
taskwarrior - a command line task list manager.
Copyright 2006-2013, Paul Beckingham, Federico Hernandez.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
http://www.opensource.org/licenses/mit-license.php

View File

@@ -1,24 +0,0 @@
SUBDIRS = src
dist_man_MANS = doc/man/task.1 doc/man/taskrc.5 doc/man/task-tutorial.5 doc/man/task-faq.5 doc/man/task-color.5 doc/man/task-sync.5
#docdir = $(datadir)/doc/${PACKAGE}-${VERSION}
doc_DATA = AUTHORS ChangeLog COPYING NEWS README
EXTRA_DIST = INSTALL README.build
bashscriptsdir = $(docdir)
nobase_dist_bashscripts_DATA = scripts/bash/task_completion.sh
zshscriptsdir = $(docdir)
nobase_dist_zshscripts_DATA = scripts/zsh/_task
vimscriptsdir = $(docdir)
nobase_dist_vimscripts_DATA = scripts/vim/README scripts/vim/ftdetect/task.vim scripts/vim/syntax/taskdata.vim scripts/vim/syntax/taskedit.vim scripts/vim/syntax/taskrc.vim
i18ndir = $(docdir)
nobase_dist_i18n_DATA = i18n/strings.de-DE i18n/strings.en-US i18n/strings.es-ES i18n/strings.fr-FR i18n/strings.nl-NL i18n/strings.sv-SE i18n/tips.de-DE i18n/tips.en-US i18n/tips.sv-SE
rcfiledir = $(docdir)/rc
dist_rcfile_DATA = doc/rc/holidays-CA.rc doc/rc/holidays-DE.rc doc/rc/holidays-ES.rc doc/rc/holidays-FR.rc doc/rc/holidays-NL.rc doc/rc/holidays-SE.rc doc/rc/holidays-UK.rc doc/rc/holidays-US.rc doc/rc/dark-16.theme doc/rc/dark-256.theme doc/rc/light-16.theme doc/rc/light-256.theme doc/rc/dark-blue-256.theme doc/rc/dark-green-256.theme doc/rc/dark-red-256.theme doc/rc/dark-violets-256.theme doc/rc/dark-yellow-green.theme

105
NEWS
View File

@@ -1,90 +1,57 @@
New Features in taskwarrior 1.9.3
New Features in taskwarrior 2.2.0
- Start and stop times for a task can now be recorded as annotations.
- Special tags 'nocolor', 'nocal' and 'nonag'.
- Now supports durations in dates, such as:
$ task ... due:4d
$ task ... due:3wks
- 'sow', 'som' and 'soy' are now accepted in dates. 'soww' and 'eoww' are
now synonyms for 'sow' and 'eow' (ww = working week) 'socw' and 'eocw'
refer to the calendar week (starting Sunday/Monday and
- Now supports the beginning of the week, month and year in dates.
- Now supports 'now' as a date/time.
- Now defines an overdue task as being one second after the due date,
instead of the day after the due date.
- Import and export of YAML 1.1, including round-trip capability, and
detection of duplicate imports.
- New merge capability for syncing task data files.
- New push capability for distributing merged changes.
- New pull capability for copying data files from a remote location.
- When completing or modifying a task, the project status is displayed.
- The 'info' report is now colorized.
- Certain characters (#, $, @) are now supported for use in tags.
- User-controlled color rule precedence.
- Two new color themes.
- New holiday files for US, SE, DE, CA, FR, UK, ES, NL and NO localizations.
- Task dependencies, and new 'blocked' and 'unblocked' reports for list
those tasks.
- Bash autocompletion now works with aliases.
- Virtual tags provide a tag query interface to more complex states. See the
'man task' page for details.
- Deprecated 'fg' and 'bg' attributes removed. Any residual use of those will
appear as orphaned UDAs.
- Tasks now have a 'modified' attribute, which indicates the last time, if at
all, that they were modified.
- Statistics now report total number of blocked and blocking tasks.
- The 'columns' command now supports search term for the column name.
- New date shortcuts, 'socm' and 'eocm', meaning start and end of current
month.
- Improved error messages for 'push' and 'pull' transport problems.
Please refer to the ChangeLog file for full details. There are too many to
list here.
New commands in taskwarrior 2.2.0
New commands in taskwarrior 1.9.3
- New '_aliases' helper command lists aliases for completion purposes.
- New 'task color legend' command will show samples of all the defined colors
and color rules from your .taskrc and theme.
- New 'task export.yaml' command will export YAML 1.1, which can then be
imported via 'task import <file>'.
- New 'task merge <url>' command that can merge the local and an undo.data
file from another taskwarrior user, to sync across machines, for example.
- New 'task push <url>' command to distribute merged changes.
- New 'task pull <url>' command to copy data files from a remote location.
- New 'diagnostics' command to aid bug reporting.
New configuration options in taskwarrior 2.2.0
New configuration options in taskwarrior 1.9.3
- New color rule 'color.uda.<uda-name>'.
- Added the configuration variable 'print.empty.columns', which defaults to
'no'. This allows more efficient use of horizontal space.
- Any ~ characters in a default .taskrc file are preserved.
- journal.time, journal.time.start.annotation, journal.time.stop.annotation
ending Saturday/Sunday).
- Color rule precedence can now be explicitly set with the configuration
variable rule.precedence.color. Try "task show rule.pre" to show the
default settings.
- merge.autopush to control whether pushing after merging is automated.
- merge.*.uri to configure source locations for the merge command
(e.g. merge.default.uri).
- push.*.uri to configure target locations for the push command.
- pull.*.uri to configure source locations for the pull command.
- dependency.confirm controls whether dependency chain repair needs to be
confirmed.
- dependency.reminder controls whether the user is nagged about dependency
chain violations.
Newly deprecated features in taskwarrior 1.9.3
- entry_time, start_time and end_time are now synonyms for the entry, start
and end fields. Recent enhancements to date formatting render these fields
obsolete. The 'task show' command warns of the use of these deprecated
fields. The synonyms will be removed in a future version of taskwarrior.
Newly deprecated features in taskwarrior 2.2.0
- The bash completion script no longer expands IDs after 'depends:'.
(Such expansion required running gc() which is not correct.)
- The incomplete support for Lua extensions was removed.
---
Taskwarrior has been built and tested on the following configurations:
* OS X 10.6 Snow Leopard and 10.5 Leopard
* Fedora 13 Goddard, 12 Constantine
* Ubuntu 10.10 Maverick Meerkat, 10.04 Lucid Lynx
* Debian Sid
* Slackware 12.2
* OS X 10.8 Mountain Lion and 10.7 Lion
* Fedora 18 Spherical Cow and 17 Beefy Miracle
* Ubuntu 12.10 Quantal Quetzal and 12.04 Precise Pangolin
* Debian 6.0 Squeeze (stable)i and 5.0 Lenny (oldstable) plus Sid (testing)
* Slackware 13.37
* Arch Linux
* Gentoo Linux
* Sabayon Linux
* SliTaz Linux
* CRUX Linux
* SuSE 11.3
* SuSE
* derivatives/customizations/flavors of the above Linux distributions
* Solaris 10 and 8
* OpenBSD 4.5
* OpenBSD
* FreeBSD
* Cygwin 1.7 and 1.5
* Haiku R1/alpha1
* NetBSD
* Cygwin 1.7
---

18
README
View File

@@ -1,3 +1,18 @@
*** Disclaimer ***
*** during ongoing ***
*** development ***
The development branch is a work in progress and may not pass all quality
tests, therefore it may harm your data. While we welcome bug reports from
the development branch, we do not guarantee proper or timely fixes.
Broken functionality may arise from ongoing development work.
Make proper backups.
Be aware that using the development branch involves risks.
---
Thank you for taking a look at taskwarrior!
@@ -21,3 +36,6 @@ Please send your support questions and code patches to:
Consider joining taskwarrior.org and participating in the future of taskwarrior.
---
Taskwarrior is released under the MIT license. For details check the LICENSE
file.

View File

@@ -1,98 +0,0 @@
Taskwarrior Build Notes
----------------
Taskwarrior 1.9 has dependencies that are detected by the configure program in
almost all cases, but there are situations and operating systems that mean you
will need to offer configure a little help.
If taskwarrior will not build on your system, first take a look at the Operating
System notes below. If this doesn't help, then go to the Troubleshooting
section, which includes instructions on how to contact us for help.
Operating System Notes
----------------------
Cygwin 1.7
Building taskwarrior on Cygwin 1.7 requires a configure option:
./configure --with-ncurses-inc=/usr/include/ncurses
This is because the ncurses include files are in a different location to
Cygwin 1.5.
Haiku Alpha/R1
Taskwarrior must be built with gcc version 4.x, so make sure you run:
$ setgcc gcc4
To switch from gcc 2.95 to gcc 4.x.
Troubleshooting
---------------
In most cases, it is sufficient to run the configure program like this:
$ ./configure
Configure will run and locate all the necessary pieces for the build, and create
a Makefile. There may be errors and warnings when running configure, or there
may be compiler errors and warnings when running 'make'. Sometimes you will run
configure with no reported problems, and the build will fail later. This is
almost always because configure is mistaken about some assumption.
The configure program can accept several options that help with its ability to
locate and use the ncurses library. They are:
--with-ncurses
This option tells configure that no matter what it thinks, ncurses is
definitely on this system and should be enabled. If needed, this option
probable needs to be accompanied by the next two options.
--with-ncurses-inc=/usr/include
If configure cannot find ncurses header files, this option will tell it
exactly where to look. The path specified in this example is the default,
so that probably won't help you. The path should be the directory in which
the file 'ncurses.h' resides. Here are some possible values to try:
/usr/include (the default shown above)
/usr/include/ncurses
/usr/local/include
/usr/local/include/ncurses
This should cover most systems, but new variations keeps cropping up.
--with-ncurses-lib=/usr/lib
If configure cannot find the ncurses library, this option will tell it
exactly where to look. The path specified in this example is the default,
so that probably won't help you. The path should be the directory in which
the file 'libncurses.a' (or your system's equivalent) resides. Here are
some possible values to try:
/usr/lib
/usr/local/lib
This should cover most systems, but new variations keeps cropping up.
--without-ncurses
This disables ncurses support in taskwarrior, and should really be used as a
last resort. We know of no systems where this is needed.
If trying these options does not succeed, please send the contents of the
'config.log' files to support@taskwarrior.org, or post a message in the support
forums at taskwarrior.org along with the information.
If configure runs, but taskwarrior does not build, when ideally you would send
both the contents of config.log, and a transcript from the build, which is not
written to a file, and must be captured from the terminal.
---

67
cmake.h.in Normal file
View File

@@ -0,0 +1,67 @@
/* cmake.h.in. Creates cmake.h during a cmake run */
#define L10N // Localization complete.
/* Package information */
#define PACKAGE "${PACKAGE}"
#define VERSION "${VERSION}"
#define PACKAGE_BUGREPORT "${PACKAGE_BUGREPORT}"
#define PACKAGE_NAME "${PACKAGE_NAME}"
#define PACKAGE_TARNAME "${PACKAGE_TARNAME}"
#define PACKAGE_VERSION "${PACKAGE_VERSION}"
#define PACKAGE_STRING "${PACKAGE_STRING}"
/* Installation details */
#define TASK_RCDIR "${CMAKE_INSTALL_PREFIX}/${TASK_DOCDIR}/rc"
/* Localization */
#define PACKAGE_LANGUAGE ${PACKAGE_LANGUAGE}
#define LANGUAGE_EN_US ${LANGUAGE_EN_US}
#define LANGUAGE_ES_ES ${LANGUAGE_ES_ES}
#define LANGUAGE_DE_DE ${LANGUAGE_DE_DE}
#define LANGUAGE_FR_FR ${LANGUAGE_FR_FR}
/* git information */
#cmakedefine HAVE_COMMIT
/* cmake information */
#cmakedefine HAVE_CMAKE
#define CMAKE_VERSION "${CMAKE_VERSION}"
/* Compiling platform */
#cmakedefine LINUX
#cmakedefine DARWIN
#cmakedefine CYGWIN
#cmakedefine FREEBSD
#cmakedefine OPENBSD
#cmakedefine NETBSD
#cmakedefine HAIKU
#cmakedefine SOLARIS
#cmakedefine UNKNOWN
/* Found the pthread library */
#cmakedefine HAVE_LIBPTHREAD
/* Found the readline library */
#cmakedefine HAVE_READLINE
#cmakedefine HAVE_LIBREADLINE
/* Found random */
#cmakedefine HAVE_RANDOM
/* Found srandom */
#cmakedefine HAVE_SRANDOM
/* Found tm_gmtoff */
#cmakedefine HAVE_TM_GMTOFF
/* Found timegm */
#cmakedefine HAVE_TIMEGM
/* Found the uuid library */
#cmakedefine HAVE_UUID
#cmakedefine HAVE_UUID_UNPARSE_LOWER
/* Undefine this to eliminate the execute command */
#define HAVE_EXECUTE 1

5
commit.h.in Normal file
View File

@@ -0,0 +1,5 @@
/* commit.h.in. Creates commit.h during a cmake run */
#define L10N // Localization complete.
/* git information */
#define COMMIT "${COMMIT}"

View File

@@ -1,205 +0,0 @@
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
AC_INIT(task, 1.9.3, support@taskwarrior.org)
# Source type.
AC_PROG_CXX
AC_PROG_CC
AC_LANG(C++)
# Local copies for modification and later AC_SUBST.
CFLAGS="${CFLAGS=}"
CXXFLAGS="${CXXFLAGS=}"
# this macro is used to get the arguments supplied
# to the configure script (./configure --enable-debug)
# Check if we have enable debug support.
AC_MSG_CHECKING(whether to enable debugging)
debug_default="no"
AC_ARG_ENABLE(debug, [ --enable-debug=[no/yes] turn on debugging
[default=$debug_default]],, enable_debug=$debug_default)
if test "x$enable_debug" = "xyes"; then
CFLAGS="$CFLAGS -Wall -pedantic -ggdb3 -DDEBUG"
CXXFLAGS="$CXXFLAGS -Wall -pedantic -ggdb3 -DDEBUG"
AC_MSG_RESULT(yes)
else
CFLAGS="$CFLAGS -Wall -pedantic -O3"
CXXFLAGS="$CXXFLAGS -Wall -pedantic -O3"
AC_MSG_RESULT(no)
fi
# Check for OS.
OS=`uname|sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'|cut -c 1-5`
if test "$OS" = "sunos"; then
AC_MSG_NOTICE([OS Solaris detected])
AC_DEFINE([SOLARIS], [], [Compiling on Solaris])
elif test "$OS" = "darwi"; then
AC_MSG_NOTICE([OS Darwin detected])
AC_DEFINE([DARWIN], [], [Compiling on Darwin])
elif test "$OS" = "cygwi"; then
AC_MSG_NOTICE([OS Cygwin detected])
AC_DEFINE([CYGWIN], [], [Compiling on Cygwin])
elif test "$OS" = "openb"; then
AC_MSG_NOTICE([OS OpenBSD detected])
AC_DEFINE([OPENBSD], [], [Compiling on OpenBSD])
elif test "$OS" = "haiku"; then
AC_MSG_NOTICE([OS Haiku detected])
AC_DEFINE([HAIKU], [], [Compiling on Haiku])
elif test "$OS" = "freeb"; then
AC_MSG_NOTICE([OS FreeBSD detected])
AC_DEFINE([FREEBSD], [], [Compiling on FreeBSD])
elif test "$OS" = "linux"; then
AC_MSG_NOTICE([OS Linux detected])
AC_DEFINE([LINUX], [], [Compiling on Linux])
else
AC_MSG_NOTICE([OS not detected])
AC_DEFINE([UNKNOWN], [], [Compiling on Unknown])
fi
# ncurses enabled by default.
AC_ARG_WITH([ncurses],
[AS_HELP_STRING([--without-ncurses], [disable support for ncurses])],
[with_ncurses=no],
[with_ncurses=yes])
AC_ARG_WITH([ncurses-inc],
[AS_HELP_STRING ([--with-ncurses-inc=DIR], [ncurses include files are in DIR])],
[ncurses_inc=$withval],
[ncurses_inc=''])
AC_ARG_WITH([ncurses-lib],
[AS_HELP_STRING ([--with-ncurses-lib=DIR], [ncurses lib files are in DIR])],
[ncurses_lib=$withval],
[ncurses_lib=''])
if test "x$with_ncurses" = "xyes" ; then
AC_DEFINE([HAVE_LIBNCURSES], [1], [Defined if you have libncurses])
if test -n "$ncurses_inc"; then
CFLAGS="$CFLAGS -I$ncurses_inc"
CXXFLAGS="$CXXFLAGS -I$ncurses_inc"
fi
if test -n "$ncurses_lib"; then
LDFLAGS="$LDFLAGS -L$ncurses_lib"
fi
AC_CHECK_LIB([ncurses],[main])
fi
# Readline enabled by default.
#AC_ARG_WITH([readline],
# [AS_HELP_STRING([--without-readline], [disable support for readline])],
# [with_readline=no],
# [with_readline=yes])
#
#AC_ARG_WITH([readline-inc],
# [AS_HELP_STRING ([--with-readline-inc=DIR], [readline include files are in DIR])],
# [readline_inc=$withval],
# [readline_inc=''])
#
#AC_ARG_WITH([readline-lib],
# [AS_HELP_STRING ([--with-readline-lib=DIR], [readline lib files are in DIR])],
# [readline_lib=$withval],
# [readline_lib=''])
#
#if test "x$with_readline" = "xyes" ; then
# AC_DEFINE([HAVE_LIBREADLINE], [1], [Defined if you have libreadline])
# if test -n "$readline_inc"; then
# CFLAGS="$CFLAGS -I$readline_inc"
# CXXFLAGS="$CXXFLAGS -I$readline_inc"
# fi
#
# if test -n "$readline_lib"; then
# LDFLAGS="$LDFLAGS -L$readline_lib"
# fi
#
# AC_CHECK_LIB([readline],[main])
#fi
# Lua disabled by default.
AC_ARG_WITH([lua],
[AS_HELP_STRING([--with-lua], [enable support for lua])],
[with_lua=yes],
[with_lua=no])
AC_ARG_WITH([lua-inc],
[AS_HELP_STRING ([--with-lua-inc=DIR], [lua include files are in DIR])],
[lua_inc=$withval],
[lua_inc=''])
AC_ARG_WITH([lua-lib],
[AS_HELP_STRING ([--with-lua-lib=DIR], [lua lib files are in DIR])],
[lua_lib=$withval],
[lua_lib=''])
if test "x$with_lua" = "xyes" ; then
AC_DEFINE([HAVE_LIBLUA], [1], [Defined if you have liblua])
if test -n "$lua_inc"; then
CFLAGS="$CFLAGS -I$lua_inc"
CXXFLAGS="$CXXFLAGS -I$lua_inc"
fi
if test -n "$lua_lib"; then
LDFLAGS="$LDFLAGS -L$lua_lib"
fi
AC_CHECK_LIB([lua],[main])
fi
# Allow the changes above to take effect.
AC_SUBST(CFLAGS)
AC_SUBST(CXXFLAGS)
AC_SUBST(LDFLAGS)
# Now the smaller details.
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([src/main.cpp])
AC_CONFIG_HEADER([auto.h])
# Checks for libraries.
AC_CHECK_LIB(pthread,pthread_create)
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([stdlib.h sys/file.h sys/stat.h sys/time.h unistd.h])
AC_CHECK_HEADERS([sstream string vector map])
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_CONST
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_STRUCT_TM
# Checks for library functions.
AC_FUNC_MKTIME
AC_FUNC_SELECT_ARGTYPES
AC_CHECK_FUNCS([select])
AC_CHECK_FUNC(uuid_unparse_lower, [AC_DEFINE([HAVE_UUID], [1], [Found uuid_unparse_lower])])
AC_CHECK_FUNC(random, [AC_DEFINE([HAVE_RANDOM], [1], [Found random])])
AC_CHECK_FUNC(srandom, [AC_DEFINE([HAVE_SRANDOM], [1], [Found srandom])])
# Generate the Makefiles.
AC_CONFIG_FILES([Makefile src/Makefile])
AC_OUTPUT
# End.

584
depcomp
View File

@@ -1,584 +0,0 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2006-10-15.18
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
# Foundation, Inc.
# 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, 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.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by `PROGRAMS ARGS'.
object Object file output by `PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputing dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
## the command line argument order; so add the flags where they
## appear in depend2.am. Note that the slowdown incurred here
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
for arg
do
case $arg in
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
*) set fnord "$@" "$arg" ;;
esac
shift # fnord
shift # $arg
done
"$@"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> $depfile
echo >> $depfile
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> $depfile
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts `$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
"$@" -M
fi
stat=$?
if test -f "$tmpdepfile"; then :
else
stripped=`echo "$stripped" | sed 's,^.*/,,'`
tmpdepfile="$stripped.u"
fi
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
if test -f "$tmpdepfile"; then
outname="$stripped.o"
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
icc)
# Intel's C compiler understands `-MD -MF file'. However on
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using \ :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp2)
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
# compilers, which have integrated preprocessors. The correct option
# to use with these is +Maked; it writes dependencies to a file named
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
# Much of this is similar to the tru64 case; see comments there.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d
"$@" -Wc,+Maked
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
"$@" +Maked
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
# Add `dependent.h:' lines.
sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile" "$tmpdepfile2"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
# With Tru64 cc, shared objects can also be used to make a
# static library. This mechanism is used in libtool 1.4 series to
# handle both shared and static libraries in a single compilation.
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
#
# With libtool 1.5 this exception was removed, and libtool now
# generates 2 separate objects for the 2 libraries. These two
# compilations output dependencies in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic.
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
tmpdepfile2=$dir$base.o.d # libtool 1.5
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.o.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
tmpdepfile4=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for `:'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
"$@" $dashmflag |
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no
for arg in "$@"; do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix="`echo $object | sed 's/^.*\././'`"
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
sed '1,2d' "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E |
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
"$@" || exit $?
IFS=" "
for arg
do
case "$arg" in
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

16
doc/CMakeLists.txt Normal file
View File

@@ -0,0 +1,16 @@
cmake_minimum_required (VERSION 2.8)
message ("-- Configuring man pages")
set (man_FILES task-color.5 task-faq.5 task-sync.5 task-tutorial.5 task.1 taskrc.5)
foreach (man_FILE ${man_FILES})
configure_file (
man/${man_FILE}.in
man/${man_FILE})
endforeach (man_FILE)
install (DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man/ DESTINATION ${TASK_MAN1DIR}
FILES_MATCHING PATTERN "*.1")
install (DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man/ DESTINATION ${TASK_MAN5DIR}
FILES_MATCHING PATTERN "*.5")
install (DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/rc DESTINATION ${TASK_DOCDIR})
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/ref/task-ref.pdf DESTINATION ${TASK_DOCDIR})

6
doc/man/.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
task-color.5
task-faq.5
task-sync.5
task-tutorial.5
task.1
taskrc.5

View File

@@ -1,7 +1,7 @@
.TH task-color 5 2010-10-07 "task 1.9.3" "User Manuals"
.TH task-color 5 2013-04-07 "${PACKAGE_STRING}" "User Manuals"
.SH NAME
task-color \- A color tutorial for the task(1) command line todo manager.
task-color \- A color tutorial for the taskwarrior command line todo manager.
.SH SETUP
The first thing you need is a terminal program that supports color. All
@@ -41,14 +41,14 @@ Do we really want all those color control codes in the file? Taskwarrior
assumes that you do not, and temporarily sets color to 'off' while generating
the output. This explains the output from the following command:
$ task config | grep '^color '
$ task show | grep '^color '
color off
it always returns 'off', no matter what the setting.
it always returns 'off', no matter what the setting, because the output is being
sent to a pipe.
The reason is that the taskwarrior output gets piped into grep, and the color is
disabled. If you wanted those color codes, you can override this behavior by
setting the _forcecolor variable to on, like this:
If you wanted those color codes, you can override this behavior by setting the
_forcecolor variable to on, like this:
$ task config _forcecolor on
$ task config | grep '^color '
@@ -106,6 +106,10 @@ There is an additional 'underline' attribute that may be used:
underline bright red on black
And an 'inverse' attribute:
inverse red
Taskwarrior has a command that helps you visualize these color combinations.
Try this:
@@ -117,7 +121,7 @@ the sample requested.
Some combinations look very nice, some look terrible. Different terminal
programs do implement slightly different versions of 'red', for example, so you
may see some unwanted variation due to the program. The brightness of your
may see some unexpected variation across machines. The brightness of your
display is also a factor.
.SH 256-COLOR SUPPORT
@@ -189,7 +193,7 @@ combination:
red on gray3
you are mixing a 16-color and 256-color specification. Taskwarrior will map red
to color1, and proceed. Note that red and color1 are not quite the same.
to color1, and proceed. Note that red and color1 are not quite the same tone.
Note also that there is no bold or bright attributes when dealing with 256
colors, but there is still underline available.
@@ -206,7 +210,7 @@ without necessarily creating a set of tasks that meet each of the rule criteria.
.SH RULES
Taskwarrior supports colorization rules. These are configuration values that
specify a color, and the conditions under which that color is used. By example,
let's add a few tasks:
let us add a few tasks:
$ task add project:Home priority:H pay the bills (1)
$ task add project:Home clean the rug (2)
@@ -215,13 +219,13 @@ let's add a few tasks:
We can add a color rule that uses a blue background for all tasks in the Home
project:
$ task config color.project.Home on blue
$ task config color.project.Home 'on blue'
We use quotes around "on blue" because there are two words, but they represent
one value in the .taskrc file. Now suppose we which to use a bold yellow text
We use quotes around 'on blue' because there are two words, but they represent
one value in the .taskrc file. Now suppose we wish to use a bold yellow text
color for all cleaning work:
$ task config color.keyword.clean bold yellow
$ task config color.keyword.clean 'bold yellow'
Now what happens to task 2, which belongs to project Home (blue background), and
is also a cleaning task (bold yellow foreground)? The colors are combined, and
@@ -236,19 +240,20 @@ It is possible to create a very colorful mix of rules. With 256-color support,
those colors can be made subtle, and complementary, but without care, this can
be a visual mess. Beware!
The precedence for the color rules is determined by the configuration variable
'rule.precedence.color', which by default contains:
The precedence for the color rules is determined by the configuration
variable 'rule.precedence.color', which by default contains:
due.today,active,blocked,overdue,due,keyword,project,tag,recurring,pri,tagged
   due.today,active,blocking,blocked,overdue,due,scheduled,keyword.,project.,tag.,uda.,recurring,pri.,tagged,completed,deleted
These are just the color rules with the 'color.' prefix removed. The rule
'color.due.today' is the highest precedence, and 'color.tagged' is the lowest.
These are just the color rules with the 'color.' prefix removed. The
rule 'color.due.today' is the highest precedence, and 'color.deleted' is the lowest.
The keyword rule shown here as 'keyword' corresponds to a wildcard pattern,
The keyword rule shown here as 'keyword.' corresponds to a wildcard pattern,
meaning 'color.keyword.*', or in other words all the keyword rules. Similarly
for the 'color.tag.*' and 'color.project.*' rules.
There is also 'color.project.none', 'color.tag.none' and 'color.pri.none'.
There is also 'color.project.none', 'color.tag.none' and 'color.pri.none' to
specifically represent missing data.
.SH THEMES
Taskwarrior supports themes. What this really means is that with the ability to
@@ -256,7 +261,8 @@ include other files into the .taskrc file, different sets of color rules can
be included.
To get a good idea of what a color theme looks like, try adding this entry to
your .taskrc file:
your .taskrc file (note that your installation may use a slightly different path
from the example):
.RS
include /usr/local/share/doc/task/rc/dark-256.theme
@@ -265,19 +271,29 @@ include /usr/local/share/doc/task/rc/dark-256.theme
You can use any of the standard taskwarrior themes:
.RS
light-16.theme
.br
light-256.theme
.br
dark-16.theme
.br
dark-256.theme
.br
dark-red-256.theme
dark-blue-256.theme
.br
dark-gray-256.theme
.br
dark-green-256.theme
.br
dark-blue-256.theme
dark-red-256.theme
.br
dark-violets-256.theme
.br
dark-yellow-green.theme
.br
light-16.theme
.br
light-256.theme
.br
solarized-dark-256.theme
.br
solarized-light-256.theme
.RE
You can also see how the theme will color the various tasks with the command:
@@ -288,14 +304,10 @@ Better yet, create your own, and share it. We will gladly host the theme file
on <http://taskwarrior.org>.
.SH "CREDITS & COPYRIGHTS"
Taskwarrior was written by P. Beckingham <paul@beckingham.net>.
.br
Copyright (C) 2006 \- 2010 P. Beckingham
Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez.
This man page was originally written by Paul Beckingham.
Taskwarrior is distributed under the GNU General Public License. See
http://www.gnu.org/licenses/gpl-2.0.txt for more information.
Taskwarrior is distributed under the MIT license. See
http://www.opensource.org/licenses/mit-license.php for more information.
.SH SEE ALSO
.BR task(1),

View File

@@ -1,57 +1,65 @@
.TH task-faq 5 2010-10-07 "task 1.9.3" "User Manuals"
.TH task-faq 5 2013-04-07 "${PACKAGE_STRING}" "User Manuals"
.SH NAME
task-faq \- A FAQ for the task(1) command line todo manager.
.SH DESCRIPTION
Taskwarrior is a command line TODO list manager. It maintains a list of tasks
that you want to do, allowing you to add/remove, and otherwise manipulate them.
Taskwarrior has a rich list of commands that allow you to do various things with it.
.SH WELCOME
Welcome to the taskwarrior FAQ. If you have would like to see a question answered
here, please send us a note at <support@taskwarrior.org>.
Welcome to the taskwarrior FAQ. If you would like to see a question answered
here, please send us a note to <support@taskwarrior.org>.
.TP
.B Q: When I redirect the output to a file, I lose all the colors. How do I fix this?
A: Taskwarrior knows (or thinks it knows) when the output is not going directly
to a terminal, and strips out all the color control characters. This is based
on the assumption that the color control codes are not wanted in the file.
Prevent this with the following entry in your .taskrc file:
Taskwarrior knows when the output is not going directly to a terminal, and
strips out all the color control characters. This is based on the assumption
that the color control codes are not wanted in the file. Prevent this with the
following entry in your .taskrc file:
_forcecolor=on
_forcecolor=on
or by temporarily overriding the value on the command line:
task ... rc._forcecolor=on
There is an additional problem when using pagers such as 'less' and 'more', because
color control codes are stripped. When using less, these options will preserve
the color codes:
task ... | less -FrX
There have been problems reported with the Linux 'more' pager, which inserts
newline characters.
.TP
.B Q: How do I backup my taskwarrior data files? Where are they?
A: Taskwarrior writes all pending tasks to the file
.B Q: How do I backup my taskwarrior data files? Where are they?
Taskwarrior writes all data to files in this location:
~/.task/pending.data
~/.task/
and all completed and deleted tasks to
You may have overridden this location with the 'data.location' configuration
setting, in which case backup that instead. All files in this location should
be backed up. Making sure all the files in this location are backed up, and not
just a named subset will ensure that you properly backup future versions of
taskwarrior, which will likely introduce more files in this location.
~/.task/completed.data
They are text files, so they can just be copied to another location for
safekeeping. Don't forget there is also the ~/.taskrc file that contains your
taskwarrior configuration data. To be sure, and to future-proof your backup,
consider backing up all the files in the ~/.task directory.
Don't forget there is also the ~/.taskrc file that contains your taskwarrior
configuration data.
.TP
.B Q: How can I separate my work tasks from my home tasks? Specifically, can I keep them completely separate?
A: You can do this by creating an alternate .taskrc file, then using shell
You can do this by creating an alternate .taskrc file, then using shell
aliases. Here are example Bash commands to achieve this:
% cp ~/.taskrc ~/.taskrc_home
% (now edit .taskrc_home to change the value of data.location)
% alias wtask="task"
% alias htask="task rc:~/.taskrc_home"
% alias wtask="task"
% alias htask="task rc:~/.taskrc_home"
This gives you two commands, 'wtask' and 'htask' that operate using two
different sets of task data files.
different sets of task data files. Bash shell functions are a good alternative.
.TP
.B Q: Can I revert to a previous version of taskwarrior? How?
A: Yes, you can revert to a previous version of task, simply by downloading an
Yes, you can revert to a previous version of task, simply by downloading an
older version and installing it. If you find a bug in task, then this may be the
only way to work around the bug, until a patch release is made.
@@ -62,44 +70,49 @@ of taskwarrior, there is the file format to consider. This is yet another good
reason to back up your task data files!
.TP
.B Q: I'm using Ubuntu 9.04, and I want to word-wrap descriptions. How do I do this?
A: You need to install ncurses, by doing this:
.B Q: Can I have two separate versions of taskwarrior installed? How?
Yes, and here is one simple way to do that. Install the older version of
taskwarrior, and then rename the 'task' binary to something like 't194' to
reflect the version number. Then install the newer version, which will be
named 'task'. Now you have 't194' and 'task' both installed, both using the
same configuration and data.
% sudo apt-get install libncurses5-dev
Note that the older version will not be aware of any new configuration settings
and so will complain about them in the 'show' command. This can be ignored.
Likewise the newer version may complain about obsolete entries in the
configuration.
Then you need to rebuild taskwarrior from scratch, starting with
Note also that the man pages will overwrite, which is why it is suggested that
the older version be installed first, so that you benefit from improved
documentation.
% cd task-X.X.X
% ./configure
...
.TP
.B Q: How do I build a Darwin 32bit version of task
The taskwarrior packages will not work on a 32-bit OSX installation on Core
Duo hardware. You will need to build Taskwarrior from source, and use this
configure command:
The result should be a taskwarrior program that knows the width of the terminal
window, and wraps accordingly.
./configure "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
Note that all the binary packages include this capability.
See: http://taskwarrior.org/issues/817
http://stackoverflow.com/questions/3261909/build-32bit-on-64-bit-linux-using-a-configure-script
.TP
.B Q: How do I build taskwarrior under Cygwin?
A: Take a look at the README.build file, where the latest information on build
Take a look at the README.build file, where the latest information on build
issues is kept. Taskwarrior is built the same way everywhere. But under Cygwin,
you'll need to make sure you have the following packages available first:
gcc
make
libncurses-devel
libncurses8
The gcc and make packages allow you to compile the code, and are therefore
required, but the ncurses packages are optional. Ncurses will allow taskwarrior
to determine the width of the window, and therefore use the whole width and wrap
text accordingly, for a more aesthetically pleasing display.
Note that there are binary packages that all include this capability.
required.
.TP
.B Q: Do colors work under Cygwin?
A: They do, but only in a limited way. You can use regular foreground colors
(black, red, green ...) and you can regular background colors (on_black, on_red,
They do, but only in a limited way. You can use regular foreground colors
(black, red, green ...) and regular background colors (on_black, on_red,
on_green ...), but underline and bold are not supported.
If you run the command:
@@ -112,7 +125,7 @@ you can use.
Note that if you install the 'mintty' shell in Cygwin, then you can use 256
colors.
See the 'man task-color' for more details on which colors can be used.
See the 'man task-color' page for more details on which colors can be used.
.TP
.B Q: Where does taskwarrior store the data?
@@ -132,24 +145,24 @@ for you, so it is probably best to leave those files alone.
If you delete (or rename) your .taskrc file, taskwarrior will offer to create a
default one for you. Another way to do this is with the command:
$ task rc:new-file version
task rc:new-file version
Taskwarrior will create 'new-file' if it doesn't already exist. There will not
be much in it though - taskwarrior relies heavily on default values, which can
be seen with this command:
$ task show
task show
which lists all the currently known settings. If you have just created
new-file, then this command lists only the defaults.
This lists all the currently known settings. If you have just created a
new file, then this command lists only the defaults.
Note that this is a good way to learn about new configuration settings,
particularly if your .taskrc file was created by an older version.
.TP
.B Q: Do I need to back up my taskwarrior data?
Yes. You should back up your ~/.task directory, and probably your ~/.taskrc
file too.
Yes you do, like all your other files. You should back up all the files in your
~/.task directory, and your ~/.taskrc file too.
.TP
.B Q: Can I share my tasks between different machines?
@@ -161,8 +174,15 @@ folder, by modifying the:
configuration variable. Check out DropBox at http://www.dropbox.com.
You might also want to share the same .taskrc file. You can do this by putting an alias in the .bashrc file along the lines of
alias task="task rc:/home/username/Dropbox/mysharedtaskrc"
An alternative to Dropbox is to use the push/pull/merge features built into Taskwarrior. See 'man task-sync' for details.
.TP
.B Q: I don't like dropbox. Is there another way to synchronize my tasks?
.B Q: I don't want to use dropbox. Is there another way to synchronize my tasks?
Of course. Especially if you want to modify tasks offline on both machines and
synchronize them later on. For this purpose there is a 'merge' command which is
is able to insert the modifications you made to one of your task databases into
@@ -170,8 +190,8 @@ a second database.
Here is a basic example of the procedure:
$ task merge ssh://user@myremotehost/.task/
$ task push ssh://user@myremotehost/.task/
task merge ssh://user@myremotehost/.task/
task push ssh://user@myremotehost/.task/
The first command fetches the undo.data file from the remote system, reads the
changes made and updates the local database. When this merge command completes,
@@ -185,16 +205,20 @@ You need it if you want the undo capability, or the merge capability mentioned
above. But if it gets large, you can certainly truncate it to save space, just
be careful to delete lines from the top of the file, up to and including a
separator '---'. The simplest way is to simply delete the undo.data file. Note
that it does not slow down taskwarrior, because it is never read until you want
to undo. Otherwise taskwarrior only appends to the file.
that it does not slow down taskwarrior in performance-sensitive areas, because
it is typically not read until you want to undo, or report total active time in
the 'info' command. Taskwarrior generally only appends to the file.
It is not recommended that you delete the undo.data file, as it limits
functionality.
.TP
.B Q: How do I know whether my terminal support 256 colors?
.B Q: How do I know whether my terminal supports 256 colors?
You will need to make sure your TERM environment variable is set to xterm-color,
otherwise the easiest way is to just try it! With version 1.9 or later, you
simply run
$ task color
task color
and a full color palette is displayed. If you see only 8 or 16 colors, perhaps
with those colors repeated, then your terminal does not support 256 colors.
@@ -210,22 +234,9 @@ See the task-color(5) man page for an in-depth explanation of the color rules.
.TP
.B Q: How can I make taskwarrior put the command in the terminal window title?
You cannot. But you can make the shell do it, and you can make the shell
call the task program. Here is a Bash script that does this:
Just set the following value in your .taskrc file:
#! /bin/bash
printf "\\033]0;task $*\a"
/usr/local/bin/task $*
You just need to run the script, and let the script run task. Here is a Bash
function that does the same thing:
t ()
{
printf "\\033]0;task $*\a"
/usr/local/bin/task $*
}
xterm.title=on
.TP
.B Q: Taskwarrior searches in a case-sensitive fashion - can I change that?
@@ -235,13 +246,13 @@ You can. Just set the following value in your .taskrc file:
This will affect searching for keywords:
$ task list Document
task Document list
taskwarrior will perform a caseless search in the description and any
annotations for the keyword 'Document'. It also affects description and
annotation substitutions:
$ task 1 /teh/the/
task 1 modify /teh/the/
The pattern on the left will now be a caseless search term.
@@ -256,10 +267,10 @@ incorrectly, because there are more digits.
When you run a report (such as "list"), the numbers are assigned before display.
For example, you can do this:
$ task list
$ task do 12
$ task add Pay the rent
$ task delete 31
task list
task 12 done
task add Pay the rent
task 31 delete
Those id numbers are then good until the next report is run. This is because
taskwarrior performs a garbage-collect operation on the pending tasks file when
@@ -272,16 +283,21 @@ efficiency.
.TP
.B Q: How do I list tasks that are either priority 'H' or 'M', but not 'L'?
Taskwarriors filters are all combined with and implicit logical AND operator, so
if you were to try this:
Taskwarrior's filters are all by default combined with an implicit logical AND
operator, so if you were to try this:
$ task list priority:H priority:M
task priority:H priority:M list
There would be no results, because the priority could not simultaneously be 'H'
AND 'M'. What is required is some way to use OR instead of an AND operator. The
solution is to invert the filter in this way:
AND 'M'. Instead, you have a choice. You can do this:
$ task list priority.not:L priority.any:
task '(priority:H or priority:M)' list
Note that the quotes are one way of escaping the ( ) characters that are
otherwise interpreted by the shell before taskwarrior sees them. You can also
do this:
task priority.not:L priority.any: list
This filter states that the priority must not be 'L', AND there must be a
priority assigned. This filter then properly lists tasks that are 'H' or 'M',
@@ -297,24 +313,33 @@ to construct task filters.
Taskwarrior now has a 'denotate' command to remove annotations. Here is an
example:
$ task add Original task
$ task 1 annotate foo
$ task 1 annotate bar
$ task 1 annotate foo bar
task add Original task
task 1 annotate foo
task 1 annotate bar
task 1 annotate foo bar
Now to delete the first annotation, use:
$ task 1 denotate foo
task 1 denotate foo
This takes the fragment 'foo' and compares it to each of the annotations. In
this example, it will remove the first annotation, not the third, because it is
an exact match. If there are no exact matches, it will remove the first
non-exact match:
$ task 1 denotate ar
task 1 denotate ar
This will remove the second annotation - the first non-exact match.
.TP
.B Q: How do I show tasks completed on a certain day?
The day in question has to be boxed by a range, like this:
task end.after:3/29/2013 end.before:3/30/2013 completed
Note that a single date, such as 3/29/2013 does not refer to a whole day, but
to a single point in time, 3/20/2013 0:00:00.
.TP
.B Q: How can I help?
There are lots of ways. Here are some:
@@ -326,17 +351,14 @@ There are lots of ways. Here are some:
- Contribute to our Wiki
- Suggest features
- Write unit tests
- Write add-on scripts, and share them
- Fix bugs
.SH "CREDITS & COPYRIGHTS"
Taskwarrior was written by P. Beckingham <paul@beckingham.net>.
.br
Copyright (C) 2006 \- 2010 P. Beckingham
Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez.
This man page was originally written by P. Beckingham.
Taskwarrior is distributed under the GNU General Public License. See
http://www.gnu.org/licenses/gpl-2.0.txt for more information.
Taskwarrior is distributed under the MIT license. See
http://www.opensource.org/licenses/mit-license.php for more information.
.SH SEE ALSO
.BR task(1),

View File

@@ -1,4 +1,4 @@
.TH task-sync 5 2010-10-07 "task 1.9.3" "User Manuals"
.TH task-sync 5 2013-04-07 "${PACKAGE_STRING}" "User Manuals"
.SH NAME
task-sync \- A tutorial for the task(1) data synchronization capabilities.
@@ -109,17 +109,46 @@ All the other URIs allow access to remote machines. The first uses SSH and scp
.br
.RS
ssh://[user@]host[:port]:path/to/undo.data
ssh://[user@]host[:port]/absolute/path/to/.task/
.br
[user@]host[:port]:/path/
[user@]host:/absolute/path/to/.task/
.RE
In both cases paths are considered to be absolute. You can specify paths relative to the
users home directory as follows:
.br
.RS
ssh://[user@]host[:port]/.task/
.br
[user@]host:.task/
.RE
or even shorter
.br
.RS
[user@]host:.task/
.RE
Remark: Since taskwarrior simply calls the scp binary you can specify very much anything
that scp would accept, e.g. host configurations from ~/.ssh/config or ~username
expansion:
.br
.RS
ssh://configured-host/~[username]/.task/
.br
configured-host:~[username]/.task/
.RE
Rsync is another supported protocol that minimizes network traffic, by a clever
algorithm that doesn't copy files that have not changed:
.br
.RS
rsync://[user@]host.xz[:port]/path/to/undo.data
rsync://[user@]host.xz[:port]/path/to/.task/
.RE
Curl supports several protocols that can transfer data using HTTP, HTTPS and
@@ -127,11 +156,26 @@ FTP:
.br
.RS
http://host[:port]/path/to/undo.data
http://host[:port]/path/to/.task/
.br
https://host[:port]/path/to/undo.data
https://host[:port]/path/to/.task/
.br
ftp://user@host[:port]/path/to/undo.data
ftp://[user@]host[:port]/path/to/.task/
.RE
You can use single quotes to encapsulate user names that contain delimiting
characters like '@', '/' or ':', e.g.:
.br
.RS
ssh://'user@name'@host/
.RE
Remember to escape the quotes on your shell:
.br
.RS
$ task push ftp://\'user@name\':host/
.RE
.SH CONFLICTS
@@ -308,15 +352,13 @@ unable to merge. The change transactions stored in the undo.data file are
used for synchronization.
.SH "CREDITS & COPYRIGHTS"
task was written by P. Beckingham <paul@beckingham.net>.
.br
Copyright (C) 2006 \- 2010 P. Beckingham, F. Hernandez.
Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez.
The sync capabilities were written by J. Schlatow.
Parts copyright (C) 2010 J. Schlatow.
Parts copyright (C) 2010 - 2013 J. Schlatow.
task is distributed under the GNU General Public License. See
http://www.gnu.org/licenses/gpl-2.0.txt for more information.
Taskwarrior is distributed under the MIT license. See
http://www.opensource.org/licenses/mit-license.php for more information.
.SH SEE ALSO
.BR task(1),

View File

@@ -1,4 +1,4 @@
.TH task-tutorial 5 2010-10-07 "task 1.9.3" "User Manuals"
.TH task-tutorial 5 2013-04-07 "${PACKAGE_STRING}" "User Manuals"
.SH NAME
task-tutorial \- A tutorial for the task(1) command line todo manager.
@@ -161,7 +161,7 @@ by the 'g' at the end. You could omit the 'g', and it would only make the first
substitution.
.RS
$ task 7 /teh/the/g
$ task 7 modify /teh/the/g
.br
Modified 1 task.
.br
@@ -197,7 +197,7 @@ Let's assign that last task to the 'home' project. Note that a task may only
belong to one project.
.RS
$ task 7 project:home
$ task 7 modify project:home
.br
The scope of project 'home' has changed. Project 'home' is 0% complete (1 of 1 tasks remaining).
.br
@@ -209,11 +209,11 @@ specify a range of tasks? Taskwarrior will want to confirm bulk changes like
this, but we'll accept all changes here.
.RS
$ task 1-6 project:party
$ task 1-6 modify project:party
.br
.br
Task 1 "Select a free weekend in November"
Task 1 modify "Select a free weekend in November"
.br
- project will be set to 'party'.
.br
@@ -258,7 +258,7 @@ party 6 6 0 0 0
.br
2 projects (7 tasks)
.br
$ task list project:home
$ task project:home list
.br
.br
@@ -272,7 +272,7 @@ ID Project Pri Due Active Age Description
.br
1 task
.br
$ task li pro:par
$ task pro:par li
.br
.br
@@ -302,11 +302,11 @@ Priorities are another way to organize tasks. You can use priority values of
high, medium and low, and taskwarrior knows these as H, M or L.
.RS
$ task 1-3,5 priority:H
$ task 1-3,5 modify priority:H
.br
.br
Task 1 "Select a free weekend in November"
Task 1 modify "Select a free weekend in November"
.br
- priority will be set to 'H'.
.br
@@ -348,7 +348,7 @@ ID Project Pri Due Active Age Description
You can remove priorities by specifying a blank value.
.RS
$ task 3 pri:
$ task 3 modify pri:
.br
Modified 1 task.
.RE
@@ -359,11 +359,11 @@ just single words associated with the task. I can go to the print shop at the
mall, and do all the invitation tasks, so let's tag them all.
.RS
$ task 3,5,6 +mall
$ task 3,5,6 modify +mall
.br
.br
Task 3 "Mail invitations"
Task 3 modify "Mail invitations"
.br
- tags will be set to 'mall'.
.br
@@ -407,7 +407,7 @@ ID Project Pri Added Started Due Recur Countdown Age Deps Tags Descript
and I can use tags as a filter to any report too.
.RS
$ task list +mall
$ task +mall list
.br
.br
@@ -430,7 +430,7 @@ I made a mistake - I can't mail out the invitations at the mall, so let's remove
that tag.
.RS
$ task 3 -mall
$ task 3 modify -mall
.br
Modified 1 task.
.RE
@@ -441,7 +441,7 @@ and a new description. This is also considered a bulk change, and so requires
confirmation.
.RS
$ task 7 Pay rent at the end of the month
$ task 7 modify Pay rent at the end of the month
.br
.br
@@ -465,7 +465,7 @@ $ task 8 prepend Select some
.br
$ task 8 append for after dinner
.br
$ task list dinner
$ task dinner list
.br
.br
@@ -595,7 +595,7 @@ Modified task reverted.
.SH INFO
During that undo operation, taskwarrior displayed metadata that is associated
with the task. You can display this with the info command, and its shortcut.
with the task. You can display this with the info command.
.RS
$ task 1 info
@@ -621,30 +621,6 @@ UUID 3a6881bb-628b-4f90-93d7-4da563b83d54
Entered 10/16/2010 (44 mins)
.br
.br
$ task 1
.br
.br
Name Value
.br
----------- ------------------------------------
.br
ID 1
.br
Description Select a free weekend in November
.br
Status Pending
.br
Project party
.br
Priority H
.br
UUID 3a6881bb-628b-4f90-93d7-4da563b83d54
.br
Entered 10/16/2010 (44 mins)
.RE
There are also statistics that taskwarrior gathers, which I can display.
.RS
@@ -705,6 +681,7 @@ $ task 1 annotate the 13th looks good
Annotated 1 with 'the 13th looks good'.
.br
$ task 1 annotate or the 14th
.br
Annotated 1 with 'or the 14th'
.br
$ task list
@@ -740,64 +717,6 @@ ID Project Pri Due Active Age Description
8 tasks
.RE
You can choose to display annotations in different ways.
.RS
$ task list rc.annotations:full
.br
.br
ID Project Pri Due Active Age Description
.br
-- ------- --- --- ------ ------- ---------------------------------
.br
1 party H 49 mins Select a free weekend in November
.br
10/16/2010 the 13th looks good
.br
10/16/2010 or the 14th
.br
.br
1 task
.br
Configuration override annotations:full
.br
$ task list rc.annotations:sparse
.br
.br
ID Project Pri Due Active Age Description
.br
-- ------- --- --- ------ ------- ----------------------------------
.br
1 party H 49 mins +Select a free weekend in November
.br
10/16/2010 or the 14th
.br
.br
1 task
.br
Configuration override annotations:sparse
.br
$ task list rc.annotations:none
.br
.br
ID Project Pri Due Active Age Description
.br
-- ------- --- --- ------ ------- ----------------------------------
.br
1 party H 49 mins +Select a free weekend in November
.br
.br
1 task
.br
Configuration override annotations:none
.RE
Annotations can be removed by providing a matching pattern.
.RS
@@ -833,8 +752,6 @@ alias.ghistory ghistory.monthly
alias.history history.monthly
.br
alias.rm delete
.br
annotations full
.br
...
.br
@@ -994,7 +911,7 @@ $ task add New task
.br
Created task 9.
.br
$ task list New task
$ task New task list
.br
.br
@@ -1179,49 +1096,6 @@ ID Project Pri Due Active Age Description
What you see is the result of a set of color rules being applied to the tasks.
There is a hierarchy of color rules that colorize a task based on the metadata.
Here is an example of an explicit override to the color rules where a specific
task is given a red background.
.RS
$ task 1 bg:on_red
.br
modified 1 task.
.br
$ task list
.br
.br
ID Project Pri Due Active Age Description
.br
-- ------- --- --- ------ ------- ----------------------------------
.br
1 party H 1 hr Select a free weekend in November
.br
10/16/2010 the 13th looks good
.br
2 party H 1 hr Select and book a venue
.br
5 party H 59 mins Design invitations
.br
8 33 mins Select some Music for after dinner
.br
7 home 50 mins Pay rent at the end of the month
.br
3 party 1 hr Mail invitations
.br
4 party 1 hr Select a caterer
.br
6 party 59 mins Print invitations
.br
.br
8 tasks
.br
$ task 1 bg:
.br
Modified 1 task.
.RE
Taskwarrior supports 256 colors on certain terminal emulators, and this shows
the range of colors available. Note that your terminal may show fewer colors.
@@ -1366,6 +1240,8 @@ color.due red
.br
color.due.today red
.br
color.error yellow
.br
color.footnote yellow
.br
color.header yellow
@@ -1494,7 +1370,7 @@ $ task 2 start
.br
Started 2 'Select and book a venue'.
.br
$ task list venue
$ task venue list
.br
.br
@@ -1514,7 +1390,7 @@ $ task 2 stop
.br
Stopped 2 'Select and book a venue'.
.br
$ task list venue
$ task venue list
.br
.br
@@ -1538,31 +1414,31 @@ Due dates can be specified as dates, durations into the future or past,
mnemonic, ordinal or day of week.
.RS
$ task 1 due:7/31/2010
$ task 1 modify due:7/31/2010
.br
Modified 1 task.
.br
$ task 1 due:2wks
$ task 1 modify due:2wks
.br
Modified 1 task.
.br
$ task 1 due:-2wks
$ task 1 modify due:-2wks
.br
Modified 1 task.
.br
$ task 1 due:eom
$ task 1 modify due:eom
.br
Modified 1 task.
.br
$ task 2 due:8th
$ task 2 modify due:8th
.br
Modified 1 task.
.br
$ task 2 due:sunday
$ task 2 modify due:sunday
.br
Modified 1 task.
.br
$ task 5 due:eow
$ task 5 modify due:eow
.br
Modified 1 task.
.RE
@@ -1621,7 +1497,7 @@ used most. You can create your own, or use one of the samples to show holidays
on the calendar. Try adding this line to your ~/.taskrc file:
.RS
include /usr/local/share/doc/task/rc/holidays-US.rc
include /usr/local/share/doc/task/rc/holidays.en-US.rc
.RE
Then:
@@ -1654,7 +1530,8 @@ $ task calendar
Legend: today, due, due-today, overdue, weekend, holiday, weeknumber.
.RE
There are holiday files for CA, DE, ES, FR, NL, SE, UK and US.
There are holiday files for be-BY, cs-CZ, da-DK, de-AT, de-DE, en-CA, en-GB,
en-NZ, en-US, es-ES, fr-FR, it-IT, nb-NO, nl-NL and sv-SE locales.
You can see the whole year, see due tasks as well, and see the holidays:
@@ -1840,13 +1717,13 @@ every month. Recurring tasks allow us to set up a single task that keeps coming
back, just as you'd expect.
.RS
$ task 7 due:eom recur:monthly
$ task 7 modify due:eom recur:monthly
.br
Task 7 is now a recurring task.
.br
Modified 1 task.
.br
$ task 7
$ task 7 info
.br
.br
@@ -1877,7 +1754,7 @@ You can also limit the extent of the recurrence. Let's make sure the task
doesn't recur after the lease ends.
.RS
$ task 7 until:eoy
$ task 7 modify until:eoy
.br
Modified 1 task.
.RE
@@ -1985,7 +1862,7 @@ need to prefix every command with "task".
.RS
$ task shell
.br
task 1.9.3 shell
task 1.9.4 shell
.br
.br
@@ -2072,7 +1949,7 @@ individual tasks. The 'nocolor' special tag causes the color rules to be
bypassed.
.RS
$ task 6 +nocolor
$ task 6 modify +nocolor
.br
Modified 1 task.
.RE
@@ -2101,7 +1978,7 @@ There are others - the 'nonag' special tag prevents the generation of nag
messages when you work on low priority tasks when there are more important ones.
.RS
$ task 6 -nocolor
$ task 6 modify -nocolor
.br
Modified 1 task.
.RE
@@ -2124,7 +2001,7 @@ and visible using the 'waiting' report. When the wait date comes, the task
will just reappear in the list.
.RS
$ task 10 wait:12/1/2010
$ task 10 modify wait:12/1/2010
.br
Modified 1 task.
.br
@@ -2185,7 +2062,7 @@ $ task add Do something in a few seconds
.br
Created task 11.
.br
$ task 11 wait:5s
$ task 11 modify wait:5s
.br
Modified 1 task.
.br
@@ -2277,7 +2154,7 @@ Taskwarrior supports dependencies. Let's take a look at the party planning
tasks, and assign dependencies.
.RS
$ task list pro:party
$ task pro:party list
.br
.br
@@ -2311,7 +2188,7 @@ ID Project Pri Due Active Age Description
Let's see. I can't mail invitations until they are printed.
.RS
$ task 3 depends:6
$ task 3 modify depends:6
.br
Modified 1 task.
.RE
@@ -2319,7 +2196,7 @@ Modified 1 task.
I can't print them until I design them.
.RS
$ task 6 dep:5
$ task 6 modify dep:5
.br
Modified 1 task.
.RE
@@ -2327,7 +2204,7 @@ Modified 1 task.
I need to select a weekend before a location.
.RS
$ task 2 dep:1
$ task 2 modify dep:1
.br
Modified 1 task.
.RE
@@ -2335,7 +2212,7 @@ Modified 1 task.
Design depends on location and weekend.
.RS
$ task 5 dep:1,2
$ task 5 modify dep:1,2
.br
Modified 1 task.
.RE
@@ -2343,7 +2220,7 @@ Modified 1 task.
And the caterer needs to know where.
.RS
$ task 4 dep:1
$ task 4 modify dep:1
.br
Modified 1 task.
.RE
@@ -2351,7 +2228,7 @@ Modified 1 task.
Let's take a look. All my tasks are blocked except task 1. That makes sense.
.RS
$ task long pro:party
$ task pro:party long
.br
.br
@@ -2385,7 +2262,7 @@ ID Project Pri Added Started Due Recur Countdown Age Deps Tags Des
Hmm, that double dependency isn't right.
.RS
$ task 5 dep:-1
$ task 5 modify dep:-1
.br
Modified 1 task.
.RE
@@ -3098,7 +2975,7 @@ Now again, but with the text 'invit', which acts as a filter on the description
field.
.RS
$ task list invit
$ task invit list
.br
.br
@@ -3122,7 +2999,7 @@ filtering on descriptions that contain the word fragment. Here we are using
the 'contains' modifier, but there are many others.
.RS
$ task list description.contains:invit
$ task description.contains:invit list
.br
.br
@@ -3145,7 +3022,7 @@ All tasks containing the whole word 'the'. See how annotations are also
searched?
.RS
$ task list desc.word:the
$ task desc.word:the list
.br
.br
@@ -3167,7 +3044,7 @@ ID Project Pri Due Active Age Description
Here is a list of all tasks that do not contain the whole word 'invitations'.
.RS
$ task list desc.noword:invitations
$ task desc.noword:invitations list
.br
.br
@@ -3196,18 +3073,18 @@ there are several synonyms for modifiers, so that the filter can be written so
that it reads naturally.
.RS
$ task list pro:party
$ task pro:party list
.br
$ task list pro.is:party
$ task pro.is:party list
.br
$ task list pro.not:party
$ task pro.not:party list
.RE
Here the 'over' modifier is filtering on priorities that sort higher than 'Low',
and also filtering on the 'party' project. There are two terms in this filter.
.RS
$ task list pro:party pri.over:L
$ task pro:party pri.over:L list
.br
.br
@@ -3231,7 +3108,7 @@ the first page of tasks. I don't have a page full of tasks here, but you get
the idea.
.RS
$ task list pro:party limit:2
$ task pro:party limit:2 list
.br
.br
@@ -3249,7 +3126,7 @@ ID Project Pri Due Active Age Description
.br
2 tasks, 2 shown
.br
$ task list limit:page
$ task limit:page list
.br
.br
@@ -3272,200 +3149,17 @@ Now you can see how some of the built-in reports work. The 'list' report is
just all tasks, filtered so that only the pending tasks are shown.
.RS
$ task all status:pending
$ task status:pending all
...
.RE
The 'waiting' report is similarly defined.
.RS
$ task all status:waiting
$ task status:waiting all
...
.RE
.SH IMPORT/EXPORT
You can export your tasks. Here you see all tasks being exported in CSV format.
.RS
$ task export.csv
.br
\'uuid','status','tags','entry','start','due','recur','end','project','priority','fg','bg','description'
.br
\'3a6881bb-628b-4f90-93d7-4da563b83d54','pending','',1287237300,,1288497600,,,'party','H',,,'Select a free weekend in November'
.br
\'4a1de9aa-9b00-41ec-8d00-e0d0131e0e0d','pending','',1287237365,,,,,'party',,,,'Mail invitations'
.br
\'2a65e922-ff18-4db1-b867-dbe745b9626a','pending','',1287237372,,,,,'party',,,,'Select a caterer'
.br
...
.RE
Let's just export one task in CSV format...
.RS
$ task export.csv venue
.br
\'uuid','status','tags','entry','start','due','recur','end','project','priority','fg','bg','description'
.br
\'773c2b02-919e-4527-95f0-814c19dd198a','completed','',1287237350,,1287288000,,1287250285,'party','H',,,'Select and book a venue'
.RE
Or in VCalendar format...
.RS
$ task export.vcalendar venue
.br
BEGIN:VCALENDAR
.br
VERSION:2.0
.br
PRODID:-//GBF//task 1.9.3.beta1//EN
.br
BEGIN:VTODO
.br
UID:773c2b02-919e-4527-95f0-814c19dd198a
.br
DTSTAMP:20101016T135550Z
.br
DUE:20101017T040000Z
.br
COMPLETED:20101016T173125Z
.br
SUMMARY:Select and book a venue
.br
CLASS:PRIVATE
.br
PRIORITY:1
.br
STATUS:COMPLETED
.br
COMMENT:Started task
.br
COMMENT:Stopped task
.br
END:VTODO
.br
END:VCALENDAR
.RE
Or YAML.
.RS
$ task export.yaml venue
.br
%YAML 1.1
.br
---
.br
task:
.br
depends: 3a6881bb-628b-4f90-93d7-4da563b83d54
.br
description: Select and book a venue
.br
due: 1287288000
.br
end: 1287250285
.br
entry: 1287237350
.br
priority: H
.br
project: party
.br
status: completed
.br
uuid: 773c2b02-919e-4527-95f0-814c19dd198a
.br
annotation:
.br
entry: 1287242411
.br
description: Started task
.br
annotation:
.br
entry: 1287242506
.br
description: Stopped task
.br
...
.RE
I can also import. Here I am importing simple lines of text. Taskwarrior
recognizes the format by looking inside the file and making a guess, then
confirms.
.RS
$ cat file.text
.br
Remember to read the task man page
.br
$ task import file.text
.br
This looks like a text file with one task per line. Okay to proceed? (y/n) y
.br
Imported 1 tasks successfully, with 0 errors.
.RE
Here is a YAML example. Taskwarrior can read several formats, including old
versions of its data files. Using YAML, you can round-trip the data without
loss, which means you can export and import without any missing information.
This also means that 'export.yaml' is good for making a backup copy of your
tasks.
.RS
$ cat file.yaml
.br
%YAML 1.1
.br
---
.br
task:
.br
description: Visit http://taskwarrior.org
.br
due: 1281844800
.br
entry: 1281289630
.br
priority: H
.br
project: work
.br
status: pending
.br
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
.br
...
.br
$ task import file.yaml
.br
This looks like a YAML file. Okay to proceed? (y/n) y
.br
Imported 1 tasks successfully.
.RE
Here are the imported tasks.
.RS
$ task new limit:2
.br
.br
ID Project Pri Due Active Age Description
.br
-- ------- --- ---------- ------ ----- ------------------------------------
.br
11 work H 8/15/2010 9 wks Visit http://taskwarrior.org
.br
10 1 min Remember to read the task man page
.br
.br
9 tasks, 2 shown
.RE
.SH HELP
You'll find a quick reference page built in, with the 'help' command, or perhaps
you'll want to take a look at the several man pages installed.
@@ -3476,14 +3170,12 @@ $ task help
.RE
.SH "CREDITS & COPYRIGHTS"
task was written by P. Beckingham <paul@beckingham.net>.
.br
Copyright (C) 2006 \- 2010 P. Beckingham
Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez.
This man page was originally written by Federico Hernandez, and has been modified and supplemented by Paul Beckingham.
task is distributed under the GNU General Public License. See
http://www.gnu.org/licenses/gpl-2.0.txt for more information.
Taskwarrior is distributed under the MIT license. See
http://www.opensource.org/licenses/mit-license.php for more information.
.SH SEE ALSO
.BR task(1),

View File

@@ -1,630 +0,0 @@
.TH task 1 2010-10-07 "task 1.9.3" "User Manuals"
.SH NAME
task \- A command line todo manager.
.SH SYNOPSIS
.B task [subcommand] [args]
.SH DESCRIPTION
Taskwarrior is a command line todo list manager. It maintains a list of tasks
that you want to do, allowing you to add/remove, and otherwise manipulate them.
Task has a rich list of subcommands that allow you to do various things with it.
At the core, taskwarrior is a list processing program. You add text and
additional related parameters and redisplay the information in a nice way. It
turns into a todo list program when you add due dates and recurrence. It turns
into an organized todo list program when you add priorities, tags (one word
descriptors), project groups, etc. Taskwarrior turns into an organized to do
list program when you modify the configuration file to have the output displayed
the way you want to see it.
.SH SUBCOMMANDS
.TP
.B add [tags] [attrs] description
Adds a new task to the task list.
.TP
.B log [tags] [attrs] description
Adds a new task that is already completed, to the task list.
.TP
.B annotate ID description
Adds an annotation to an existing task.
.TP
.B denotate ID description
Deletes an annotation for the specified task. If the provided description matches an
annotation exactly, the corresponding annotation is deleted. If the provided description
matches annotations partly, the first partly matched annotation is deleted.
.TP
.B info ID
Shows all data and metadata for the specified task.
.TP
.B ID
With an ID but no specific command, taskwarrior runs the "info" command.
.TP
.B undo
Reverts the most recent action.
.TP
.B shell
Launches an interactive shell with all the task commands available.
.TP
.B duplicate ID [tags] [attrs] [description]
Duplicates the specified task and allows modifications.
.TP
.B delete ID
Deletes the specified task from task list.
.TP
.B start ID
Marks the specified task as started.
.TP
.B stop ID
Removes the
.I start
time from the specified task.
.TP
.B done ID [tags] [attrs] [description]
Marks the specified task as done.
.TP
.B projects
Lists all project names that are currently used by pending tasks, and the
number of tasks for each.
.TP
.B tags
Show a list of all tags used. Any special tags used are highlighted.
.TP
.B summary
Shows a report of task status by project.
.TP
.B timesheet [weeks]
Shows a weekly report of tasks completed and started.
.TP
.B history
Shows a report of task history by month. Alias to history.monthly.
.TP
.B history.annual
Shows a report of task history by year.
.TP
.B ghistory
Shows a graphical report of task status by month. Alias to ghistory.monthly.
.TP
.B ghistory.annual
Shows a graphical report of task status by year.
.TP
.B calendar [ y | due [y] | month year [y] | year ]
Shows a monthly calendar with due tasks marked.
.TP
.B stats
Shows task database statistics.
.TP
.B import \fIfile
Imports tasks from a variety of formats.
.TP
.B export
Exports all tasks in the default format. This is an alias to the command export.yaml.
Redirect the output to a file, if you wish to save it, or pipe it to another command.
.TP
.B export.csv
Exports all tasks in CSV format.
Redirect the output to a file, if you wish to save it, or pipe it to another command.
.TP
.B export.ical
Exports all tasks in iCalendar format.
Redirect the output to a file, if you wish to save it, or pipe it to another command.
.TP
.B export.yaml
Exports all tasks in YAML 1.1 format.
Redirect the output to a file, if you wish to save it, or pipe it to another command.
.TP
.B merge URL
Merges two task databases by comparing the modifications that are stored in the
undo.data files. The location of the second undo.data file must be passed on as argument. URL may have the following syntaxes:
ssh://[user@]host.xz[:port]/path/to/undo.data
rsync://[user@]host.xz[:port]/path/to/undo.data
[user@]host.xz:path/to/undo.data
/path/to/local/undo.data
You can set aliases for frequently used URLs in the .taskrc.
.TP
.B push URL
Pushes the task database to a remote another location for distributing the
changes made by the merge command.
(See annotations above for valid URL syntaxes.)
.TP
.B pull URL
Overwrites the task database with those files found at the URL.
(See annotations above for valid URL syntaxes.)
.TP
.B color [sample | legend]
Displays all possible colors, a named sample, or a legend containing all
currently defined colors.
.TP
.B version
Shows the taskwarrior version number
.TP
.B help
Shows the long usage text.
.TP
.B show [all | substring]"
Shows all the current settings in the taskwarrior configuration file. If a
substring is specified just the settings containing that substring will be
displayed.
.TP
.B config [name [value | '']]
Add, modify and remove settings directly in the taskwarrior configuration.
This command either modifies the 'name' setting with a new value of 'value',
or adds a new entry that is equivalent to 'name=value':
task config name value
This command sets a blank value. This has the effect of suppressing any
default value:
task config name ''
Finally, this command removes any 'name=...' entry from the .taskrc file:
task config name
.SH MODIFYING SUBCOMMANDS
.TP
.B ID [tags] [attrs] [description]
Modifies the existing task with provided information.
.TP
.B ID /from/to/
Performs one substitution on task description and annotation for fixing mistakes.
.TP
.B ID /from/to/g
Performs all substitutions on task description and annotation for fixing mistakes.
.TP
.B edit ID
Launches an editor to let you modify all aspects of a task directly.
Use carefully.
.TP
.B append [tags] [attrs] description
Appends information to an existing task.
.TP
.B prepend [tags] [attrs] description
Prepends information to an existing task.
.SH REPORT SUBCOMMANDS
A report is a listing of information from the task database. There are several
reports currently predefined in taskwarrior. The output and sort behavior of
these reports can be configured in the configuration file. See also the man page
taskrc(5).
.TP
.B active [tags] [attrs] [description]
Shows all tasks matching the specified criteria
that are started but not completed.
.TP
.B all [tags] [attrs] [description]
Shows all tasks matching the specified criteria.
.TP
.B completed [tags] [attrs] [description]
Shows all tasks matching the specified criteria
that are completed.
.TP
.B minimal [tags] [attrs] [description]
Provides a minimal listing of tasks with specified criteria.
.TP
.B ls [tags] [attrs] [description]
Provides a short listing of tasks with specified criteria.
.TP
.B list [tags] [attrs] [description]
Provides a more detailed listing of tasks with specified criteria.
.TP
.B long [tags] [attrs] [description]
Provides the most detailed listing of tasks with specified criteria.
.TP
.B newest [tags] [attrs] [description]
Shows the newest tasks with specified criteria.
.TP
.B oldest [tags] [attrs] [description]
Shows the oldest tasks with specified criteria
.TP
.B overdue [tags] [attrs] [description]
Shows all incomplete tasks matching the specified criteria
that are beyond their due date.
.TP
.B recurring [tags] [attrs] [description]
Shows all recurring tasks matching the specified criteria.
.TP
.B waiting [tags] [attrs] [description]
Shows all waiting tasks matching the specified criteria.
.TP
.B blocked [tags] [attrs] [description]
Shows all blocked tasks, that are dependent on other tasks.
.TP
.B unblocked [tags] [attrs] [description]
Shows all tasks that are not blocked by dependencies.
.TP
.B next [tags] [attrs] [description]
Shows all tasks with upcoming due dates matching the specified criteria.
.SH ATTRIBUTES AND METADATA
.TP
.B ID
Tasks can be specified uniquely by IDs, which are simply the index of the
task in a report. Be careful, as the IDs of tasks may change after a
modification to the database. Always run a report to check you have the right
ID for a task. IDs can be given to task as a sequences, for example,
.br
.B
task del 1,4-10,19
.TP
.B +tag|-tag
Tags are arbitrary words associated with a task. Use + to add a tag and - to
remove a tag from a task. A task can have any quantity of tags.
Certain tags (called 'special tags'), can be used to affect the way tasks are
treated. For example, is a task has the special tag 'nocolor', then it is
exempt from all color rules. The supported special tags are:
+nocolor Disable color rules processing for this task
+nonag Completion of this task suppresses all nag messages
+nocal This task will not appear on the calendar
.TP
.B project:<project-name>
Specifies the project to which a task is related to.
.TP
.B priority:H|M|L|N
Specifies High, Medium, Low and No priority for a task.
.TP
.B due:<due-date>
Specifies the due-date of a task.
.TP
.B recur:<frequency>
Specifies the frequency of a recurrence of a task.
.TP
.B until:<end-date-of-recurrence>
Specifies the Recurrence end-date of a task.
.TP
.B fg:<color-spec>
Specifies foreground color.
.TP
.B bg:<color-spec>
Specifies background color.
.TP
.B limit:<number-of-rows>
Specifies the desired number of tasks a report should show, if a positive
integer is given. The value 'page' may also be used, and will limit the
report output to as many lines of text as will fit on screen. This defaults
to 25 lines, if ncurses is not installed or enabled.
.TP
.B wait:<wait-date>
Date until task becomes pending.
.SH ATTRIBUTE MODIFIERS
Attribute modifiers improve filters. Supported modifiers are:
.RS
.B before (synonyms under, below)
.br
.B after (synonyms over, above)
.br
.B none
.br
.B any
.br
.B is (synonym equals)
.br
.B isnt (synonym not)
.br
.B has (synonym contains)
.br
.B hasnt
.br
.B startswith (synonym left)
.br
.B endswith (synonym right)
.br
.B word
.br
.B noword
.RE
For example:
.RS
task list due.before:eom priority.not:L
.RE
.SH SPECIFYING DATES AND FREQUENCIES
.SS DATES
Taskwarrior reads dates from the command line and displays dates in the
reports. The expected and desired date format is determined by the
configuration variable
.I dateformat
in the taskwarrior configuration file.
.RS
.TP
Exact specification
task ... due:7/14/2008
.TP
Relative wording
task ... due:today
.br
task ... due:yesterday
.br
task ... due:tomorrow
.TP
Day number with ordinal
task ... due:23rd
.br
task ... due:3wks
.br
task ... due:1day
.br
task ... due:9hrs
.TP
Start of (work) week (Monday), calendar week (Sunday or Monday), month and year
.br
task ... due:sow
.br
task ... due:soww
.br
task ... due:socw
.br
task ... due:som
.br
task ... due:soy
.TP
End of (work) week (Friday), calendar week (Saturday or Sunday), month and year
.br
task ... due:eow
.br
task ... due:eoww
.br
task ... due:eocw
.br
task ... due:eom
.br
task ... due:eoy
.TP
Next occurring weekday
task ... due:fri
.RE
.SS FREQUENCIES
Recurrence periods. Taskwarrior supports several ways of specifying the
.I frequency
of recurring tasks.
.RS
.TP
daily, day, 1d, 2d, ...
Every day or a number of days.
.TP
weekdays
Mondays, Tuesdays, Wednesdays, Thursdays, Fridays and skipping weekend days.
.TP
weekly, 1w, 2w, ...
Every week or a number of weeks.
.TP
biweekly, fortnight
Every two weeks.
.TP
quarterly, 1q, 2q, ...
Every three months, a quarter, or a number of quarters.
.TP
semiannual
Every six months.
.TP
annual, yearly, 1y, 2y, ...
Every year or a number of years.
.TP
biannual, biyearly, 2y
Every two years.
.RE
.SH COMMAND ABBREVIATION
All taskwarrior commands may be abbreviated as long as a unique prefix is used. E.g.
.RS
$ task li
.RE
is an unambiguous abbreviation for
.RS
$ task list
.RE
but
.RS
$ task l
.RE
could be list, ls or long.
.SH SPECIFYING DESCRIPTIONS
Some task descriptions need to be escaped because of the shell
and the special meaning of some characters to the shell. This can be
done either by adding quotes to the description or escaping the special
character:
.RS
$ task add "quoted ' quote"
.br
$ task add escaped \\' quote
.RE
The argument \-\- (a double dash) tells taskwarrior to treat all other args
as description:
.RS
$ task add -- project:Home needs scheduling
.RE
.SH CONFIGURATION FILE AND OVERRIDE OPTIONS
Taskwarrior stores its configuration in a file in the user's home directory:
~/.taskrc . The default configuration file can be overridden with
.TP
.B task rc:<path-to-alternate-file>
Specifies an alternate configuration file.
.TP
.B task rc.<name>:<value> ...
Specifies individual configuration file overrides.
.SH EXAMPLES
For examples please see the task tutorial man page at
.RS
man task-tutorial
.RE
or the online documentation starting at
.RS
<http://taskwarrior.org/wiki/taskwarrior/Simple>
.RE
.SH FILES
.TP
~/.taskrc User configuration file - see also taskrc(5).
.TP
~/.task The default directory where task stores its data files. The location
can be configured in the configuration file.
.TP
~/.task/pending.data The file that contains the tasks that are not yet done.
.TP
~/.task/completed.data The file that contains the completed "done" tasks.
.TP
~/.task/undo.data The file that contains the information to the "undo" command.
.SH "CREDITS & COPYRIGHTS"
Taskwarrior was written by P. Beckingham <paul@beckingham.net>.
.br
Copyright (C) 2006 \- 2010 P. Beckingham
This man page was originally written by P.C. Shyamshankar, and has been modified
and supplemented by Federico Hernandez.
Thank also to T. Charles Yun.
Taskwarrior is distributed under the GNU General Public License. See
http://www.gnu.org/licenses/gpl-2.0.txt for more information.
.SH SEE ALSO
.BR taskrc(5),
.BR task-tutorial(5),
.BR task-faq(5),
.BR task-color(5),
.BR task-sync(5)
For more information regarding taskwarrior, the following may be referenced:
.TP
The official site at
<http://taskwarrior.org>
.TP
The official code repository at
<git://tasktools.org/task.git/>
.TP
You can contact the project by writing an email to
<support@taskwarrior.org>
.SH REPORTING BUGS
.TP
Bugs in taskwarrior may be reported to the issue-tracker at
<http://taskwarrior.org>

1097
doc/man/task.1.in Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
.TH taskrc 5 2010-10-07 "task 1.9.2" "User Manuals"
.TH taskrc 5 2013-04-07 "${PACKAGE_STRING}" "User Manuals"
.SH NAME
taskrc \- Configuration file for the task(1) command
@@ -6,7 +6,9 @@ taskrc \- Configuration file for the task(1) command
.SH SYNOPSIS
.B $HOME/.taskrc
.br
.B task rc:<directory-path>/.taskrc
.B task rc:<directory-path>/.taskrc ...
.br
.B TASKRC=<directory-path>/.taskrc task ...
.SH DESCRIPTION
.B taskwarrior
@@ -23,10 +25,16 @@ The default location can be overridden using the
attribute when running task:
.RS
$ task rc:<directory-path>/.taskrc
$ task rc:<directory-path>/.taskrc ...
.RE
Individual option can be overridden by using the
or using the TASKRC environment variable:
.RS
$ TASKRC=/tmp/.taskrc task ...
.RE
Individual options can be overridden by using the
.I rc.<name>:
attribute when running task:
@@ -34,6 +42,12 @@ attribute when running task:
$ task rc.<name>:<value> ...
.RE
or
.RS
$ task rc.<name>=<value> ...
.RE
If
.B taskwarrior
is run without an existing configuration file it will ask if it should create a
@@ -41,8 +55,8 @@ default, sample
.I .taskrc
file in the user's home directory.
The taskwarrior configuration file consists of a series of "assignments" in each
line. The "assignments" have the syntax:
The taskwarrior configuration file consists of a series of assignments in each
line. The assignments have the syntax:
.RS
<name-of-configuration-variable>=<value-to-be-set>
@@ -62,12 +76,12 @@ is the value the variable is to be set to.
and set a configuration variable to a certain value. The equal sign ("=") is
used to separate the variable name from the value to be set.
The hash mark, or pound sign ("#") is used as a "comment" character. It can be
The hash mark, or pound sign ("#") is used as a comment character. It can be
used to annotate the configuration file. All text after the character to the end
of the line is ignored.
Note that taskwarrior is flexible about the values used to represent Boolean
items. You can use "on", "yes", "y", "1", "true", "t", "+", "enabled".
items. You can use "on", "yes", "y", "1" and "true".
Anything else means "off".
.SH EDITING
@@ -94,7 +108,7 @@ $ task config nag ""
Taskwarrior will also display all your settings with this command:
.RS
$ task config
$ task show
.RE
and in addition, will also perform a check of all the values in the file,
@@ -115,7 +129,7 @@ ones containing just the relevant configuration data like colors, etc.
There are two excellent uses of includes in your .taskrc, shown here:
.RS
include /usr/local/share/doc/task/rc/holidays-US.rc
include /usr/local/share/doc/task/rc/holidays.en-US.rc
.br
include /usr/local/share/doc/task/rc/dark-16.theme
.RE
@@ -124,6 +138,17 @@ This includes two standard files that are distributed with taskwarrior, which
define a set of US holidays, and set up a 16-color theme to use, to color the
reports and calendar.
.SH ENVIRONMENT VARIABLES
These environmant variables override defaults and command line arguments.
.TP
.B TASKDATA=~/.task
This overrides the default path for the taskwarrior data files.
.TP
.B TASKRC=~/.taskrc
This overrides the default RC file.
.SH CONFIGURATION VARIABLES
Valid variable names and their default values are:
@@ -138,6 +163,8 @@ Note that you can use the
.B ~
shell meta character, which will be properly expanded.
Note that the TASKDATA environment variable overrides this setting.
.TP
.B locking=on
Determines whether to use file locking when accessing the pending.data and
@@ -146,15 +173,46 @@ files on an NFS mount may need to set locking to "off". Note that there is
danger in setting this value to "off" - another program (or another instance of
task) may write to the task.pending file at the same time.
.TP
.B gc=on
Can be used to temporarily suspend garbage collection (gc), so that task IDs
don't change. Note that this should be used in the form of a command line
override (task rc.gc=off ...), and not permanently used in the .taskrc file,
as this significantly affects performance in the long term.
.TP
.B exit.on.missing.db=no
When set to 'yes' causes the program to exit if the database (~/.task or
rc.data.location or TASKDATA override) is missing. Default value is 'no'.
.SS TERMINAL
.TP
.B curses=on
Determines whether to use ncurses to establish the size of the window you are
.B detection=on
Determines whether to use ioctl to establish the size of the window you are
using, for text wrapping.
.TP
.B defaultwidth=80
The width of tables used when ncurses support is not available. Defaults to 80.
The width of output used when auto-detection support is not available. Defaults
to 80. If set to 0, it is interpreted as infinite width, therefore with no
word-wrapping; this is useful when redirecting report output to a file for subsequent
handling.
.TP
.B defaultheight=24
The height of output used when auto-detection support is not available. Defaults
to 24. If set to 0, it is interpreted as infinite height. This is useful when redirecting
charts to a file for subsequent handling.
.TP
.B avoidlastcolumn=no
Causes the width of the terminal minus one to be used as the full width. This
avoids placing color codes in the last column which can cause problems for
Cygwin users. Default value is 'no'.
.TP
.B hyphenate=on
Hyphenates lines when wrapping breaks occur mid-word. Default value is 'on'.
.TP
.B editor=vi
@@ -164,52 +222,93 @@ command is used. Taskwarrior will first look for this configuration variable. If
found, it is used. Otherwise it will look for the $VISUAL or $EDITOR
environment variables, before it defaults to using "vi".
.TP
.B edit.verbose=on
When set to on (the default), helpful explanatory comments are added to the
edited file when using the "task edit ..." command. Setting this to off means
that you would see a smaller, more compact representation of the task, with no
help text. Deprecated - use verbosity token 'edit'.
.TP
.B locale=en-US.UTF8
Locale to be used by Taskwarrior for synchronization with the task server. The
default value is currently blank.
.SS MISCELLANEOUS
.TP
.B locale=en-US
The locale is a combination of ISO 639-1 language code and ISO 3166 country
code. If not specified, will assume en-US. If specified, taskwarrior will
locate the correct file of localized strings and proceed. It is an error to
specify a locale for which there is no strings file.
.B verbose=on|off|nothing|list...
When set to "on" (the default), helpful explanatory comments are added to all
output from Taskwarrior. Setting this to "off" means that you would see regular
output.
.TP
.B verbose=yes
Controls some of the verbosity of taskwarrior.
The special value "nothing" can be used to eliminate all optional output, which
results in only the formatted data being shown, with nothing else. This output
is most readily parsed and used by shell scripts.
Alternatively, you can specify a comma-separated list of verbosity tokens that
control specific occasions when output is generated. This list may contain:
blank Inserts extra blank lines in output, for clarity
header Messages that appear before report output
footnote Messages that appear after report output
label Column labels on tabular reports
new-id Provides feedback of any new task IDs
affected Reports 'N tasks affected' and similar
edit Used the verbose template for the 'edit' command
special Feedback when applying special tags
project Feedback about project status changes
Note that the "on" setting is equivalent to all the tokens being specified,
and the "nothing" setting is equivalent to none of the tokens being specified.
Here are the shortcut equivalents:
verbose=on
verbose=blank,header,footnote,label,new-id,affected,edit,special,project
verbose=off
verbose=blank,label,new-id,edit
verbose=nothing
verbose=
Those additional comments are sent to the standard error for header, footnote
and project. The others are sent to standard output.
.TP
.B confirmation=yes
May be "yes" or "no", and determines whether taskwarrior will ask for
confirmation before deleting a task or doing bulk changes. The default value
is "yes".
confirmation before deleting a task, performing bulk changes, or the undo
command. The default value is "yes". Consider leaving this setting as "yes",
for safety.
.TP
.B echo.command=yes
May be "yes" or "no", and causes the display of the ID and description of any
task when you run the start, stop, do, undo or delete commands. The default
value is "yes".
value is "yes". Deprecated - use verbosity tokens 'header' and 'affected'.
.TP
.B annotations=full
.TP
.B report.X.annotations=full
Controls the display of annotations in reports. Defaults to full - all
annotations are displayed. Set to "sparse" only the last (newest) annotation
is displayed and if there are more than one present for a task a "+" sign is
added to the description. Set to "none" the output of annotations is disabled
and a "+" sign will be added if there are any annotations present. The default
value is "full".
.B indent.annotation=2
Controls the number of spaces to indent annotations when shown beneath the
description field. The default value is "2".
.TP
.B next=2
Is a number, defaulting to 2, which is the number of tasks for each project that
are shown in the
.B task next
command.
.B indent.report=0
Controls the indentation of the entire report output. Default is "0".
.TP
.B bulk=2
Is a number, defaulting to 2. When more than this number of tasks are modified
.B row.padding=0
Controls left and right padding around each row of the report output. Default is "0".
.TP
.B column.padding=0
Controls padding between columns of the report output. Default is "1".
.TP
.B bulk=3
Is a number, defaulting to 3. When this number or greater of tasks are modified
in a single command, confirmation will be required, unless the
.B confirmation
variable is "no".
@@ -219,10 +318,9 @@ This is useful for preventing large-scale unintended changes.
.TP
.B nag=You have higher priority tasks.
This may be a string of text, or blank. It is used as a prompt when a task is
started or completed that is not considered high priority. The "task next"
command lists important tasks, and completing one of those does not generate
this nagging. Default value is: You have higher priority tasks. It is a gentle
reminder that you are contradicting your own priority settings.
started or completed that is not considered high priority. Default value is:
You have higher priority tasks. It is a gentle reminder that you are
contradicting your own priority settings.
.TP
.B complete.all.projects=yes
@@ -232,7 +330,7 @@ default value is "no".
.TP
.B list.all.projects=yes
May be yes or no, and determines whether 'projects' command lists all the project
May be yes or no, and determines whether the 'projects' command lists all the project
names you have used, or just the ones used in active tasks. The default value is
"no".
@@ -248,11 +346,46 @@ May be yes or no, and determines whether the 'tags' command lists all the tag
names you have used, or just the ones used in active tasks. The default value is
"no".
.TP
.B print.empty.columns=no
May be yes or no, and determines whether columns with no data for any task are
printed. Defaults to no.
.TP
.B search.case.sensitive=yes
May be yes or no, and determines whether keyword lookup and substitutions on the
description and annotations are done in a case sensitive way. Defaults to yes.
.TP
.B regex=off
Controls whether regular expression support is enabled.
The default value is off, because this advanced feature could cause confusion
among users that are not comfortable with regular expressions.
.TP
.B xterm.title=no
Sets the xterm window title when reports are run. Defaults to off.
.TP
.B patterns=on
Enables or disables pattern support on the command line, such as /foo/.
Defaults to on.
.TP
.B expressions=on
Enables or disables algebraic expression support on the command line, such as
"due<eom and (pri=H or pri=M)". Defaults to on.
.TP
.B dom=on
Enables or disables access to taskwarrior internals and task metadata on the
command line. Defaults to on.
.TP
.B json.array=off
Determines whether the query command encloses the JSON output in '[...]' to
create a properly-formed JSON array. Defaults to off.
.TP
.B _forcecolor=no
Taskwarrior shuts off color automatically when the output is not sent directly
@@ -270,11 +403,6 @@ $ task rc._forcecolor=yes list > file
.RE
.RE
.TP
.B blanklines=yes
Turning this value off causes taskwarrior to generate a more vertically compact
output.
.TP
.B shell.prompt=task>
The task shell command uses this value as a prompt. You can change it to any
@@ -282,11 +410,15 @@ string you like.
.TP
.B active.indicator=*
The character or string to show in the active column. Defaults to *.
The character or string to show in the start.active column. Defaults to *.
.TP
.B tag.indicator=+
The character or string to show in the tag_indicator column. Defaults to +.
The character or string to show in the tag.indicator column. Defaults to +.
.TP
.B dependency.indicator=D
The character or string to show in the depends.indicator column. Defaults to +.
.TP
.B recurrence.indicator=R
@@ -306,6 +438,22 @@ comparison of the data. This can be in either the 'side' style, which compares
values side-by-side in a table, or 'diff' style, which uses a format similar to
the 'diff' command.
.TP
.B burndown.bias=0.666
The burndown bias is a number that lies within the range 0 <= bias <= 1. The bias
is the fraction of the find/fix rates derived from the short-term data (last
25% of the report) versus the longer term data (last 50% of the report). A
value of 0.666 (the default) means that the short-term rate has twice the weight
of the longer-term rate. The calculation is as follows:
rate = (long-term-rate * (1 - bias)) + (short-term-rate * bias)
.TP
.B abbreviation.minimum=2
Minimum length of any abbreviated command/value. This means that "ve", "ver",
"vers", "versi", "versio" will all equate to "version", but "v" will not.
Default is 2.
.TP
.B debug=off
Taskwarrior has a debug mode that causes diagnostic output to be displayed.
@@ -321,6 +469,11 @@ Taskwarrior supports command aliases. This alias provides an alternate name
any of the commands. Several commands you may use are actually aliases -
the 'history' report, for example, or 'export'.
.SS EXTENSIONS
.TP
.B extensions=on
Enables the extension system. Defaults to on.
.SS DATES
.TP
@@ -330,18 +483,22 @@ the 'history' report, for example, or 'export'.
.TP
.B dateformat.holiday=YMD
.TP
.B dateformat.edit=m/d/Y H:N:S
.TP
.B dateformat.info=m/d/Y H:N:S
.TP
.B dateformat.annotation=m/d/Y
.TP
.B report.X.dateformat=m/d/Y
This is a string of characters that define how taskwarrior formats date values.
This is a string of characters that defines how taskwarrior formats date values.
The precedence order for the configuration variable is report.X.dateformat then
dateformat.report then dateformat. While report.X.dateformat only formats the
due date in reports, dateformat.report formats the due date both in reports
and "task info". If both of these are not set then dateformat will be applied
to the due date. Entered dates as well as all other displayed dates in reports
dateformat.report then dateformat for formating the due dates in reports.
If both report.X.dateformat and dateformat.report are not set then dateformat
will be applied
to the date. Entered dates as well as all other displayed dates in reports
are formatted according to dateformat.
The default value is: m/d/Y. The string should contain the characters:
The default value is: m/d/Y. The string can contain the characters:
.RS
.RS
@@ -349,13 +506,13 @@ m minimal-digit month, for example 1 or 12
.br
d minimal-digit day, for example 1 or 30
.br
y two-digit year, for example 09
y two-digit year, for example 09 or 12
.br
D two-digit day, for example 01 or 30
.br
M two-digit month, for example 01 or 12
.br
Y four-digit year, for example 2009
Y four-digit year, for example 2009 or 2013
.br
a short name of weekday, for example Mon or Wed
.br
@@ -365,9 +522,17 @@ b short name of month, for example Jan or Aug
.br
B long name of month, for example January or August
.br
V weeknumber, for example 03 or 37
v minimal-digit week, for example 3 or 37
.br
H two-digit hour, for example 03 or 11
V two-digit week, for example 03 or 37
.br
h minimal-digit hour, for example 3 or 21
.br
n minimal-digit minutes, for example 5 or 42
.br
s minimal-digit seconds, for example 7 or 47
.br
H two-digit hour, for example 03 or 21
.br
N two-digit minutes, for example 05 or 42
.br
@@ -375,6 +540,11 @@ S two-digit seconds, for example 07 or 47
.RE
.RE
.RS
The characters 'v', 'V', 'a' and 'A' can only be used for formatting printed
dates (not to parse them).
.RE
.RS
The string may also contain other characters to act as spacers, or formatting.
Examples for other values of dateformat:
@@ -398,11 +568,33 @@ Examples for other values of dateformat.report:
.RS
.RS
.br
a D b Y (V) would do an output as "Fri 24 Jul 2009 (30)"
a D b Y (V) would do an output as "Fri 24 Jul 2009 (30)"
.br
A, B D, Y would do an output as "Friday, July 24, 2009"
A, B D, Y would do an output as "Friday, July 24, 2009"
.br
vV a Y-M-D would do an output as "v30 Fri 2009-07-24"
wV a Y-M-D would do an output as "w30 Fri 2009-07-24"
.br
yMD.HN would do an output as "110124.2342"
.br
m/d/Y H:N would do an output as "1/24/2011 10:42"
.br
a D b Y H:N:S would do an output as "Mon 24 Jan 2011 11:19:42"
.RE
.RE
.RS
Undefined fields are put to their minimal valid values (1 for month and day and
0 for hour, minutes and seconds) when there is at least one more global date
field that is set. Otherwise, they are set to the corresponding values of
"now". For example:
.RE
.RS
.RS
.br
8/1/2013 with m/d/Y implies August 1, 2013 at midnight (inferred)
.br
8/1 20:40 with m/d H:N implies August 1, 2013 (inferred) at 20:40
.RE
.RE
@@ -433,9 +625,19 @@ is "sparse".
.TP
.B calendar.details.report=list
The report to run when displaying the details of tasks with due date when
The report to run when displaying the details of tasks with due dates when
running the "task calendar" command. The default value is "list".
.TP
.B calendar.offset=off
If "on" the first month in the calendar report is effectively changed by the
offset value specified in calendar.offset.value. It defaults to "off".
.TP
.B calendar.offset.value=-1
The offset value to apply to the first month in the calendar report. The default
value is "-1".
.TP
.B calendar.holidays=full
If set to full running "task calendar" will display holidays in the calendar by
@@ -444,23 +646,34 @@ of the holidays is also shown. If set to sparse only the days are color-coded
and no details on the holidays will be displayed. The displaying of holidays is
turned off by setting the variable to none. The default value is "none".
.SS Journal entries
.TP
.B calendar.legend=yes
Determines whether the calendar legend is displayed. The default value is "yes".
.SS JOURNAL ENTRIES
.TP
.B journal.time=no
May be yes or no, and determines whether the 'start' and 'stop' commands should
record an annotation when being executed. The default value is "no". The text of
the corresponding annotations is controlled by
the corresponding annotations is controlled by:
.TP journal.time.start.annotation=Started task
.TP
.B journal.time.start.annotation=Started task
The text of the annotation that is recorded when executing the start command and
having set journal.time.
.TP journal.time.stop.annotation=Stopped task
.TP
.B journal.time.stop.annotation=Stopped task
The text of the annotation that is recorded when executing the stop command and
having set journal.time.
.SS Holidays
.TP
.B journal.info=on
When enabled, this setting causes a change log of each task to be displayed by
the 'info' command. Default value is "on".
.SS HOLIDAYS
Holidays are entered either directly in the .taskrc file or via an include file
that is specified in .taskrc. For each holiday the name and the date is
required to be given:
@@ -504,7 +717,7 @@ be included like this:
.RS
.RS
.br
include /usr/local/share/doc/task/rc/holidays-US.rc
include /usr/local/share/doc/task/rc/holidays.en-US.rc
.RE
.RE
@@ -521,7 +734,7 @@ specified, taskwarrior will only show as many that will fit.
Determines whether dependency chain violations generate reminders.
.TP
.B dependency.confirm=yes
.B dependency.confirmation=yes
Determines whether dependency chain repair requires confirmation.
.SS COLOR CONTROLS
@@ -559,6 +772,12 @@ Task is due today
.B color.active
Task is started, therefore active.
.br
.B color.scheduled
Task is scheduled, therefore ready for work.
.br
.B color.blocking
Task is blocking another in a dependency.
.br
.B color.blocked
Task is blocked by a dependency.
.br
@@ -591,6 +810,12 @@ Task has priority L.
.br
.B color.pri.none
Task has no priority.
.br
.B color.completed
Task is completed.
.br
.B color.deleted
Task is deleted.
.RE
.RE
@@ -624,6 +849,16 @@ Colors any task assigned to project X.
Colors any task where the description or any annotation contains X.
.RE
.TP
.B color.uda.X=on green
Colors any taks that has the user defined attribute X.
.RE
.TP
.B color.error=green
Colors any of the error messages.
.RE
.TP
.B color.header=green
Colors any of the messages printed prior to the report output.
@@ -679,6 +914,11 @@ Color of holidays in calendar.
Color of weeknumbers in calendar.
.RE
.TP
.B color.label=
Colors the report labels. Defaults to not use color.
.RE
.TP
.B color.alternate=on rgb253
Color of alternate tasks.
@@ -701,6 +941,19 @@ Colors the bars on the ghistory report graphs. Defaults to red, green and
yellow bars.
.RE
.TP
.B color.burndown.pending=on red
.RE
.br
.B color.burndown.started=on yellow
.RE
.br
.B color.burndown.done=on green
.RS
Colors the bars on the burndown reports graphs. Defaults to red, green and
yellow bars.
.RE
.TP
.B color.undo.before=red
.RE
@@ -724,14 +977,96 @@ Colors the output of the merge command.
.RE
.TP
.B rule.precedence.color=overdue,tag,project,keyword,active,...
.B rule.precedence.color=due.today,active,blocking,blocked,overdue,due,scheduled,keyword.,project.,tag.,uda.,recurring,pri.,tagged,completed,deleted
.RS
This setting specifies the precedence of the color rules, from highest to
lowest. Note that the prefix 'color.' is omitted (for brevity), and that any
wildcard values (color.tag.XXX) is shortened to 'tag', which places all specific
tag rules at the same precedence, again for brevity.
wildcard value (color.tag.XXX) is shortened to 'tag.', which places all
specific tag rules at the same precedence, again for brevity.
.RE
.TP
.B color.debug=green
.RS
Colors all debug output, if enabled.
.RE
.SS URGENCY
The urgency calculation uses a polynomial with several terms, each of which
has a configurable coefficient. Those coefficients are:
.TP
.B urgency.next.coefficient=15.0
.RS
Urgency coefficient for 'next' special tag
.RE
.B urgency.blocking.coefficient=8.0
.RS
Urgency coefficient for blocking tasks
.RE
.B urgency.blocked.coefficient=-5.0
.RS
Urgency coefficient for blocked tasks
.RE
.B urgency.due.coefficient=12.0
.RS
Urgency coefficient for due dates
.RE
.B urgency.priority.coefficient=6.0
.RS
Urgency coefficient for priorities
.RE
.B urgency.waiting.coefficient=-3.0
.RS
Urgency coefficient for waiting status
.RE
.B urgency.active.coefficient=4.0
.RS
Urgency coefficient for active tasks
.RE
.B urgency.scheduled.coefficient=5.0
.RS
Urgency coefficient for scheduled tasks
.RE
.B urgency.project.coefficient=1.0
.RS
Urgency coefficient for projects
.RE
.B urgency.tags.coefficient=1.0
.RS
Urgency coefficient for tags
.RE
.B urgency.annotations.coefficient=1.0
.RS
Urgency coefficient for annotations
.RE
.B urgency.age.coefficient=2.0
.RS
Urgency coefficient for the age of tasks
.RE
.B urgency.age.max=365
.RS
Maximum age in days. After this number of days has elapsed, the urgency of a task won't increase any more because of aging.
.RE
.B urgency.user.tag.<tag>.coefficient=...
.RS
Specific tag coefficient.
.RE
.B urgency.user.project.<project>.coefficient=...
.RS
Specific project coefficient.
.B urgency.uda.<name>.coefficient=...
.RS
Presence/absence of UDA data.
.RE
The coefficients reflect the relative importance of the various terms in the
urgency calculation. These are default values, and may be modified to suit your
preferences, but it is important that you carefully consider any modifications.
See the original RFC-31 for complete details at:
http://tasktools.org/gitweb/gitweb.cgi?p=rfc.git;a=blob_plain;f=rfc31-urgency.txt;hb=HEAD
.SS SHADOW FILE
.TP
@@ -759,6 +1094,31 @@ shadow.notify=on
When this value is set to "on", taskwarrior will display a message whenever the
shadow file is updated by some task command.
.SS PUSH/PULL/MERGE
See the 'man task-synch' page for more details regarding usage.
.TP
.B merge.autopush=yes|no|ask
.RS
Determines post-merge behavior regarding automatic push.
.RE
.B merge.default.uri
.RS
Default merge URI.
.RE
.B pull.default.uri
.RS
Default pull URI.
.RE
.B push.default.uri
.RS
Default push URI.
.RE
.SS DEFAULTS
.TP
@@ -777,18 +1137,25 @@ command, if you don't specify one. The default is blank.
.TP
.B
default.command=list
default.due=...
Provides a default due date for the
.I task add
command, if you don't specify one. The default is blank.
.TP
.B
default.command=next
Provides a default command that is run every time taskwarrior is invoked with no
arguments. For example, if set to:
.RS
.RS
default.command=list project:foo
default.command=project:foo list
.RE
.RE
.RS
then taskwarrior will run the "list project:foo" command if no command is
then taskwarrior will run the "project:foo list" command if no command is
specified. This means that by merely typing
.RE
@@ -796,7 +1163,7 @@ specified. This means that by merely typing
.RS
$ task
.br
[task list project:foo]
[task project:foo list]
.br
\&
.br
@@ -823,10 +1190,10 @@ The description for report X when running the "task help" command.
.TP
.B report.X.columns
The columns that will be used when generating the report X. Valid columns are:
id, uuid, project, priority, priority_long, entry, start, end, due, countdown,
countdown_compact, age, age_compact, active, tags, depends, description_only,
description, recur, recurrence_indicator, tag_indicator and wait.
The IDs are separated by commas.
id, uuid, status, project, priority, priority_long, entry, start, end, due,
countdown, countdown_compact, age, age_compact, active, tags, depends,
description_only, description, recur, recurrence_indicator, tag_indicator and
wait. The IDs are separated by commas.
.TP
.B report.X.labels
@@ -860,20 +1227,23 @@ section for details on the sequence placeholders.
This adds the possibility to control the output of annotations for a task in a
report. See the
.B annotations
variable for details on the possible values.
variable for details on the possible values. Deprecated.
.TP
.B report.X.limit
An optional value to a report limiting the number of displayed tasks in the
generated report.
generated report. Deprecated.
.TP
Taskwarrior comes with a number of predefined reports in its default
configuration file. These reports are:
Taskwarrior comes with a number of predefined reports, which are:
.TP
.B next
Lists the most important tasks.
.TP
.B long
Lists all task, all data, matching the specified criteria.
Lists all pending tasks and all data, matching the specified criteria.
.TP
.B list
@@ -920,18 +1290,69 @@ Lists all waiting tasks matching the specified criteria.
Lists all tasks matching the specified criteria.
.TP
.B next
Lists all tasks with upcoming due dates matching the specified criteria.
.B blocked
Lists all tasks that have dependencies.
.SS USER DEFINED ATTRIBUTES
User defined attributes (UDAs) are an extension mechanism that allows you to
define new attributes for Taskwarrior to store and display. One such example is
an 'estimate' attribute that could be used to store time estimates associated
with a task. This 'estimate' attribute is not built in to Taskwarrior, but with
a few simple configuration settings you can instruct Taskwarrior to store this
item, and provide access to it for custom reports and filters.
This allows you to augment Taskwarrior to accommodate your workflow, or bend the
rules and use Taskwarrior to store and synch data that is not necessarily
task-related.
One important restriction is that because this is an open system that allows
the definition of any new attribute, Taskwarrior cannot understand the meaning
of that attribute. So while Taskwarrior will faithfully store, modify, report,
sort and filter your UDA, it does not understand anything about it. For example
if you define a UDA named 'estimate', Taskwarrior will not know that this value
is weeks, hours, minutes, money, or some other resource count.
.TP
.B uda.<name>.type=string|numeric|date|duration
.RS
Defines a UDA called '<name>', of the specified type.
.RE
.TP
.B uda.<name>.label=<column heading>
.RS
Provides a default report label for the UDA called '<name>'.
.RE
.TP
.B uda.<name>.values=A,B,C
.RS
For type 'string' UDAs only, this provides a comma-separated list of acceptable
values. In this example, the '<name>' UDA may only contain values 'A', 'B',
or 'C', but may also contain no value.
.RE
.TP
.B Example 'estimate' UDA
This example shows an 'estimate' UDA that stores specific values for the size
of a task.
.RS
.B uda.estimate.type=string
.br
.B uda.estimate.label=Size Estimate
.br
.B uda.estimate.values=trivial,small,medium,large,huge
.RE
.SH "CREDITS & COPYRIGHTS"
Taskwarrior was written by P. Beckingham <paul@beckingham.net>.
.br
Copyright (C) 2006 \- 2010 P. Beckingham
Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez.
This man page was originally written by Federico Hernandez.
Taskwarrior is distributed under the GNU General Public License. See
http://www.gnu.org/licenses/gpl-2.0.txt for more information.
Taskwarrior is distributed under the MIT license. See
http://www.opensource.org/licenses/mit-license.php for more information.
.SH SEE ALSO
.BR task(1),
@@ -940,7 +1361,7 @@ http://www.gnu.org/licenses/gpl-2.0.txt for more information.
.BR task-color(5),
.BR task-sync(5)
For more information regarding taskwarrior, the following may be referenced:
For more information regarding taskwarrior, see the following:
.TP
The official site at
@@ -951,10 +1372,11 @@ The official code repository at
<git://tasktools.org/task.git/>
.TP
You can contact the project by writing an email to
You can contact the project by emailing
<support@taskwarrior.org>
.SH REPORTING BUGS
.TP
Bugs in taskwarrior may be reported to the issue-tracker at
<http://taskwarrior.org>

View File

@@ -1,40 +0,0 @@
# This is a full BNF grammar for the taskwarrior command line. It is intended
# that a future release of taskwarrior will incorporate a complete lexer/parser
# implementing this grammar, which will allow for more sophisticated command
# lines, for example:
#
# task delete 1 2 4-7
# task add pri:H pro:X -- pro pri 1 ///
#
command ::= simple_command
| filter_command filter?
| id_command
| "export" file
| <id>
| <id> <substitution> ;
simple_command ::= "version" | "help" | "projects" | "tags" | "next" | "stats"
| "color" ;
filter_command ::= "summary" | "history" | "calendar" | "active" | "overdue"
| "oldest" | "newest" | "add" | "list" | "long" | "ls"
| "completed" ;
id_command ::= "delete" | "undelete" | "info" | "start" | "end" | "done"
| "undo" ;
filter ::= filter_part+ ;
filter_part ::= tag_add | tag_remove | attribute | word ;
tag_add ::= "+" word ;
tag_remove ::= "-" word ;
attribute ::= word ":" word ;
word ::=
file ::=
id ::= digit+ ;
digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
substitution ::= "/" word+ "/" word* "/" "g"? ;

View File

@@ -1,71 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'defaultwidth=120' >> x
echo 'include /usr/local/share/doc/task/rc/dark-violets-256.theme' >> x
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo 'color.alternate=' >> x
echo 'report.list.columns=id,project,priority_long,start,due,recur,age_compact,tags,description' >> x
echo 'report.list.labels=ID,Project,Pri,Started,Due,Recur,Age,Tags,Description' >> x
echo 'report.list.sort=due+,priority_long-,project+' >> x
# Import tasks with old timestamps
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Try out the color themes
entry: 1281914800
start: 1282044800
project: software
status: pending
uuid: 13afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Visit http://taskwarrior.org
entry: 1281089630
tags: www
priority: H
project: software
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Review task list
entry: 1281289630
due: 1282844800
recur: weekly
project: gtd
status: pending
uuid: 33afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Try out latest FireFox beta
entry: 1281289630
project: software
status: pending
uuid: 43afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
printf "y\n" | task rc:x import file.yaml
# Now the visible part.
echo
echo '$ task calendar sep 2010'
task rc:x calendar sep 2010
echo
echo '$ task calendar'
task rc:x calendar
echo
echo '$ task overdue'
task rc:x 2 done
exit

View File

@@ -1,71 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'defaultwidth=120' >> x
echo 'include /usr/local/share/doc/task/rc/dark-violets-256.theme' >> x
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo 'color.alternate=' >> x
echo 'report.list.columns=id,project,priority_long,start,due,recur,age_compact,tags,description' >> x
echo 'report.list.labels=ID,Project,Pri,Started,Due,Recur,Age,Tags,Description' >> x
echo 'report.list.sort=due+,priority_long-,project+' >> x
# Import tasks with old timestamps
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Try out the color themes
entry: 1281914800
start: 1282044800
project: software
status: pending
uuid: 13afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Visit http://taskwarrior.org
entry: 1281089630
tags: www
priority: H
project: software
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Review task list
entry: 1281289630
due: 1282844800
recur: weekly
project: gtd
status: pending
uuid: 33afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Try out latest FireFox beta
entry: 1281289630
project: software
status: pending
uuid: 43afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
printf "y\n" | task rc:x import file.yaml
# Now the visible part.
echo
echo '$ task calendar sep 2010'
task rc:x calendar sep 2010
echo
echo '$ task calendar'
task rc:x calendar
echo
echo '$ task overdue'
task rc:x 2 done
exit

View File

@@ -1,74 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'defaultwidth=120' >> x
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo 'color.alternate=' >> x
echo 'report.list.columns=id,project,priority_long,start,due,recur,age_compact,tags,description' >> x
echo 'report.list.labels=ID,Project,Pri,Started,Due,Recur,Age,Tags,Description' >> x
echo 'report.list.sort=due+,priority_long-,project+' >> x
# Import tasks with old timestamps
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Try out the color themes
entry: 1281914800
start: 1282044800
project: software
status: pending
uuid: 13afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Visit http://taskwarrior.org
entry: 1281089630
tags: www
priority: H
project: software
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Review task list
entry: 1281289630
due: 1282844800
recur: weekly
project: gtd
status: pending
uuid: 33afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Try out latest FireFox beta
entry: 1281289630
project: software
status: pending
uuid: 43afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
printf "y\n" | task rc:x import file.yaml
# Now the visible part.
echo
echo '$ task 1 annotate Try the blue one first'
task rc:x 1 annotate Try the blue one first
echo
echo '$ task list'
task rc:x list
echo
echo '$ task list due.before:eow'
task rc:x list due.before:eow
echo
echo '$ task 2 done'
task rc:x 2 done
exit

View File

@@ -1,71 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'defaultwidth=120' >> x
echo 'include /usr/local/share/doc/task/rc/dark-violets-256.theme' >> x
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo 'color.alternate=' >> x
echo 'report.list.columns=id,project,priority_long,start,due,recur,age_compact,tags,description' >> x
echo 'report.list.labels=ID,Project,Pri,Started,Due,Recur,Age,Tags,Description' >> x
echo 'report.list.sort=due+,priority_long-,project+' >> x
# Import tasks with old timestamps
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Try out the color themes
entry: 1281914800
start: 1282044800
project: software
status: pending
uuid: 13afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Visit http://taskwarrior.org
entry: 1281089630
tags: www
priority: H
project: software
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Review task list
entry: 1281289630
due: 1282844800
recur: weekly
project: gtd
status: pending
uuid: 33afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Try out latest FireFox beta
entry: 1281289630
project: software
status: pending
uuid: 43afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
printf "y\n" | task rc:x import file.yaml
# Now the visible part.
echo
echo '$ task calendar sep 2010'
task rc:x calendar sep 2010
echo
echo '$ task calendar'
task rc:x calendar
echo
echo '$ task overdue'
task rc:x 2 done
exit

View File

@@ -1,19 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'include /usr/local/share/doc/task/rc/dark-green-256.theme' >> x
# Now the visible part.
echo
echo '$ task color'
task rc:x color
exit

View File

@@ -1,38 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'defaultwidth=120' >> x
echo 'include /usr/local/share/doc/task/rc/dark-violets-256.theme' >> x
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo 'color.alternate=' >> x
echo 'report.list.columns=id,project,priority_long,start,due,recur,age_compact,tags,description' >> x
echo 'report.list.labels=ID,Project,Pri,Started,Due,Recur,Age,Tags,Description' >> x
echo 'report.list.sort=due+,priority_long-,project+' >> x
# Now the visible part.
echo
echo $ task add project:Cake Mix the ingredients
task rc:x add project:Cake Mix the ingredients
echo
echo $ task add project:Cake Bake the cake depends:1
task rc:x add project:Cake Bake the cake depends:1
echo
echo $ task add project:Cake Eat the cake depends:2
task rc:x add project:Cake Eat the cake depends:2
echo
echo $ task 2 info
task rc:x 2 info
exit

View File

@@ -1,50 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'defaultwidth=95' >> x
echo 'include /usr/local/share/doc/task/rc/dark-256.theme' >> x
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo 'color.alternate=' >> x
echo 'due=6' >> x
echo 'dateformat=YMD-H:N' >> x
echo 'dateformat.report=YMD-H:N' >> x
echo 'color.due=rgb530' >> x
echo 'report.list.columns=id,project,priority_long,due,recur,description' >> x
echo 'report.list.labels=ID,Pro,Pri,Due,Recur,Description' >> x
echo 'report.list.sort=due+,priority_long-,project+' >> x
# Now the visible part.
echo
echo '$ task config rc.dateformat YMD-H:N'
echo "Are you sure you want to add 'dateformat' with a value of 'YMD-H:N'? (y/n) y"
echo 'Config file .taskrc modified.'
echo
echo '$ task add Spa appointment due:20100917-11:30'
task rc:x add Lunch with Sue due:20100917-11:30
echo
echo '$ task list'
task rc:x list
echo
echo '$ task list rc.dateformat.report=m-d-Y'
task rc:x list rc.dateformat.report=m-d-Y
echo
echo '$ task list rc.dateformat.report=YMDHNS'
task rc:x list rc.dateformat.report=YMDHNS
echo
echo '$ task list rc.dateformat.report="A, B D, Y (wkV)"'
task rc:x list rc.dateformat.report="A, B D, Y (wkV)"
exit

View File

@@ -1,71 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'defaultwidth=120' >> x
echo 'include /usr/local/share/doc/task/rc/dark-violets-256.theme' >> x
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo 'color.alternate=' >> x
echo 'report.list.columns=id,project,priority_long,start,due,recur,age_compact,tags,description' >> x
echo 'report.list.labels=ID,Project,Pri,Started,Due,Recur,Age,Tags,Description' >> x
echo 'report.list.sort=due+,priority_long-,project+' >> x
# Import tasks with old timestamps
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Try out the color themes
entry: 1281914800
start: 1282044800
project: software
status: pending
uuid: 13afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Visit http://taskwarrior.org
entry: 1281089630
tags: www
priority: H
project: software
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Review task list
entry: 1281289630
due: 1282844800
recur: weekly
project: gtd
status: pending
uuid: 33afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Try out latest FireFox beta
entry: 1281289630
project: software
status: pending
uuid: 43afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
printf "y\n" | task rc:x import file.yaml
# Now the visible part.
echo
echo '$ task calendar sep 2010'
task rc:x calendar sep 2010
echo
echo '$ task calendar'
task rc:x calendar
echo
echo '$ task overdue'
task rc:x 2 done
exit

View File

@@ -1,47 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'defaultwidth=95' >> x
echo 'monthsperline=3' >> x
echo 'calendar.details.report=list' >> x
echo 'calendar.details=full' >> x
echo 'calendar.holidays=full' >> x
echo 'calendar.legend=yes' >> x
echo 'include /usr/local/share/doc/task/rc/dark-green-256.theme' >> x
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
# Import tasks with old timestamps
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Put some more sample screenshots on taskwarrior.org
entry: 1283593511
project: 1.9.3
status: pending
due: 1284647841
uuid: 89295b14-9e15-4771-9dd9-7e82cf8b67b5
annotation:
entry: 1283593519
description: Show the calendar with holidays
annotation:
entry: 1283693560
description: Show a task that is due
...
EOF
printf "y\n" | task rc:x import file.yaml
# Now the visible part.
echo
echo '$ task calendar'
task rc:x calendar
exit

View File

@@ -1,39 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'defaultwidth=95' >> x
echo 'include /usr/local/share/doc/task/rc/light-256.theme' >> x
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo 'color.alternate=on rgb253' >> x
echo 'due=6' >> x
echo 'color.due=color0' >> x
echo 'color.tagged=color0' >> x
echo 'report.list.columns=id,project,priority_long,due,recur,description' >> x
echo 'report.list.labels=ID,Pro,Pri,Due,Recur,Description' >> x
echo 'report.list.sort=due+,priority_long-,project+' >> x
# Now the visible part.
echo
echo '$ task add Get stationery supplies proj:office pri:H due:sat +@mall +@weekend'
task rc:x add Get stationery supplies proj:office pri:H due:sat +@mall +@weekend
echo
echo '$ task annotate 1 Remember to get batteries'
task rc:x annotate 1 Remember to get batteries
sleep 2
echo
echo '$ task annotate 1 I wonder if they have that antique fanfold computer paper'
task rc:x annotate 1 I wonder if they have that antique fanfold computer paper
echo
echo '$ task 1 info'
task rc:x 1 info

View File

@@ -1,42 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'defaultwidth=90' >> x
echo 'journal.time=yes' >> x
echo 'dateformat.annotation=Y/m/d H:N' >> x
#echo 'include /usr/local/share/doc/task/rc/dark-256.theme' >> x
#echo 'include /usr/local/share/doc/task/rc/dark-green-256.theme' >> x
echo 'include /usr/local/share/doc/task/rc/dark-yellow-green.theme' >> x
# Now the visible part.
echo
echo '$ task add Complete the client report due:friday +@work'
task rc:x add Complete the client report due:friday +@work
echo
echo '$ task config journal.time on'
echo "Are you sure you want to add 'journal.time' with a value of 'on'? (y/n) y"
echo 'Config file .taskrc modified.'
echo
echo '$ task start 1'
task rc:x start 1
echo
echo '(some work happens)'
sleep 2
echo
echo '$ task list'
task rc:x list
echo
echo '$ task stop 1'
task rc:x stop 1
echo
echo '$ task list'
task rc:x list
exit

View File

@@ -1,35 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'defaultwidth=95' >> x
echo 'monthsperline=3' >> x
echo 'include /usr/local/share/doc/task/rc/dark-violets-256.theme' >> x
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo 'color.alternate=' >> x
echo 'due=3' >> x
echo 'report.list.columns=id,project,priority_long,start,due,recur,age_compact,description' >> x
echo 'report.list.labels=ID,Project,Pri,Started,Due,Recur,Age,Description' >> x
echo 'report.list.sort=due+,priority_long-,project+' >> x
# Now the visible part.
echo
echo '$ task add Deposit paycheck due:friday recur:14days +@bank'
task rc:x add Deposit paycheck due:friday recur:14days
echo
echo '$ task calendar rc.recurrence.limit=6'
task rc:x calendar rc.recurrence.limit=6
echo
echo '$ task list'
task rc:x list
exit

View File

@@ -1,74 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'defaultwidth=120' >> x
echo 'include /usr/local/share/doc/task/rc/dark-red-256.theme' >> x
echo 'color.alternate=' >> x
echo 'report.list.columns=id,project,priority_long,start,due,recur,age_compact,tags,description' >> x
echo 'report.list.labels=ID,Project,Pri,Started,Due,Recur,Age,Tags,Description' >> x
echo 'report.list.sort=due+,priority_long-,project+' >> x
# Import tasks with old timestamps
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Try out the color themes
entry: 1281914800
start: 1282044800
project: software
status: pending
uuid: 13afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Visit http://taskwarrior.org
entry: 1281089630
tags: www
priority: H
project: software
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Review task list
entry: 1281289630
due: 1282844800
recur: weekly
project: gtd
status: pending
uuid: 33afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Try out latest FireFox beta
entry: 1281289630
project: software
status: pending
uuid: 43afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
printf "y\n" | task rc:x import file.yaml
# Now the visible part.
echo
echo '$ task 1 annotate Try the red one next'
task rc:x 1 annotate Try the red one next
echo
echo '$ task list'
task rc:x list
echo
echo '$ task 2 done'
task rc:x 2 done
echo
echo '$ task summary'
task rc:x summary
exit

View File

@@ -1,71 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'defaultwidth=120' >> x
echo 'include /usr/local/share/doc/task/rc/dark-violets-256.theme' >> x
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo 'color.alternate=' >> x
echo 'report.list.columns=id,project,priority_long,start,due,recur,age_compact,tags,description' >> x
echo 'report.list.labels=ID,Project,Pri,Started,Due,Recur,Age,Tags,Description' >> x
echo 'report.list.sort=due+,priority_long-,project+' >> x
# Import tasks with old timestamps
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Try out the color themes
entry: 1281914800
start: 1282044800
project: software
status: pending
uuid: 13afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Visit http://taskwarrior.org
entry: 1281089630
tags: www
priority: H
project: software
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Review task list
entry: 1281289630
due: 1282844800
recur: weekly
project: gtd
status: pending
uuid: 33afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Try out latest FireFox beta
entry: 1281289630
project: software
status: pending
uuid: 43afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
printf "y\n" | task rc:x import file.yaml
# Now the visible part.
echo
echo '$ task calendar sep 2010'
task rc:x calendar sep 2010
echo
echo '$ task calendar'
task rc:x calendar
echo
echo '$ task overdue'
task rc:x 2 done
exit

View File

@@ -1,63 +0,0 @@
#! /bin/bash
# Small script to create a fragment of output for display on the front page
# of taskwarrior.org, as a teaser.
rm pending.data completed.data undo.data
echo 'data.location=.' > x
echo '_forcecolor=on' >> x
echo 'defaultwidth=120' >> x
echo 'include /usr/local/share/doc/task/rc/dark-violets-256.theme' >> x
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo 'color.alternate=' >> x
echo 'report.list.columns=id,project,priority_long,start,due,recur,age_compact,tags,description' >> x
echo 'report.list.labels=ID,Project,Pri,Started,Due,Recur,Age,Tags,Description' >> x
echo 'report.list.sort=due+,priority_long-,project+' >> x
# Import tasks with old timestamps
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Try out the color themes
entry: 1281914800
start: 1282044800
project: software
status: pending
uuid: 13afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Visit http://taskwarrior.org
entry: 1281089630
tags: www
priority: H
project: software
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Review task list
entry: 1281289630
due: 1282844800
recur: weekly
project: gtd
status: pending
uuid: 33afada0-a446-8d5a-c213-30d99d52c4b0
task:
description: Try out latest FireFox beta
entry: 1281289630
project: software
status: pending
uuid: 43afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
printf "y\n" | task rc:x import file.yaml
# Now the visible part.
echo
echo '$ task timesheet 2'
task rc:x timesheet 2
exit

View File

@@ -1,534 +0,0 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 1.9.3-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Intro -----------------------------------------------------
http://taskwarrior.org Hello, and welcome to this taskwarrior version 1.9.3 demo.
I'm going to show you over 100 features, so don't blink, or
you'll miss some. Even experienced users are going to learn
*something*.
I will start off with basic usage, and proceed to more
sophisticated commands as we go along.
---------------------------------------- Basic Usage -----------------------------------------------
Let's get started. We're planning a party, and there is a
lot of work to do, so let's capture these tasks.
task add Select a free weekend in August First decide 'when'.
task add Select and book a venue Then decide 'where'.
task add Come up with a guest list Then decide 'who'.
task add Mail invitations Let's send out nice invitations.
task add Select a caterer And a caterer.
task list Let's take a look. Good.
task log Order a special cake Now I've already ordered a cake, so rather than 'add' this,
I'm going to 'log' it. This just means that I want to keep
track of the task, but I've already done it. It saves me a
step.
task 4 duplicate /Mail/Design/ As for those invitations, I'm going to need to design them
task 4 dup /Mail/Print/ first. And I'm also going to need print them. Here we are
task list duplicating a task and making a substitution. Notice how
the commands can be abbreviated, provided they are still
unique.
task 3 done That looks good - but now I think of it, I already have my
task list guest list, so I can mark that one as done.
And that's basic usage, and you already know enough to be
productive using taskwarrior. If you stopped here, you
would be perfectly able to manage your task list.
But if you want to see what it can really do, keep watching...
---------------------------------------- Projects --------------------------------------------------
task add Pay teh rent on teh 31st Remember to pay the rent at the end of the month. Oh,
task 7 /teh/teh/g that was sloppy, but it can be fixed with a global
task list substitution.
task 7 project:home We can now use projects to separate home chores from the
party preparation. Let's assign that last task to the
'home' project. Note that a task may only belong to one
project.
task 1-6 project:party And we will put those first six tasks in the 'party'
project. See how we specify a range of tasks? Taskwarrior
will want to confirm bulk changes like this, but we'll
accept all changes here.
task projects Now that we have multiple projects, as shown here, we can
task list project:home use project as a filter for the list report. You can see
task li pro:par again that we can abbreviate 'list' and 'project', but when
we abbreviate 'party', we are filtering all the projects
that begin with 'par'.
---------------------------------------- Priorities ------------------------------------------------
task 1-3,5 priority:H Priorities are another way to organize tasks. You can use
task list priority values of high, medium and low, and taskwarrior
knows these as H, M or L.
task 3 pri: You can remove priorities by specifying a blank value.
---------------------------------------- Tags ------------------------------------------------------
task list A task may only have one project, but it may have any number
of tags, which are just single words associated with the task.
task 3,5,6 +mall I can go to the print shop at the mall, and do all the
invitation tasks, so let's tag them all.
task long The long report shows tags, too,
task list +mall and I can use tags as a filter to any report too.
task 3 -mall I made a mistake - I can't mail out the invitations at the
mall, so let's remove that tag.
---------------------------------------- Modifications ---------------------------------------------
task 7 Pay rent at the end of the month Task 7 is not worded correctly, so I can modify that by
specifying a task ID and a new description. This is also
considered a bulk change, and so requires confirmation.
task add music We'll need music.
task 8 prepend Select some I can prepend to that.
task 8 append for after dinner I can append to that.
task list
task edit I can also go straight into an editor and modify anything.
task add Hire a band? <--- Sometimes the command will confuse the shell. In this case,
what would happen if there was a file named 'bands' in the
current directory? The shell would expand that wildcard,
so to avoid that, you can...
task add Hire a band\? <--- escape the wildcard...
task add "Hire a band?" <--- or quote the whole description...
task add -- Hire a band\? +dj You can also use the minus minus operator which tells
taskwarrior to stop being clever and interpret the rest
of the arguments as a task description. Otherwise, that
+dj would be interpreted as a tag.
task undo We don't need a band, so the easiest way to get rid of that
task is to undo the last change. Taskwarrior has a
complete undo stack, so you can undo all the way back to
the beginning.
task 1 delete The undo operation gets rid of the task completely, but I
task undo could also have just deleted the task, then the deletion
itself would be tracked, and also undoable.
---------------------------------------- Info ------------------------------------------------------
task 1 info During that undo operation, taskwarrior displayed metadata
task 1 that is associated with the task. You can display this
with the info command, and its shortcut.
task stats There are also statistics that taskwarrior gathers, which
I can display.
---------------------------------------- Annotations -----------------------------------------------
task 1 annotate the 12th looks good Annotations are little notes that can be added to a task.
task 1 annotate or the 13th There can be any number, and each has a time stamp.
task list
task list rc.annotations:full You can choose to display annotations in different ways.
task list rc.annotations:sparse
task list rc.annotations:none
task 1 denotate 13th Annotations can be removed by providing a matching pattern.
task list
---------------------------------------- Configuration ---------------------------------------------
task show There is a 'show' command, that is used to display the
active configuration. There are hundreds of settings that
can be changed, and every one has a sensible default.
man taskrc If you want a complete list of all the settings and their
meanings, read the man page.
task config answer 42 The 'config' command is used to modify the settings, and in
this case the configuration variable 'answer' is given the
value of 42.
task show answer The 'show' command indicates that the value was changed,
task config answer and also that the variable is unrecognized. The show
command performs a detailed check on your configuration, and
alerts you to several kinds of problem. The config command
can also remove a value.
task rc.report.list.sort=description+ list
A very powerful feature is the ability to override the
configuration variables temporarily. Here I am requesting
an ascending sort on the description field only.
---------------------------------------- Defaults --------------------------------------------------
task config default.command list There is a default command, which can be set to anything,
task in this case it is set to the 'list' report. Then running
taskwarrior with no command name runs the default command.
task config default.priority H I can also specify a default priority and project, which
task config default.project Work means that any tasks added will use them, unless an
task add New task alternative is provided.
task list
task undo Let's just revert those changes, to clean up.
task config default.priority
task config default.project
---------------------------------------- Aliases ---------------------------------------------------
task config alias.zzz list You can create aliases to effectively rename commands.
task zzz
task z You can abbreviate those, too.
---------------------------------------- Color -----------------------------------------------------
task config color on All the examples so far have been shown with color turned
task list off. How about some color?
What you see is the result of a set of color rules being
applied to the tasks. There is a hierarchy of color rules
that colorize a task based on the metadata
task 1 "bg:on red" Here is an example of an explicit override to the color
task list rules where a specific task is given a red background.
task 1 bg: Note that the quotes are necessary, otherwise the shell
will consider "bg:on" and "red" to be separate arugments.
task color Taskwarrior supports 256 colors on certain terminal
emulators, and this shows the range of colors available.
task color white on red This is how to show a color sample.
task color legend Or samples of all the active color settings.
Themes are a simple way to use coordinated color schemes
so by including a color theme into the configuration file,
you can see some striking effects.
A blue theme.
# include /usr/local/share/doc/task/rc/dark-blue-256.theme
vi ~/.taskrc
task color legend
task list
A red theme.
# include /usr/local/share/doc/task/rc/dark-red-256.theme
vi ~/.taskrc
task color legend
task list
A general dark theme.
# include /usr/local/share/doc/task/rc/dark-256.theme
vi ~/.taskrc
task list
Here is are two color rules that specify a dark blue
background for all tasks that are part of the 'party'
project, and uses bold to identify any tasks with the
keyword 'invitations' in the description.
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
man task-color There is a man page with a writeup of all the color
capabilities.
---------------------------------------- Active tasks ----------------------------------------------
task 2 start I'm selecting a venue, so let's indicate that task 2 is
task list active by starting it. See how active tasks are affected
by the color rules.
task active There is an active report that shows only active tasks, and
task 2 stop you can mark any active task as inactive, by stopping it.
task config journal.time on (y) There is a journalling feature that records the start and
task config dateformat.annotation 'Y/m/d H:N' (y)
task 2 start stop times as annotations. We'll turn that on, and add
task list venue the time to the annotation date format.
task 2 stop
task list venue
---------------------------------------- Due dates -------------------------------------------------
task 1 due:7/31/2010 Due dates can be specified as dates...
task 1 due:2wks as some distance into the future...
task 1 due:-2wks or past...
task 1 due:eom or by mnemonic (end of month)...
task 2 due:8th or by ordinal...
task 2 due:sunday or by day of week...
task 5 due:eow
task list Some of these dates are in the past, so now you see there
task overdue are overdue tasks. Due dates have different colors for
due, imminent, today and overdue values.
task rc.dateformat.report:Y-M-DTH:N:SZ list
You can also choose the format - for input and output.
---------------------------------------- Calendar --------------------------------------------------
task calendar When tasks have due dates, you can see them on the calendar.
vi ~/.taskrc
# include /usr/local/share/doc/task/rc/holidays-US.rc
task calendar
Taskwarrior provides sample holiday files. You can create
your own, or use one of the samples to show holidays on the
calendar.
task cal 2010 You can see the whole year.
task rc.calendar.details:full cal You can see the tasks with due dates also.
task rc.calendar.holidays:full cal And you can see the holidays.
---------------------------------------- Recurrence ------------------------------------------------
task 7 info Remember the task we added to pay the rent? We're going to
task 7 due:eom recur:monthly need to do that every month. Recurring tasks allow us to
task 7 set up a single task that keeps coming back, just as you'd
expect.
task 7 until:eoy You can also limit the extent of the recurrence. Let's make
sure the task doesn't recur after the lease ends.
task recurring And there is a recurring report that shows you only the
recurring tasks.
To illustrate a point, let's set up a recurring annual task
as a reminder to pay taxes, and put the due date in the past.
This will cause task to fill in the gaps, and create a series
of severely overdue tasks.
task add Pay taxes due:4/15/2007 recur:yearly
task long
task 11 delete # y y Deletions to recurring tasks can be escalated to include all
task list the recurrences of a task.
---------------------------------------- Shell -----------------------------------------------------
task shell You can use the shell command to create a more immersive
task> projects environment. Any task command you run outside the shell
task> tags can also be run inside the shell, without the need to prefix
task> list every command with "task".
task> quit
---------------------------------------- Special Tags ----------------------------------------------
task 6 +nocolor You've seen tags, but there are also 'special tags' that
task list have effects on individual tasks. The 'nocolor' special
tag causes the color rules to be bypassed.
task tags Special tags are highlighted by the 'tags' command.
task 6 -nocolor There are others - the 'nonag' special tag prevents the
generation of nag messages when you work on low priority
tasks when there are more important ones.
The 'nocal' special tag will prevent a task from appearing
on the calendar.
---------------------------------------- Waiting ---------------------------------------------------
task add Look for new apartment due:eoy When you have a task with a due date that is far out into
task list the future, you may want to hide that task for a while.
task 10 wait:12/1/2010 You can provide a wait date for a task, and it will remain
task list hidden until that date. It will no longer be cluttering
task waiting your task list, but it is still there, and visible using
the 'waiting' report. When the wait date comes, the task
will just pop back into the list.
task add Do something in a few seconds To illustrate this, let's set up a task with a very short
task 11 wait:5s wait time of five seconds.
task list It's gone.
(sleep 5) We wait for 5 seconds...
task list And it's back.
task 11 rc.confirmation:no delete And now it's deleted.
---------------------------------------- Dependencies ----------------------------------------------
task list pro:party Taskwarrior supports dependencies. Let's take a look at the
party planning tasks, and assign dependencies.
task 3 depends:6 Let's see. I can't mail invitations until they are printed.
task 6 dep:5 I can't print them until I design them.
task 2 dep:1 I need to select a weekend before a location.
task 5 dep:1,2 Design depends on location and weekend.
task 4 dep:1 And the caterer needs to know where.
task long pro:party All my tasks are blocked except task 1. That makes sense.
task 5 dep:-1 Hmm, that double dependency isn't right.
task blocked Here are the blocked tasks.
task unblocked and the opposite, the unblocked tasks.
task 1 info If we look at task 1 closely, we can see that it is blocking
task 2 info 2 and 4. And if we look at task 2, we see that it is
blocked by 1, and blocking 5.
This is called a dependency chain, which is a string of tasks
that are all connected not only by their project, but by
dependencies.
Now we understand that task 1 should be done first, but you
may still violate the laws of physics if you wish. Let's
complete task 2 and see what happens.
task 2 done (y) Taskwarrior realizes what you are doing, and offers to fix
task 1 info the dependency chain to reflect what you have done.
---------------------------------------- Reports ---------------------------------------------------
task minimal Taskwarrior has a good many reports. There is the bare minimum.
task ls The simple.
task list The standard.
task long The kitchen sink.
task all The packrat.
task completed Nostalgia.
task recurring Groundhog day.
task waiting Surprises.
task blocked Wedged.
task unblocked Unencumbered.
task oldest Ancient history.
task newest Contemporary.
task timesheet Corporate.
task next And "what should I work on next?" This one can be useful
because it pulls a few of the highest priority tasks from
all the projects. It's the report we should all be using.
---------------------------------------- Custom Report ---------------------------------------------
You can even define your own custom report. Let's quickly
create a custom report - we'll call it foo - and I can
choose from a long list of fields to include in the report,
but I want to see the ID, the date when I entered the task,
and the description. I can specify the labels for those
columns, the sort order of the report, and I can filter.
cat >> ~/.taskrc
report.foo.description=My own report
report.foo.columns=id,entry,description
report.foo.labels=ID,Entered,Description
report.foo.sort=entry+,description+
report.foo.filter=status:pending
task help | grep foo Custom reports also show up on the help output.
task show report.foo I can inspect the configuration.
task foo And they can be run just like the other reports.
---------------------------------------- Charts ----------------------------------------------------
task history The history report gives monthly totals of tasks added,
task history.annual completed and deleted. There is also an annual version.
task ghistory There is a graphical monthly...
task ghistory.annual and annual version.
task summary There is a project summary report that shows progress in
all the projects.
---------------------------------------- Advanced Filters ------------------------------------------
task list Filters are a very powerful tool. First here is an
task list invit unfiltered list, which shows all tasks. Now again, but with
the text 'invit', which acts as a filter on the description
field.
task list description.contains:invit This is the equivalent form using attribute modifiers. In
this example we are filtering on descriptions that contain
the word fragment. Here we are using the 'contains'
modifier, but there are many others.
task list desc.word:the All tasks containing the whole word 'the'. See how
annotations are also searched?
task list desc.noword:invitations Here is a list of all tasks that do not contain the whole
word 'invitations'.
task list pro:party Here list all tasks in the 'party' project.
task list pro.is:party And the full equivalent.
task list pro.not:party Here list tasks that are not in the 'party' project. I
could have also used 'isnt' here - there are several
synonyms for modifiers, so that the filter can be written
so that it reads naturally.
task list pro:party pri.over:L Here the 'over' modifier is filtering on priorities that
sort higher than 'Low', and also filtering on the 'party'
project. There are two terms in this filter.
task list pro:party limit:2 Same again, but only show me the first two tasks.
task list limit:page Now all tasks, but just show the first page of tasks. I
don't have a page full of tasks here, but you get the idea.
task all status:pending Now you can see how some of the built-in reports work. The
'list' report is just all tasks, filtered so that only the
pending tasks are shown.
task all status:waiting The 'waiting' report is similarly defined.
---------------------------------------- Import/Export ---------------------------------------------
task export.csv You can export your tasks. Here you see all tasks being
exported in CSV format.
task export.csv venue Let's just export one task in CSV format...
task export.vcalendar venue Or in VCalendar format...
task export.yaml venue Or YAML.
cat file.text I can also import. Here I am importing simple lines of
task import file.text text. Taskwarrior recognizes the format and confirms.
cat file.yaml Here is a YAML example. Taskwarrior can read several
task import file.yaml formats, including old versions of its data files. Using
YAML, you can round-trip the data without loss.
task new limit:2 Here are the imported tasks.
---------------------------------------- Help ------------------------------------------------------
task help You'll find a quick reference page built in, with the 'help'
man task command, or perhaps you'll want to take a look at the several
man taskrc man pages installed. This demo has superficially shown
man task-color many features which have more capability and depth which you
can find in the man pages, and online.
man task-tutorial This screencast is actually just a recording of me going
through the tutorial.
man task-faq Some frequently asked questions are answered here.
man task-sync You've patiently watched this whole movie, so here's your
reward - taskwarrior 1.9.3 has network synchronization
features, for sharing tasks across computers. But this is
just a teaser - synch will be shown in the next movie.
---------------------------------------- Wrap up ---------------------------------------------------
task version And that's it. Don't forget to take a look at
taskwarrior.org.
Thank you for watching.
---------------------------------------- End -------------------------------------------------------

View File

@@ -1,34 +0,0 @@
Hello. This is a demonstration of the
taskwarrior color capabilities coming
in version 1.9.
task color The color command shows the various
supported colors. For this you will
need an xterm with 256-color support,
or an equivalent.
This demo uses iTerm running on Snow
Leopard.
task add Prepare 1.9 for release Let's create a few tasks, to illustrate
task add Update the various docs the features. Five should be enough.
task add Run the regression tests
task add Make the packages
task add Upload to distributions
--- NOTES
16-color mode
upgrade
blending
alternate lines
--- NOTES
task ls Okay, let's color any tasks that
mention tests a nice medium blue.
echo 'color.keyword.test=color23' >> ~/.taskrc

View File

@@ -1,40 +0,0 @@
$ # Q: What is a formatting hook?
$ # A: Lua code that modifies taskwarrior output at run time.
$
$ cat > hooks.lua
-- Make ID not show up
function id (name, value)
return "(shhh - it's a secret)", 0, nil
end
-- Decorate the UUID
function uuid (name, value)
return '<<<' .. value .. '>>>', 0, nil
end
^D
$ # Q: What is a command hook?
$ # A: Lua code that changes the way commands work.
$
$ cat >> hooks.lua
-- Disable tags
function notags ()
return 1, 'Tags have been disabled'
end
^D
$
$ task config -- hook.format-id ~/demo/hooks.lua:id
$ task config -- hook.format-uuid ~/demo/hooks.lua:uuid
$ task config -- hook.pre-tag ~/demo/hooks.lua:notags
$ task list
$ task add Demonstrate formatting hooks
$ task 1 info
$ task config hooks on
$ task 1 info
$ task 1 +try_to_tag

View File

@@ -1,33 +0,0 @@
$
$ # Taskwarrior now has Lua 5.1.4 built in.
$
$ task version
$ cat > hooks.lua
function foo ()
print ("Hello from Lua")
return 0, nil
end
^D
$
$ # Taskwarrior can call into Lua at many points during execution.
$ # This one is called immediately before taskwarrior quits.
$
$ task rc.hook.pre-exit=~/hooks.lua:foo version
$
$ # While taskwarrior is calling Lua code, the Lua can also call
$ # back into a taskwarrior API, for information.
$
$ cat > hooks.lua
function foo ()
print "Lua version is " .. task_lua_version ())
print "Taskwarrior version is " .. task_version ())
return 0, nil
end
^D
$
$ cat >> .taskrc
hook.pre-exit=~/hooks.lua:foo
^D
$
$ task version

View File

@@ -1,109 +0,0 @@
Hello, and welcome to this quick demo of the
taskwarrior program.
task add do laundry Let's add some tasks
I need to do laundry
task add project:garage order dumpster Oh yeah, I need to order the dumpster
task add +phone tell mom i loveher Must call Mom (that "phone" there is a tag - they can
be useful for searching and categorizing)
task add +phone pro:garage schedule
goodwill pickup
task ad +email pro:garage ask Tom if Notice I can abbreviate commands
he wants that old bkie
task ls Let's see what we've got
Oh, I spelled bike wrong
task 5 /bkie/bike/
task ls That's better
task 1 pro:home Let's assign projects
task 3 pro:home tell mom I love her
task ls pro:garage
task long pro:garage Let's see all the columns
task list pro:garage There are different ways to list
task lis +phone By tag
task li pro:garage +phone By project and tag
task l mom By word
task 1 priority:H Priorities can be High, Medium or Low
task pri:H 3
task 1 pri:M
task li The list is sorted by priority.
task 2 pri:L
task li
task done 3 Suppose task 3 is done
task li ...and it's gone
task 2 +phone +mistake Lets add tags
# Oops!
task 2 -mistake or remove tags
task tags or look at all the tags
task info 2 or all the details
task projects or all the projects
task 3 fg:bold Let's make it colorful
task 4 fg:bold_green
task li
task 3 fg:bold_underline_white
task li
task 4 bg:on_bright_red fg:bold_yellow
task li Oh that's just nasty - let's get rid of that.
task 4 bg:
task li
task 4 fg:
task 3 fg:
task colors There are many combinations to choose from
task 1 due:6/8/2008 Let's add a due date
date
task li
task calendar Notice the due task is in yellow, today is marked cyan
task 1 due:5/20/2008 This is now an overdue task
task li and it shows up red
task overdue
task cal
task export file.csv You can export the tasks to a spreadsheet
cat file.csv
task start 1 Started tasks can be used as reminders
of what you are supposed to be doing
task active They show up as active
task done 1 Let's clear out a couple
task li
task done 3
task active
task summary Summary shows progress on all projects
task history History shows general activity - how many added,
completed etc, by month
task ghistory This report shows a histogram of tasks that were
added (in red), completed (in green) and deleted
(in yellow), all by month.
And that's it. There are more commands than this
covered in the online documentation, but this should give
the basic idea.
Thank you for watching.

16
doc/misc/themes/README Normal file
View File

@@ -0,0 +1,16 @@
Themes
To generate samples of themes, first execute the 'run' script to generate the
sample data. Note that this data may need to be tweaked to include qualities
that need to be illustrated in theme sample.
Then edit the 'rc' file to include the desired theme file.
Then run 'per' once per theme, and capture the display.
Note that this will require that the terminal window be switched between a black
and white background to properly show the light and dark themes.
Note that for the solarized themes, the terminal color palette needs to be set
to specific colors.

8
doc/misc/themes/per Executable file
View File

@@ -0,0 +1,8 @@
echo '$ task list'
task rc:rc list | grep -v alternate
echo '$ task summary'
task rc:rc summary | grep -v alternate
echo '$ task ghistory'
task rc:rc ghistory | grep -v alternate
echo '$ task calendar'
task rc:rc calendar | grep -v alternate

47
doc/misc/themes/run Executable file
View File

@@ -0,0 +1,47 @@
rm pending.data completed.data undo.data rc
cat <<EOF >>rc
data.location=.
confirmation=off
_forcecolor=on
#include ~/task-2.0.0.git/doc/rc/light-16.theme
#include ~/task-2.0.0.git/doc/rc/dark-16.theme
#include ~/task-2.0.0.git/doc/rc/light-256.theme
#include ~/task-2.0.0.git/doc/rc/dark-256.theme
#include ~/task-2.0.0.git/doc/rc/dark-gray-256.theme
#include ~/task-2.0.0.git/doc/rc/dark-red-256.theme
#include ~/task-2.0.0.git/doc/rc/dark-green-256.theme
#include ~/task-2.0.0.git/doc/rc/dark-blue-256.theme
include ~/task-2.0.0.git/doc/rc/dark-violets-256.theme
#include ~/task-2.0.0.git/doc/rc/dark-yellow-green.theme
#include ~/task-2.0.0.git/doc/rc/solarized-dark-256.theme
#include ~/task-2.0.0.git/doc/rc/solarized-light-256.theme
EOF
task rc:rc add Ordinary task
task rc:rc add Started task
task rc:rc 2 start
task rc:rc add High priority task pri:H
task rc:rc add Medium priority task pri:M
task rc:rc add Low priority task pri:L
task rc:rc add Household task project:Home
task rc:rc add Outdoor task project:Garden
task rc:rc add Overdue task due:yesterday
task rc:rc add Due task due:tomorrow
task rc:rc add Not yet due tasks due:2/14/2012
task rc:rc add Recurring task due:eom recur:monthly
task rc:rc add Tagged task +tag1
task rc:rc add Blocking task
task rc:rc add Dependent task
task rc:rc log Completed_1 project:Garden
task rc:rc log Completed_2 project:Garden
task rc:rc log Completed_3 project:Home
task rc:rc add Deleted_1
task rc:rc 14 mod depends:13
task rc:rc 15 delete

View File

@@ -0,0 +1,43 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Active tasks ----------------------------------------------
task 2 start I'm selecting a venue, so let's indicate that task 2 is
task list active by starting it. See how active tasks are affected
by the color rules.
task active There is an active report that shows only active tasks, and
task 2 stop you can mark any active task as inactive, by stopping it.
task config journal.time on (y) There is a journalling feature that records the start and
task config dateformat.annotation 'Y/m/d H:N' (y)
task 2 start stop times as annotations. We'll turn that on, and add
task list venue the time to the annotation date format.
task 2 stop
task list venue
---------------------------------------- End -------------------------------------------------------
task list
task 2 start
task 2 info
sleep 4
task 2 info
task 2 stop
task 2 start
sleep 2
task 2 stop
task 2 info

533
doc/misc/tutorial/aliases/run.200 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,24 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Aliases ---------------------------------------------------
task config alias.zzz list You can create aliases to effectively rename commands.
task zzz
task z You can abbreviate those, too.
---------------------------------------- End -------------------------------------------------------
Complex aliases, including fragments that can be used in other contexts.
task config pf project:foo
task list pf

View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,27 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Annotations -----------------------------------------------
task 1 annotate the 12th looks good Annotations are little notes that can be added to a task.
task 1 annotate or the 13th There can be any number, and each has a time stamp.
task list
task list rc.annotations:full You can choose to display annotations in different ways.
task list rc.annotations:sparse
task list rc.annotations:none
task 1 denotate 13th Annotations can be removed by providing a matching pattern.
task list
---------------------------------------- End -------------------------------------------------------
Remove rc.annotations.*
Illustrate different annotation formats.
Searching in annotations

View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,29 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Calendar --------------------------------------------------
task calendar When tasks have due dates, you can see them on the calendar.
vi ~/.taskrc
# include /usr/local/share/doc/task/rc/holidays-US.rc
task calendar
Taskwarrior provides sample holiday files. You can create
your own, or use one of the samples to show holidays on the
calendar.
task cal 2010 You can see the whole year.
task rc.calendar.details:full cal You can see the tasks with due dates also.
task rc.calendar.holidays:full cal And you can see the holidays.
---------------------------------------- End -------------------------------------------------------
Include 'ln -s `which task` cal' trick

533
doc/misc/tutorial/charts/run.200 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,27 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Charts ----------------------------------------------------
task history The history report gives monthly totals of tasks added,
task history.annual completed and deleted. There is also an annual version.
task ghistory There is a graphical monthly...
task ghistory.annual and annual version.
task summary There is a project summary report that shows progress in
all the projects.
---------------------------------------- End -------------------------------------------------------
burndown.m
burndown.w
burndown.d

533
doc/misc/tutorial/color/run.200 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,70 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Color -----------------------------------------------------
task config color on All the examples so far have been shown with color turned
task list off. How about some color?
What you see is the result of a set of color rules being
applied to the tasks. There is a hierarchy of color rules
that colorize a task based on the metadata
task 1 "bg:on red" Here is an example of an explicit override to the color
task list rules where a specific task is given a red background.
task 1 bg: Note that the quotes are necessary, otherwise the shell
will consider "bg:on" and "red" to be separate arugments.
task color Taskwarrior supports 256 colors on certain terminal
emulators, and this shows the range of colors available.
task color white on red This is how to show a color sample.
task color legend Or samples of all the active color settings.
Themes are a simple way to use coordinated color schemes
so by including a color theme into the configuration file,
you can see some striking effects.
A blue theme.
# include /usr/local/share/doc/task/rc/dark-blue-256.theme
vi ~/.taskrc
task color legend
task list
A red theme.
# include /usr/local/share/doc/task/rc/dark-red-256.theme
vi ~/.taskrc
task color legend
task list
A general dark theme.
# include /usr/local/share/doc/task/rc/dark-256.theme
vi ~/.taskrc
task list
Here is are two color rules that specify a dark blue
background for all tasks that are part of the 'party'
project, and uses bold to identify any tasks with the
keyword 'invitations' in the description.
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
man task-color There is a man page with a writeup of all the color
capabilities.
---------------------------------------- End -------------------------------------------------------
Remove bg: and fg: because they are deprecated.
Demonstrate different themes.
More color rules.
Mention rc.color.precedence.

View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,40 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Configuration ---------------------------------------------
task show There is a 'show' command, that is used to display the
active configuration. There are hundreds of settings that
can be changed, and every one has a sensible default.
man taskrc If you want a complete list of all the settings and their
meanings, read the man page.
task config answer 42 The 'config' command is used to modify the settings, and in
this case the configuration variable 'answer' is given the
value of 42.
task show answer The 'show' command indicates that the value was changed,
task config answer and also that the variable is unrecognized. The show
command performs a detailed check on your configuration, and
alerts you to several kinds of problem. The config command
can also remove a value.
task rc.report.list.sort=description+ list
A very powerful feature is the ability to override the
configuration variables temporarily. Here I am requesting
an ascending sort on the description field only.
---------------------------------------- End -------------------------------------------------------
Mention minimal asspect of ~/.taskrc
Mention rc override of file
Mention rc overrides of values

533
doc/misc/tutorial/custom/run.200 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,37 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Custom Report ---------------------------------------------
You can even define your own custom report. Let's quickly
create a custom report - we'll call it foo - and I can
choose from a long list of fields to include in the report,
but I want to see the ID, the date when I entered the task,
and the description. I can specify the labels for those
columns, the sort order of the report, and I can filter.
cat >> ~/.taskrc
report.foo.description=My own report
report.foo.columns=id,entry,description
report.foo.labels=ID,Entered,Description
report.foo.sort=entry+,description+
report.foo.filter=status:pending
task help | grep foo Custom reports also show up on the help output.
task show report.foo I can inspect the configuration.
task foo And they can be run just like the other reports.
---------------------------------------- End -------------------------------------------------------
Mention all reports are custom reports.
Show 'reports' command

View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,28 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Defaults --------------------------------------------------
task config default.command list There is a default command, which can be set to anything,
task in this case it is set to the 'list' report. Then running
taskwarrior with no command name runs the default command.
task config default.priority H I can also specify a default priority and project, which
task config default.project Work means that any tasks added will use them, unless an
task add New task alternative is provided.
task list
task undo Let's just revert those changes, to clean up.
task config default.priority
task config default.project
---------------------------------------- End -------------------------------------------------------

View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,47 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Dependencies ----------------------------------------------
task list pro:party Taskwarrior supports dependencies. Let's take a look at the
party planning tasks, and assign dependencies.
task 3 depends:6 Let's see. I can't mail invitations until they are printed.
task 6 dep:5 I can't print them until I design them.
task 2 dep:1 I need to select a weekend before a location.
task 5 dep:1,2 Design depends on location and weekend.
task 4 dep:1 And the caterer needs to know where.
task long pro:party All my tasks are blocked except task 1. That makes sense.
task 5 dep:-1 Hmm, that double dependency isn't right.
task blocked Here are the blocked tasks.
task unblocked and the opposite, the unblocked tasks.
task 1 info If we look at task 1 closely, we can see that it is blocking
task 2 info 2 and 4. And if we look at task 2, we see that it is
blocked by 1, and blocking 5.
This is called a dependency chain, which is a string of tasks
that are all connected not only by their project, but by
dependencies.
Now we understand that task 1 should be done first, but you
may still violate the laws of physics if you wish. Let's
complete task 2 and see what happens.
task 2 done (y) Taskwarrior realizes what you are doing, and offers to fix
task 1 info the dependency chain to reflect what you have done.
---------------------------------------- End -------------------------------------------------------
Show color rules.

533
doc/misc/tutorial/due/run.200 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,31 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Due dates -------------------------------------------------
task 1 due:7/31/2010 Due dates can be specified as dates...
task 1 due:2wks as some distance into the future...
task 1 due:-2wks or past...
task 1 due:eom or by mnemonic (end of month)...
task 2 due:8th or by ordinal...
task 2 due:sunday or by day of week...
task 5 due:eow
task list Some of these dates are in the past, so now you see there
task overdue are overdue tasks. Due dates have different colors for
due, imminent, today and overdue values.
task rc.dateformat.report:Y-M-DTH:N:SZ list
You can also choose the format - for input and output.
---------------------------------------- End -------------------------------------------------------
Show inputting date+time
Show alternate rc.due

View File

@@ -0,0 +1,30 @@
Calendar trick
ln -s `which task` ./cal
./cal
Synch
push
pull
merge
Logo
Version
Verbosity
Formats
Setup
First time use
Where the files are
Using the man pages
http://tasktools.org/latest
Next Report
Usage
Configuration
Urgency
+next special tag

533
doc/misc/tutorial/filters/run.200 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,55 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Advanced Filters ------------------------------------------
task list Filters are a very powerful tool. First here is an
task list invit unfiltered list, which shows all tasks. Now again, but with
the text 'invit', which acts as a filter on the description
field.
task list description.contains:invit This is the equivalent form using attribute modifiers. In
this example we are filtering on descriptions that contain
the word fragment. Here we are using the 'contains'
modifier, but there are many others.
task list desc.word:the All tasks containing the whole word 'the'. See how
annotations are also searched?
task list desc.noword:invitations Here is a list of all tasks that do not contain the whole
word 'invitations'.
task list pro:party Here list all tasks in the 'party' project.
task list pro.is:party And the full equivalent.
task list pro.not:party Here list tasks that are not in the 'party' project. I
could have also used 'isnt' here - there are several
synonyms for modifiers, so that the filter can be written
so that it reads naturally.
task list pro:party pri.over:L Here the 'over' modifier is filtering on priorities that
sort higher than 'Low', and also filtering on the 'party'
project. There are two terms in this filter.
task list pro:party limit:2 Same again, but only show me the first two tasks.
task list limit:page Now all tasks, but just show the first page of tasks. I
don't have a page full of tasks here, but you get the idea.
task all status:pending Now you can see how some of the built-in reports work. The
'list' report is just all tasks, filtered so that only the
pending tasks are shown.
task all status:waiting The 'waiting' report is similarly defined.
---------------------------------------- End -------------------------------------------------------
Show boolean combinations
Show regexes
Show substitutions

533
doc/misc/tutorial/help/run.200 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,32 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Help ------------------------------------------------------
task help You'll find a quick reference page built in, with the 'help'
man task command, or perhaps you'll want to take a look at the several
man taskrc man pages installed. This demo has superficially shown
man task-color many features which have more capability and depth which you
can find in the man pages, and online.
man task-tutorial This screencast is actually just a recording of me going
through the tutorial.
man task-faq Some frequently asked questions are answered here.
man task-sync You've patiently watched this whole movie, so here's your
reward - taskwarrior 1.9.3 has network synchronization
features, for sharing tasks across computers. But this is
just a teaser - synch will be shown in the next movie.
---------------------------------------- End -------------------------------------------------------
Replace spoken track completely.

View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,35 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Import/Export ---------------------------------------------
task export.csv You can export your tasks. Here you see all tasks being
exported in CSV format.
task export.csv venue Let's just export one task in CSV format...
task export.vcalendar venue Or in VCalendar format...
task export.yaml venue Or YAML.
cat file.text I can also import. Here I am importing simple lines of
task import file.text text. Taskwarrior recognizes the format and confirms.
cat file.yaml Here is a YAML example. Taskwarrior can read several
task import file.yaml formats, including old versions of its data files. Using
YAML, you can round-trip the data without loss.
task new limit:2 Here are the imported tasks.
---------------------------------------- End -------------------------------------------------------
Show new export scripts
Show same script in multiple languages
Show new import scripts
Explain that scripts are outside the core product

533
doc/misc/tutorial/info/run.200 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,24 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Info ------------------------------------------------------
task 1 info During that undo operation, taskwarrior displayed metadata
task 1 that is associated with the task. You can display this
with the info command, and its shortcut.
task stats There are also statistics that taskwarrior gathers, which
I can display.
---------------------------------------- End -------------------------------------------------------
Show multiple info reports
Show info using UUID

533
doc/misc/tutorial/intro/run.200 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,25 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Intro -----------------------------------------------------
http://taskwarrior.org Hello, and welcome to this taskwarrior version 1.9.3 demo.
I'm going to show you over 100 features, so don't blink, or
you'll miss some. Even experienced users are going to learn
*something*.
I will start off with basic usage, and proceed to more
sophisticated commands as we go along.
---------------------------------------- End -------------------------------------------------------
Include first time use
Include 30-second tutorial

View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,48 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Modifications ---------------------------------------------
task 7 Pay rent at the end of the month Task 7 is not worded correctly, so I can modify that by
specifying a task ID and a new description. This is also
considered a bulk change, and so requires confirmation.
task add music We'll need music.
task 8 prepend Select some I can prepend to that.
task 8 append for after dinner I can append to that.
task list
task edit I can also go straight into an editor and modify anything.
task add Hire a band? <--- Sometimes the command will confuse the shell. In this case,
what would happen if there was a file named 'bands' in the
current directory? The shell would expand that wildcard,
so to avoid that, you can...
task add Hire a band\? <--- escape the wildcard...
task add "Hire a band?" <--- or quote the whole description...
task add -- Hire a band\? +dj You can also use the minus minus operator which tells
taskwarrior to stop being clever and interpret the rest
of the arguments as a task description. Otherwise, that
+dj would be interpreted as a tag.
task undo We don't need a band, so the easiest way to get rid of that
task is to undo the last change. Taskwarrior has a
complete undo stack, so you can undo all the way back to
the beginning.
task 1 delete The undo operation gets rid of the task completely, but I
task undo could also have just deleted the task, then the deletion
itself would be tracked, and also undoable.
---------------------------------------- End -------------------------------------------------------
Show more shell escapes.
show 'modify' command.

View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,21 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Priorities ------------------------------------------------
task 1-3,5 priority:H Priorities are another way to organize tasks. You can use
task list priority values of high, medium and low, and taskwarrior
knows these as H, M or L.
task 3 pri: You can remove priorities by specifying a blank value.
---------------------------------------- End -------------------------------------------------------

View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,36 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Projects --------------------------------------------------
task add Pay teh rent on teh 31st Remember to pay the rent at the end of the month. Oh,
task 7 /teh/teh/g that was sloppy, but it can be fixed with a global
task list substitution.
task 7 project:home We can now use projects to separate home chores from the
party preparation. Let's assign that last task to the
'home' project. Note that a task may only belong to one
project.
task 1-6 project:party And we will put those first six tasks in the 'party'
project. See how we specify a range of tasks? Taskwarrior
will want to confirm bulk changes like this, but we'll
accept all changes here.
task projects Now that we have multiple projects, as shown here, we can
task list project:home use project as a filter for the list report. You can see
task li pro:par again that we can abbreviate 'list' and 'project', but when
we abbreviate 'party', we are filtering all the projects
that begin with 'par'.
---------------------------------------- End -------------------------------------------------------
Show project change stats.

View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,40 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Recurrence ------------------------------------------------
task 7 info Remember the task we added to pay the rent? We're going to
task 7 due:eom recur:monthly need to do that every month. Recurring tasks allow us to
task 7 set up a single task that keeps coming back, just as you'd
expect.
task 7 until:eoy You can also limit the extent of the recurrence. Let's make
sure the task doesn't recur after the lease ends.
task recurring And there is a recurring report that shows you only the
recurring tasks.
To illustrate a point, let's set up a recurring annual task
as a reminder to pay taxes, and put the due date in the past.
This will cause task to fill in the gaps, and create a series
of severely overdue tasks.
task add Pay taxes due:4/15/2007 recur:yearly
task long
task 11 delete # y y Deletions to recurring tasks can be escalated to include all
task list the recurrences of a task.
---------------------------------------- End -------------------------------------------------------
Explain parent/child.
Show rc.recurrence.limit.
Show propagated changes.

533
doc/misc/tutorial/reports/run.200 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,33 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Reports ---------------------------------------------------
task minimal Taskwarrior has a good many reports. There is the bare minimum.
task ls The simple.
task list The standard.
task long The kitchen sink.
task all The packrat.
task completed Nostalgia.
task recurring Groundhog day.
task waiting Surprises.
task blocked Wedged.
task unblocked Unencumbered.
task oldest Ancient history.
task newest Contemporary.
task timesheet Corporate.
task next And "what should I work on next?" This one can be useful
because it pulls a few of the highest priority tasks from
all the projects. It's the report we should all be using.
---------------------------------------- End -------------------------------------------------------
New 'reports' command.

533
doc/misc/tutorial/run.193 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

533
doc/misc/tutorial/run.200 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

533
doc/misc/tutorial/shell/run.200 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,22 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Shell -----------------------------------------------------
task shell You can use the shell command to create a more immersive
task> projects environment. Any task command you run outside the shell
task> tags can also be run inside the shell, without the need to prefix
task> list every command with "task".
task> quit
---------------------------------------- End -------------------------------------------------------
Show use of rlwrap.

533
doc/misc/tutorial/tags/run.200 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

View File

@@ -0,0 +1,46 @@
[Make window 116x32 for movie recording, light text, dark background]
This is the script from which a 2.0-specific movie will be made. On the left
are the typed commands, and on the right is the voice track.
It is intended that the left and right be combined and the result will be a new
task-tutorial.5 man page.
---------------------------------------- Tags ------------------------------------------------------
task list A task may only have one project, but it may have any number
of tags, which are just single words associated with the task.
task 3,5,6 +mall I can go to the print shop at the mall, and do all the
invitation tasks, so let's tag them all.
task long The long report shows tags, too,
task list +mall and I can use tags as a filter to any report too.
task 3 -mall I made a mistake - I can't mail out the invitations at the
mall, so let's remove that tag.
---------------------------------------- Special Tags ----------------------------------------------
task 6 +nocolor You've seen tags, but there are also 'special tags' that
task list have effects on individual tasks. The 'nocolor' special
tag causes the color rules to be bypassed.
task tags Special tags are highlighted by the 'tags' command.
task 6 -nocolor There are others - the 'nonag' special tag prevents the
generation of nag messages when you work on low priority
tasks when there are more important ones.
The 'nocal' special tag will prevent a task from appearing
on the calendar.
---------------------------------------- End -------------------------------------------------------
Show 'nocal'
Show 'nonag'
Show 'next'
Show how adding a special tag generates feedback.

533
doc/misc/tutorial/waiting/run.200 Executable file
View File

@@ -0,0 +1,533 @@
#! /bin/bash
rm -f /Users/paul/.task/pending.data /Users/paul/.task/completed.data /Users/paul/.task/undo.data
echo 'data.location=~/.task' > /Users/paul/.taskrc
echo 'color=off' >> /Users/paul/.taskrc
echo 'color.summary.background=on gray3' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-red-256.theme' >> /Users/paul/.taskrc
echo '#include /usr/local/share/doc/task/rc/dark-256.theme' >> /Users/paul/.taskrc
# 1 Intro
# 2 Basic usage
echo Basic usage --------------------------------------------------------------
echo $ task add Select a free weekend in November
task add Select a free weekend in November
echo $ task add Select and book a venue
task add Select and book a venue
echo $ task add Come up with a guest list
task add Come up with a guest list
echo $ task add Mail invitations
task add Mail invitations
echo $ task add Select a caterer
task add Select a caterer
echo $ task list
task list
echo $ task log Order a special cake
task log Order a special cake
echo $ task 4 duplicate /Mail/Design/
task 4 duplicate /Mail/Design/
echo $ task 4 duplicate /Mail/Print/
task 4 duplicate /Mail/Print/
echo $ task list
task list
echo $ task 3 done
task 3 done
echo $ task list
task list
# 3 Projects
echo Projects --------------------------------------------------------------
echo $ task add Pay teh rent on teh 31st
task add Pay teh rent on teh 31st
echo $ task 7 /teh/the/g
task 7 /teh/the/g
echo $ task list
task list
echo $ task 7 project:home
task 7 project:home
echo $ task 1-6 project:party
echo 'All' | task 1-6 project:party
echo $ task projects
task projects
echo $ task list project:home
task list project:home
echo $ task li pro:par
task li pro:par
# 4 Priorities
echo Priorities --------------------------------------------------------------
echo $ task 1-3,5 priority:H
echo 'All' | task 1-3,5 priority:H
echo $ task list
task list
echo $ task 3 pri:
task 3 pri:
# 5 Tags
echo Tags --------------------------------------------------------------
echo $ task list
task list
echo $ task 3,5,6 +mall
echo 'All' | task 3,5,6 +mall
echo $ task long
task long
echo $ task list +mall
task list +mall
echo $ task 3 -mall
task 3 -mall
# 6 Modifications
echo Modifications --------------------------------------------------------------
echo $ task 7 Pay rent at the end of the month
echo 'Yes' | task 7 Pay rent at the end of the month
echo $ task add music
task add music
echo $ task 8 prepend Select some
task 8 prepend Select some
echo $ task 8 append for after dinner
task 8 append for after dinner
echo $ task list
task list
echo $ task edit
#task edit
echo $ task add Hire a band?
#task add Hire a band?
echo $ task add Hire a band\?
#task add Hire a band\?
echo $ task add "Hire a band?"
#task add "Hire a band?"
echo $ task add -- Hire a band\? +dj
task add -- Hire a band\? +dj
echo $ task undo
echo 'y' | task undo
echo $ task 1 delete
echo 'y' | task 1 delete
echo $ task undo
echo 'y' | task undo
# 7 Info
echo Info --------------------------------------------------------------
echo $ task 1 info
task 1 info
echo $ task stats
task stats
# 8 Annotations
echo Annotations --------------------------------------------------------------
echo $ task 1 annotate the 13 looks good
task 1 annotate the 13 looks good
sleep 1
echo $ task 1 annotate or the 14th
task 1 annotate or the 14th
echo $ task list
task list
echo $ task list rc.annotations:full
task list rc.annotations:full
echo $ task list rc.annotations:sparse
task list rc.annotations:sparse
echo $ task list rc.annotations:none
task list rc.annotations:none
echo $ task 1 denotate 14th
task 1 denotate 14th
echo $ task list
task list
# 9 Configuration
echo Configuration --------------------------------------------------------------
echo $ task show
task show
echo $ task config answer forty-two
echo 'y' | task config answer forty-two
echo $ task show answer
task show answer
echo $ task config answer
echo 'y' | task config answer
echo $ task rc.report.list.sort=description+ list
task rc.report.list.sort=description+ list
# 10 Defaults
echo Defaults --------------------------------------------------------------
echo $ task config default.command list
echo 'y' | task config default.command list
echo $ task
task
echo $ task config default.priority H
echo 'y' | task config default.priority H
echo $ task config default.project Work
echo 'y' | task config default.project Work
echo $ task add New task
task add New task
echo $ task list
task list
echo $ task undo
echo 'y' | task undo
echo $ task config default.priority
echo 'y' | task config default.priority
echo $ task config default.project
echo 'y' | task config default.project
# 11 Aliases
echo Aliases --------------------------------------------------------------
echo $ task config alias.zzz list
echo 'y' | task config alias.zzz list
echo $ task zzz
task zzz
echo $ task z
task z
# 12 Color
echo Color --------------------------------------------------------------
echo $ task config color on
echo 'y' | task config color on
echo $ task list
task list
echo $ task 1 bg:on_red
task 1 bg:on_red
echo $ task list
task list
echo $ task 1 bg:
task 1 bg:
echo $ task color
task color
echo $ task color white on red
task color white on red
echo $ task color legend
task color legend
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-blue-256.theme
echo 'include /usr/local/share/doc/task/rc/dark-blue-256.theme' >> x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-red-256.theme
sed 's/blue/red/' x >x2 && mv x2 x
echo $ task color legend
task color legend
echo $ task list
task list
echo vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/dark-256.theme
sed 's/red-//' x >x2 && mv x2 x
echo $ task list
task list
echo $ task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
task "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
echo $ man task-color
#man task-color
# 13 Active tasks
echo Active tasks --------------------------------------------------------------
echo $ task 2 start
task 2 start
echo $ task list
task list
echo $ task active
task active
echo $ task 2 stop
task 2 stop
echo $ task config journal.time on
task config journal.time on
echo $ task config rc.dateformat.xxx xxx
task config rc.dateformat.xxx xxx
echo $ task config dateformat.annotation 'Y/m/d H:N'
task config dateformat.annotation 'Y/m/d H:N'
echo $ task 2 start
task 2 start
echo $ task list venue
task list venue
echo $ task 2 stop
task 2 stop
echo $ task list venue
task list venue
# 14 Due dates
echo Due dates --------------------------------------------------------------
echo $ task 1 due:7/31/2010
task 1 due:7/31/2010
echo $ task 1 due:2wks
task 1 due:2wks
echo $ task 1 due:-2wks
task 1 due:-2wks
echo $ task 1 due:eom
task 1 due:eom
echo $ task 2 due:8th
task 2 due:8th
echo $ task 2 due:sunday
task 2 due:sunday
echo $ task 5 due:eow
task 5 due:eow
echo $ task list
task list
echo $ task overdue
task overdue
echo $ task rc.dateformat.report:Y-M-DTH:N:SZ list
task rc.dateformat.report:Y-M-DTH:N:SZ list
# 15 Calendar
echo Calendar --------------------------------------------------------------
echo $ task calendar
task calendar
echo $ vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
#vi ~/.taskrc # include /usr/local/share/doc/task/rc/holidays-US.rc
echo 'include /usr/local/share/doc/task/rc/holidays-US.rc' >> x
echo $ task calendar
task calendar
echo $ task cal 2010
task cal 2010
echo $ task rc.calendar.details:full cal
task rc.calendar.details:full cal
echo $ task rc.calendar.holidays:full cal
task rc.calendar.holidays:full cal
# 16 Recurrence
echo Recurrence --------------------------------------------------------------
echo $ task 7 info
task 7 info
echo $ task 7 due:eom recur:monthly
task 7 due:eom recur:monthly
echo $ task 7
task 7
echo $ task 7 until:eoy
task 7 until:eoy
echo $ task recurring
task recurring
echo $ task add Pay taxes due:4/15/2007 recur:yearly
task add Pay taxes due:4/15/2007 recur:yearly
echo $ task long
task long
echo $ task 11 delete
printf "y\ny\n" | task 11 delete # y, y
echo $ task list
task list
# 17 Shell
echo Shell --------------------------------------------------------------
echo $ task shell
#task shell
echo '> projects'
#> projects
echo '> tags'
#> tags
echo '> list'
#> list
echo '> quit'
#> quit
# 18 Special tags
echo Special tags --------------------------------------------------------------
echo $ task 6 +nocolor
task 6 +nocolor
echo $ task list
task list
echo $ task tags
task tags
echo $ task 6 -nocolor
task 6 -nocolor
# 19 Waiting
echo Waiting --------------------------------------------------------------
echo $ task add Look for new apartment due:eoy
task add Look for new apartment due:eoy
echo $ task list
task list
echo $ task 10 wait:12/1/2010
task 10 wait:12/1/2010
echo $ task list
task list
echo $ task waiting
task waiting
echo $ task add Do something in a few seconds
task add Do something in a few seconds
echo $ task 11 wait:5s
task 11 wait:5s
echo $ task list
task list
sleep 5
echo $ task list
task list
echo $ task 11 rc.confirmation:no delete
task 11 rc.confirmation:no delete
# 20 Dependencies
echo Dependencies --------------------------------------------------------------
echo $ task list pro:party
task list pro:party
echo $ task 3 depends:6
task 3 depends:6
echo $ task 6 dep:5
task 6 dep:5
echo $ task 2 dep:1
task 2 dep:1
echo $ task 5 dep:1,2
task 5 dep:1,2
echo $ task 4 dep:1
task 4 dep:1
echo $ task long pro:party
task long pro:party
echo $ task 5 dep:-1
task 5 dep:-1
echo $ task blocked
task blocked
echo $ task unblocked
task unblocked
echo $ task 1 info
task 1 info
echo $ task 2 info
task 2 info
echo $ task 2 done
echo 'y' | task 2 done
echo $ task 1 info
task 1 info
# 21 Reports
echo Reports --------------------------------------------------------------
echo $ task minimal
task minimal
echo $ task ls
task ls
echo $ task list
task list
echo $ task long
task long
echo $ task all
task all
echo $ task completed
task completed
echo $ task recurring
task recurring
echo $ task waiting
task waiting
echo $ task blocked
task blocked
echo $ task oldest
task oldest
echo $ task newest
task newest
echo $ task timesheet
task timesheet
echo $ task next
task next
# 22 Custom report
echo Custom report --------------------------------------------------------------
echo 'report.foo.description=My own report' >> x
echo 'report.foo.columns=id,entry,description' >> x
echo 'report.foo.labels=ID,Entered,Description' >> x
echo 'report.foo.sort=entry+,description+' >> x
echo 'report.foo.filter=status:pending' >> x
echo 'task help | grep foo'
task help | grep foo
echo $ task show report.foo
task show report.foo
echo $ task foo
task foo
# 23 Charts
echo Charts --------------------------------------------------------------
echo $ task history
task history
echo $ task history.annual
task history.annual
echo $ task ghistory
task ghistory
echo $ task ghistory.annual
task ghistory.annual
echo $ task summary
task summary
# 24 Advanced filters
echo Advanced filters --------------------------------------------------------------
echo $ task list
task list
echo $ task list invit
task list invit
echo $ task list description.contains:invit
task list description.contains:invit
echo $ task list desc.word:the
task list desc.word:the
echo $ task list desc.noword:invitations
task list desc.noword:invitations
echo $ task list pro:party
task list pro:party
echo $ task list pro.is:party
task list pro.is:party
echo $ task list pro.not:party
task list pro.not:party
echo $ task list pro:party priority.over:L
task list pro:party priority.over:L
echo $ task list pro:party limit:2
task list pro:party limit:2
echo $ task list limit:page
task list limit:page
echo $ task all status:pending
task all status:pending
echo $ task all status:waiting
task all status:waiting
# 25 Import/export
echo Import/export --------------------------------------------------------------
echo $ task export.csv
task export.csv
echo $ task export.csv venue
task export.csv venue
echo $ task export.vcalendar venue
task export.vcalendar venue
echo $ task export.yaml venue
task export.yaml venue
cat <<EOF >file.text
Remember to read the task man page
EOF
cat file.text
echo $ task import file.text
printf "y\n" | task import file.text
cat <<EOF >file.yaml
%YAML 1.1
---
task:
description: Visit http://taskwarrior.org
due: 1281844800
entry: 1281289630
priority: H
project: work
status: pending
uuid: 23afada0-a446-8d5a-c213-30d99d52c4b0
...
EOF
cat file.yaml
echo $ task import file.yaml
printf "y\n" | task import file.yaml
echo $ task new limit:2
task new limit:2
# 26 Help
echo Help --------------------------------------------------------------
echo $ task help
task help
echo $ man task
#man task
echo $ man taskrc
#man taskrc
echo $ man task-color
#man task-color
echo $ man task-tutorial
#man task-tutorial
echo $ man task-faq
#man task-faq
echo $ man task-sync
#man task-sync
# 27 Wrap up
echo Wrap up --------------------------------------------------------------
echo $ task version
task version
exit

Some files were not shown because too many files have changed in this diff Show More