Compare commits
575 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2d99b80672 | ||
|
|
949d71a81b | ||
|
|
df1fc5a6da | ||
|
|
7745733001 | ||
|
|
10ef12b008 | ||
|
|
19ef6a672d | ||
|
|
6c110a641d | ||
|
|
2ec296088a | ||
|
|
14cc9c6873 | ||
|
|
05c157e449 | ||
|
|
73fd2cefca | ||
|
|
f2f590e193 | ||
|
|
a840b6505b | ||
|
|
467f0a477e | ||
|
|
e046b37287 | ||
|
|
9efe1d45cc | ||
|
|
2ed73c0700 | ||
|
|
d845dca3af | ||
|
|
930e695ea4 | ||
|
|
079bcff893 | ||
|
|
ea57b560d9 | ||
|
|
436c152fde | ||
|
|
f93273ef23 | ||
|
|
6608cbf287 | ||
|
|
a65fe591b8 | ||
|
|
afb89f0add | ||
|
|
2ac5c2f897 | ||
|
|
2e9bc3194b | ||
|
|
691931adf9 | ||
|
|
b2828b9702 | ||
|
|
776a56fa67 | ||
|
|
bc5cdfecb4 | ||
|
|
d80e9aa7c5 | ||
|
|
1e2b551795 | ||
|
|
ea374c05df | ||
|
|
3a7e620ce6 | ||
|
|
589c918f79 | ||
|
|
1ea513ad75 | ||
|
|
036d77e08f | ||
|
|
783a326b11 | ||
|
|
a650847201 | ||
|
|
7e1e187d6c | ||
|
|
3a623af363 | ||
|
|
6b5253e6a0 | ||
|
|
feb19cafdd | ||
|
|
c963fd30ba | ||
|
|
eee4d05b77 | ||
|
|
5f8858856b | ||
|
|
8b28b013c4 | ||
|
|
074ae41ee6 | ||
|
|
06e15b6e25 | ||
|
|
14f06e98b7 | ||
|
|
18aa5c5b69 | ||
|
|
6e872c69dd | ||
|
|
3ba877b078 | ||
|
|
4d95dcf1da | ||
|
|
03d8cf1114 | ||
|
|
2d50d1cbf5 | ||
|
|
ad2614c452 | ||
|
|
eaf184c833 | ||
|
|
57c1983e07 | ||
|
|
2f4e0d9e17 | ||
|
|
43e68f73d3 | ||
|
|
6fd2fb08bb | ||
|
|
c5b61a3125 | ||
|
|
5317703dcc | ||
|
|
f820e7a8be | ||
|
|
cc0b0b00af | ||
|
|
8ed1cc6006 | ||
|
|
103bcef6ab | ||
|
|
0dd969cc24 | ||
|
|
e301cda990 | ||
|
|
200fbe3334 | ||
|
|
0cac03ad4a | ||
|
|
be0357da4a | ||
|
|
32235ca60a | ||
|
|
792eab8621 | ||
|
|
8e5ad1288c | ||
|
|
332dbc4a08 | ||
|
|
0fda4b060c | ||
|
|
55de71feca | ||
|
|
c0c58f9aff | ||
|
|
ae4e28689d | ||
|
|
7ca51e78f0 | ||
|
|
d4772fe060 | ||
|
|
47f2758c8f | ||
|
|
dac31390cb | ||
|
|
68fe437889 | ||
|
|
d358af4a53 | ||
|
|
e3269984ce | ||
|
|
e9b9adad06 | ||
|
|
c08c280dd9 | ||
|
|
109f22051d | ||
|
|
9764fe310a | ||
|
|
10a69c4d3d | ||
|
|
77f26994a6 | ||
|
|
1d8a60a9ba | ||
|
|
59e2e102e6 | ||
|
|
f52e98d8df | ||
|
|
08c089258f | ||
|
|
976cd284ff | ||
|
|
914626e2b2 | ||
|
|
a5f8762570 | ||
|
|
8d4deda2bb | ||
|
|
0c05069baf | ||
|
|
b5c46062c6 | ||
|
|
022b219c0f | ||
|
|
e28d03df82 | ||
|
|
733101a560 | ||
|
|
32144fb6b0 | ||
|
|
4cdec31803 | ||
|
|
70a83dad4d | ||
|
|
86eef4c184 | ||
|
|
8fefc8c12a | ||
|
|
75a3266929 | ||
|
|
7f0c3bf94b | ||
|
|
506799cac4 | ||
|
|
fca8c43d47 | ||
|
|
198e69f8d1 | ||
|
|
28ceaaaaab | ||
|
|
2bee2f4aa5 | ||
|
|
86f778f504 | ||
|
|
2181c48eb7 | ||
|
|
9429c96172 | ||
|
|
e2d11d8575 | ||
|
|
b553954d37 | ||
|
|
07755e2c56 | ||
|
|
6b18a2842f | ||
|
|
6a7e741b02 | ||
|
|
96851c1d34 | ||
|
|
2663f437fc | ||
|
|
94224d0ac5 | ||
|
|
3a599b66f5 | ||
|
|
51fd0afade | ||
|
|
101bc8045b | ||
|
|
3e68bc9ec5 | ||
|
|
462caf5bd4 | ||
|
|
98f3e6e61d | ||
|
|
8543bd457b | ||
|
|
08f32cb9e9 | ||
|
|
57d577a140 | ||
|
|
1b66904550 | ||
|
|
77f3269f09 | ||
|
|
317b7f5d40 | ||
|
|
552c594d3f | ||
|
|
429709a426 | ||
|
|
f5f1b38fe8 | ||
|
|
b2a7b91a7c | ||
|
|
fb24835ac5 | ||
|
|
dd10bf52e7 | ||
|
|
5d775fdc3e | ||
|
|
17ef077e27 | ||
|
|
02dcdf83b5 | ||
|
|
d572383e76 | ||
|
|
a6cf99a83c | ||
|
|
74607341ff | ||
|
|
5f007ed1d9 | ||
|
|
8d720cacc5 | ||
|
|
4a58fbdd53 | ||
|
|
3d7bb9d253 | ||
|
|
7f32435ce9 | ||
|
|
126a3d88b5 | ||
|
|
367c32c050 | ||
|
|
d9bd9c3532 | ||
|
|
879f0fed78 | ||
|
|
07050a35f3 | ||
|
|
05d664cae1 | ||
|
|
18c770141d | ||
|
|
595dd9f3f4 | ||
|
|
1d4c79b897 | ||
|
|
ee77debfce | ||
|
|
d44e592635 | ||
|
|
4840708090 | ||
|
|
bad31d83b1 | ||
|
|
1c29c2c87d | ||
|
|
ca4b15bc0b | ||
|
|
c73f131f32 | ||
|
|
551c4b99c4 | ||
|
|
4ca35fb956 | ||
|
|
14ab7ba7bd | ||
|
|
068d85b1f3 | ||
|
|
d2fdc10f39 | ||
|
|
2b7452f9a7 | ||
|
|
0ac2b43ad3 | ||
|
|
5bf8feefca | ||
|
|
bdc167fd6a | ||
|
|
aa98ca42c8 | ||
|
|
5adc86bbbf | ||
|
|
bfc2367bdb | ||
|
|
4c3354fa50 | ||
|
|
31cf470cc8 | ||
|
|
fe85e28605 | ||
|
|
7a95c38290 | ||
|
|
fe65d28f99 | ||
|
|
09ce815fc5 | ||
|
|
38ffa390ea | ||
|
|
c2a84c7cf6 | ||
|
|
da5e2925ad | ||
|
|
6ef5650129 | ||
|
|
d7de67d242 | ||
|
|
4c40784328 | ||
|
|
b581e5d3c4 | ||
|
|
fd27fe3392 | ||
|
|
955634c35b | ||
|
|
42c0b33f07 | ||
|
|
c5158a6457 | ||
|
|
9fd9e8e3a8 | ||
|
|
ead7cfe2b8 | ||
|
|
3a4fff1683 | ||
|
|
c4a5a75fd6 | ||
|
|
4cb5caa342 | ||
|
|
652b7d9c8d | ||
|
|
94480c23d2 | ||
|
|
d3303f6a98 | ||
|
|
125058093f | ||
|
|
891136788f | ||
|
|
d1b7e66694 | ||
|
|
914007c7e5 | ||
|
|
e9d60e693e | ||
|
|
e6ea471cbe | ||
|
|
a3ba025d22 | ||
|
|
b9f10addf8 | ||
|
|
c8e35fab88 | ||
|
|
cc8299f0cc | ||
|
|
55ad0cb8b7 | ||
|
|
3c9bf20798 | ||
|
|
6b77459286 | ||
|
|
bf36b47593 | ||
|
|
58b077df0e | ||
|
|
9c93fe7c88 | ||
|
|
73110ae033 | ||
|
|
08bbd38615 | ||
|
|
6cb5c7a104 | ||
|
|
b56b5bc29d | ||
|
|
558bf2ca50 | ||
|
|
5ba23a4ecd | ||
|
|
46c031c45c | ||
|
|
f553915b2f | ||
|
|
01bb76b3b6 | ||
|
|
f8d8d2f6b5 | ||
|
|
fe9eb9cacb | ||
|
|
50f23d4b75 | ||
|
|
62d2c6bb5f | ||
|
|
4a1edfb9be | ||
|
|
c20bfffbce | ||
|
|
cfdd7efea9 | ||
|
|
5bc1bfe331 | ||
|
|
9eed851fbb | ||
|
|
6dca4dd056 | ||
|
|
a5123dd2b7 | ||
|
|
488b23f42f | ||
|
|
ffa1bac193 | ||
|
|
2aac37dcb7 | ||
|
|
e6d47f233b | ||
|
|
191d8ef355 | ||
|
|
ca6bfeb2f2 | ||
|
|
0a5e380bbf | ||
|
|
79a4f666aa | ||
|
|
f74bed4355 | ||
|
|
18e9f6e8ec | ||
|
|
6e11267724 | ||
|
|
af490fb634 | ||
|
|
1e38cbd6a0 | ||
|
|
1e37d7a784 | ||
|
|
314f64f775 | ||
|
|
f285ae535f | ||
|
|
34f80d03e3 | ||
|
|
6de940acf1 | ||
|
|
837b89dd2d | ||
|
|
d177acfcbd | ||
|
|
354debcf96 | ||
|
|
12a90fb477 | ||
|
|
47b5586d45 | ||
|
|
12146a6f01 | ||
|
|
e9301257f8 | ||
|
|
bfb29998bf | ||
|
|
c5427c91fc | ||
|
|
9e5f1787d0 | ||
|
|
783867c512 | ||
|
|
bb6f456e04 | ||
|
|
6d653f720d | ||
|
|
4e62d8fddc | ||
|
|
c6bde0aaba | ||
|
|
d39d5af03b | ||
|
|
36800e0a35 | ||
|
|
a921ea4ed6 | ||
|
|
0159cfde2f | ||
|
|
2708b37ce5 | ||
|
|
98861d87d6 | ||
|
|
8823ba5bfa | ||
|
|
96d2acef42 | ||
|
|
0e1d12f5b1 | ||
|
|
1f8ae07b8e | ||
|
|
0bc7dd11a8 | ||
|
|
a288a19c16 | ||
|
|
fec2af34bc | ||
|
|
b609cdb8a0 | ||
|
|
bde1e0dd9a | ||
|
|
a75c018106 | ||
|
|
70306de6bd | ||
|
|
30f757ba13 | ||
|
|
6af7540fe7 | ||
|
|
533bbedd81 | ||
|
|
42521fea8b | ||
|
|
74dcdd897a | ||
|
|
4028a2fce4 | ||
|
|
1b5178c456 | ||
|
|
1a16b3ae6b | ||
|
|
042d7b40de | ||
|
|
b041e54be6 | ||
|
|
5c36013ddd | ||
|
|
b630138e8b | ||
|
|
9e9807a52a | ||
|
|
0aa87d04da | ||
|
|
cb14ed128e | ||
|
|
6fd876b8dd | ||
|
|
616e230920 | ||
|
|
a043b42373 | ||
|
|
952845b1b0 | ||
|
|
0e355b45e1 | ||
|
|
fc26eebea6 | ||
|
|
0c0cb7b0f5 | ||
|
|
84b609f518 | ||
|
|
dece0a8dca | ||
|
|
5d4cafb7a6 | ||
|
|
9e4786e4fe | ||
|
|
fa46fcf8ca | ||
|
|
59fa056c4b | ||
|
|
9f567aa3c6 | ||
|
|
70360cadec | ||
|
|
89f82847fb | ||
|
|
bf316974d9 | ||
|
|
7fdfcbacc6 | ||
|
|
dea7b72b70 | ||
|
|
d73601c0b2 | ||
|
|
adc7992608 | ||
|
|
68d5e3f296 | ||
|
|
0d364746c7 | ||
|
|
eb2cb99532 | ||
|
|
1d3aa891d6 | ||
|
|
dd86c2c875 | ||
|
|
0388bcf259 | ||
|
|
f351bf6dec | ||
|
|
1e7bebb3b2 | ||
|
|
77815c080f | ||
|
|
8a2e979726 | ||
|
|
895a86903e | ||
|
|
3be6ef4bfd | ||
|
|
1639d5952a | ||
|
|
f9f3ae720d | ||
|
|
34c21f5d43 | ||
|
|
7752b37139 | ||
|
|
22bd31059d | ||
|
|
ec3c1c4def | ||
|
|
975c2bbcb9 | ||
|
|
8904daf9e5 | ||
|
|
afbbc87ec4 | ||
|
|
347dda7fa7 | ||
|
|
084d104c2f | ||
|
|
9aedaba7f2 | ||
|
|
b1933c5d25 | ||
|
|
87158f505a | ||
|
|
0dd71612e4 | ||
|
|
73ff6ea973 | ||
|
|
3b7b7b5b23 | ||
|
|
7f54b89f24 | ||
|
|
0930f3c5f7 | ||
|
|
04c6c11175 | ||
|
|
8076a70225 | ||
|
|
e562fc8fd4 | ||
|
|
9d41d9046d | ||
|
|
9b46520ae1 | ||
|
|
3d5656fb57 | ||
|
|
f0a5c917c9 | ||
|
|
6e1a386ec8 | ||
|
|
d012fc9717 | ||
|
|
366c59e25d | ||
|
|
1cc67e9895 | ||
|
|
b32d731010 | ||
|
|
21c3d1ab80 | ||
|
|
ceb7a188bf | ||
|
|
db9333ec64 | ||
|
|
04ddf74a07 | ||
|
|
4d46be0767 | ||
|
|
2eaba55481 | ||
|
|
869655e818 | ||
|
|
d362088305 | ||
|
|
87ce13c8e0 | ||
|
|
4139f32acf | ||
|
|
d3ca5c04e3 | ||
|
|
d8913c2f15 | ||
|
|
808934483f | ||
|
|
d738f778ee | ||
|
|
3a566460a2 | ||
|
|
69ac9a4296 | ||
|
|
f2a5dde3a6 | ||
|
|
d85feef7ea | ||
|
|
4cd528661a | ||
|
|
c27097e286 | ||
|
|
e619f8c91d | ||
|
|
199114abcd | ||
|
|
0e2c090dc5 | ||
|
|
58d678f927 | ||
|
|
3cfcc9fb6b | ||
|
|
a1488d0504 | ||
|
|
547d3bfdbb | ||
|
|
7d048a8ef8 | ||
|
|
44fe227595 | ||
|
|
a9b18da214 | ||
|
|
5c235ce1ef | ||
|
|
d460e604ff | ||
|
|
612c613764 | ||
|
|
d9ec233d23 | ||
|
|
2c055157e6 | ||
|
|
91d5448a5a | ||
|
|
80f9af08e3 | ||
|
|
63384abd14 | ||
|
|
c7cd2d2619 | ||
|
|
d2fe093107 | ||
|
|
7c8793b146 | ||
|
|
ae56165c80 | ||
|
|
d1abda2561 | ||
|
|
d02eac07a9 | ||
|
|
2334911b34 | ||
|
|
36c3cad5a5 | ||
|
|
07e36e695d | ||
|
|
1093119f40 | ||
|
|
8789afb7da | ||
|
|
94bca5443a | ||
|
|
98042548dd | ||
|
|
5b8dbd8ff1 | ||
|
|
41f2520094 | ||
|
|
982ae87ec0 | ||
|
|
0fe75eeedf | ||
|
|
3ae5b6ddc5 | ||
|
|
a306892509 | ||
|
|
a8c8bf4671 | ||
|
|
6d5a03ac45 | ||
|
|
3bb7abf9c3 | ||
|
|
f83cc3f39a | ||
|
|
c95a55128a | ||
|
|
3302a30145 | ||
|
|
599a90ad58 | ||
|
|
5f8f8b51c4 | ||
|
|
7294869d07 | ||
|
|
b8a3c1b565 | ||
|
|
03c9b96955 | ||
|
|
80d1c03457 | ||
|
|
6dd4067167 | ||
|
|
2c858c6988 | ||
|
|
d8544181ce | ||
|
|
3ac627978c | ||
|
|
fce4633de6 | ||
|
|
f6cfa1dfa5 | ||
|
|
aa891401e4 | ||
|
|
c640e05049 | ||
|
|
3945ccf019 | ||
|
|
1687e85335 | ||
|
|
b050d67ba9 | ||
|
|
cade134f40 | ||
|
|
92ede80e4b | ||
|
|
448f865cf1 | ||
|
|
e26f29537a | ||
|
|
d85579d69f | ||
|
|
462c3e1c55 | ||
|
|
70bf3099ee | ||
|
|
db27328558 | ||
|
|
e090f556da | ||
|
|
f60205c704 | ||
|
|
233a6ae951 | ||
|
|
d890e05298 | ||
|
|
2f1c582d7d | ||
|
|
cddc2d5f10 | ||
|
|
44e7a24170 | ||
|
|
471571e493 | ||
|
|
6e1aa42d1a | ||
|
|
3939503377 | ||
|
|
fecdb930d4 | ||
|
|
d0db821298 | ||
|
|
1cf1e79e43 | ||
|
|
69c3ba6f59 | ||
|
|
9cab648d8a | ||
|
|
2ef30b1183 | ||
|
|
4d266412ee | ||
|
|
e44c4ffb82 | ||
|
|
bef7b9b655 | ||
|
|
209a7b8cee | ||
|
|
3952765de0 | ||
|
|
e886f7635b | ||
|
|
76fa56d3fb | ||
|
|
903b5b34d4 | ||
|
|
189fdaf9ac | ||
|
|
96bd3ff8db | ||
|
|
a6fbb40a12 | ||
|
|
78edb61c4c | ||
|
|
3846954c42 | ||
|
|
7468a2d81d | ||
|
|
123a46eef9 | ||
|
|
cb4fe4fffb | ||
|
|
031c4c484d | ||
|
|
43266a825f | ||
|
|
7dc55d831d | ||
|
|
6f67c0093d | ||
|
|
eeeff7d389 | ||
|
|
5cecc3d772 | ||
|
|
a3f1aba6f0 | ||
|
|
30cb5fa4f4 | ||
|
|
e8c0c8861b | ||
|
|
9906174547 | ||
|
|
fb2d08581e | ||
|
|
feeafb9b23 | ||
|
|
a345541ff7 | ||
|
|
9a973770d8 | ||
|
|
e0c60346dc | ||
|
|
faa96dbf6b | ||
|
|
f9e78142be | ||
|
|
da9985058b | ||
|
|
bdbe4ba78a | ||
|
|
3ec8d2fece | ||
|
|
1528fdc7e1 | ||
|
|
e34f278e1d | ||
|
|
455be5b8b7 | ||
|
|
9df86d9aab | ||
|
|
0e9ce4c85f | ||
|
|
4ca69b013f | ||
|
|
1a34a29b7a | ||
|
|
1bb21f9982 | ||
|
|
a57326a026 | ||
|
|
3f6358fea0 | ||
|
|
81a5461d92 | ||
|
|
af3f60cfeb | ||
|
|
445dc415d0 | ||
|
|
afb4d64a0c | ||
|
|
942f665d71 | ||
|
|
51c357af2e | ||
|
|
5ac0bd3800 | ||
|
|
bdaf403a1c | ||
|
|
1b2cfd427c | ||
|
|
9a50c0b963 | ||
|
|
6864ff91cd | ||
|
|
d6a2c1872c | ||
|
|
c43eb31374 | ||
|
|
89eb8371ba | ||
|
|
3dca0283f4 | ||
|
|
5776d608c0 | ||
|
|
63e42c6607 | ||
|
|
9385492114 | ||
|
|
beef03af13 | ||
|
|
10a8916eb1 | ||
|
|
45bb3dd583 | ||
|
|
64344d0328 | ||
|
|
bcd2a79a54 | ||
|
|
7233fcd05b | ||
|
|
54cf7e5471 | ||
|
|
19b803312f | ||
|
|
27a56d15db | ||
|
|
98cef98111 | ||
|
|
d87e7c6934 | ||
|
|
fdf7d2203f | ||
|
|
f814435939 | ||
|
|
5af7e3a7b7 | ||
|
|
8c3fd40c1b | ||
|
|
e9c8bcff63 | ||
|
|
7a23b67020 | ||
|
|
93e862b367 | ||
|
|
90c40dbebf | ||
|
|
7e5c0eb9a5 | ||
|
|
c6f6d405e3 | ||
|
|
b29f9969e5 | ||
|
|
254b418708 | ||
|
|
307027a1d9 | ||
|
|
2b48ae8e38 | ||
|
|
8b02d2bdeb | ||
|
|
28dd5152d7 | ||
|
|
9ed05fc1c8 |
9
.gitignore
vendored
9
.gitignore
vendored
@@ -6,6 +6,7 @@ config.status
|
||||
src/.deps
|
||||
src/Makefile
|
||||
*/*task
|
||||
*/*libtask.a
|
||||
stamp-h1
|
||||
Makefile
|
||||
Makefile.in
|
||||
@@ -17,3 +18,11 @@ src/tests/*.data
|
||||
*~
|
||||
.*.swp
|
||||
package-config/osx/binary/task
|
||||
CMakeCache.txt
|
||||
CMakeFiles
|
||||
cmake_install.cmake
|
||||
install_manifest.txt
|
||||
_CPack_Packages
|
||||
CPackConfig.cmake
|
||||
CPackSourceConfig.cmake
|
||||
commit.h
|
||||
|
||||
33
AUTHORS
33
AUTHORS
@@ -1,11 +1,15 @@
|
||||
The development of task was made possible by the significant contributions of the following people:
|
||||
The development of taskwarrior was made possible by the significant
|
||||
contributions of the following people:
|
||||
|
||||
Paul Beckingham (Principal Author)
|
||||
Federico Hernandez (Package Maintainer & Contributing Author)
|
||||
David J Patrick (Designer)
|
||||
John Florian (Contributing Author)
|
||||
Cory Donnelly (Contributing Author)
|
||||
Johannes Schlatow (Contributing Author)
|
||||
|
||||
The following submitted code, packages or analysis, and deserve special thanks:
|
||||
|
||||
Damian Glenny
|
||||
Andy Lester
|
||||
H. İbrahim Güngör
|
||||
@@ -21,12 +25,25 @@ The following submitted code, packages or analysis, and deserve special thanks:
|
||||
Pietro Cerutti
|
||||
Alexander Neumann
|
||||
Emil Sköldberg
|
||||
Johannes Schlatow
|
||||
Michal Josífko
|
||||
Ed Neville
|
||||
Kevin Owens
|
||||
Mick Koch
|
||||
Kathryn Andersen
|
||||
Alexander Schremmer
|
||||
Jostein Berntsen
|
||||
Andraž 'ruskie' Levstik
|
||||
Irfan Siddiqui
|
||||
Itay Perl
|
||||
Sander Marechal
|
||||
Stephen Heywood
|
||||
Nicola Busanello
|
||||
Eric Fluger
|
||||
Andreas Poisel
|
||||
|
||||
Thanks to the following, who submitted detailed bug reports and excellent
|
||||
suggestions:
|
||||
|
||||
Thanks to the following, who submitted detailed bug reports and excellent suggestions:
|
||||
Eugene Kramer
|
||||
Srijith K
|
||||
Bruce Israel
|
||||
@@ -52,4 +69,14 @@ Thanks to the following, who submitted detailed bug reports and excellent sugges
|
||||
Seneca Cunningham
|
||||
Dirk Deimeke
|
||||
Michelle Crane
|
||||
Elizabeth Maxson
|
||||
Peter De Poorter
|
||||
Max Muller
|
||||
Thomas Sattler
|
||||
Erlan Sergaziev
|
||||
Steve Rader
|
||||
Andy Kriger
|
||||
Patrick R McDonald
|
||||
Pete Lewis
|
||||
Bryce Harrington
|
||||
|
||||
|
||||
104
CMakeLists.txt
Normal file
104
CMakeLists.txt
Normal file
@@ -0,0 +1,104 @@
|
||||
cmake_minimum_required (VERSION 2.8)
|
||||
include (CheckFunctionExists)
|
||||
|
||||
set (HAVE_CMAKE true)
|
||||
|
||||
project (task)
|
||||
set (PROJECT_VERSION "1.9.4")
|
||||
|
||||
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")
|
||||
|
||||
message ("-- Looking for SHA1 references")
|
||||
if (EXISTS .git/index)
|
||||
set (HAVE_COMMIT true)
|
||||
execute_process (COMMAND git log -1 --pretty=format:%h
|
||||
OUTPUT_VARIABLE COMMIT)
|
||||
configure_file ( ${CMAKE_SOURCE_DIR}/commit.h.in
|
||||
${CMAKE_SOURCE_DIR}/commit.h)
|
||||
message ("-- Found SHA1 reference: ${COMMIT}")
|
||||
endif (EXISTS .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}")
|
||||
|
||||
message ("-- Looking for Lua51")
|
||||
find_package (Lua51)
|
||||
if (LUA51_FOUND)
|
||||
message ("-- Found Lua51: ${LUA_LIBRARIES}")
|
||||
set (HAVE_LIBLUA true)
|
||||
set (TASK_INCLUDE_DIRS ${TASK_INCLUDE_DIRS} ${LUA_INCLUDE_DIR})
|
||||
set (TASK_LIBRARIES ${TASK_LIBRARIES} ${LUA_LIBRARIES})
|
||||
endif (LUA51_FOUND)
|
||||
|
||||
message ("-- Looking for pthread")
|
||||
find_path (PTHREAD_INCLUDE_DIR pthread.h)
|
||||
find_library (PTHREAD_LIBRARY NAMES pthread)
|
||||
if (PTHREAD_INCLUDE_DIR AND PTHREAD_LIBRARY)
|
||||
message ("-- Found pthread: ${PTHREAD_LIBRARY}")
|
||||
set (HAVE_LIBPTHREAD true)
|
||||
set (TASK_INCLUDE_DIRS ${TASK_INCLUDE_DIRS} ${PTHREAD_INCLUDE_DIR})
|
||||
set (TASK_LIBRARIES ${TASK_LIBRARIES} ${PTHREAD_LIBRARIES})
|
||||
endif (PTHREAD_INCLUDE_DIR AND PTHREAD_LIBRARY)
|
||||
|
||||
#message ("-- Looking for readline")
|
||||
#find_path (READLINE_INCLUDE_DIR readline/readline.h)
|
||||
#find_library (READLINE_LIBRARY NAMES readline)
|
||||
#if (READLINE_INCLUDE_DIR AND READLINE_LIBRARY)
|
||||
# message ("-- Found readline: ${READLINE_LIBRARY}")
|
||||
# set (HAVE_LIBREADLINE true)
|
||||
# set (HAVE_READLINE true)
|
||||
# set (TASK_INCLUDE_DIRS ${TASK_INCLUDE_DIRS} ${READLINE_INCLUDE_DIR})
|
||||
# set (TASK_LIBRARIES ${TASK_LIBRARIES } ${READLINE_LIBRARIES})
|
||||
#endif (READLINE_INCLUDE_DIR AND READLINE_LIBRARY)
|
||||
|
||||
check_function_exists (random HAVE_RANDOM)
|
||||
check_function_exists (srandom HAVE_SRANDOM)
|
||||
check_function_exists (uuid_unparse_lower HAVE_UUID)
|
||||
|
||||
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)
|
||||
else (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
set (UNKNOWN true)
|
||||
endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
|
||||
message ("-- Configuring auto.h")
|
||||
configure_file (
|
||||
${CMAKE_SOURCE_DIR}/cmake.h.in
|
||||
${CMAKE_SOURCE_DIR}/auto.h)
|
||||
|
||||
add_subdirectory (src)
|
||||
add_subdirectory (doc)
|
||||
add_subdirectory (i18n)
|
||||
add_subdirectory (scripts)
|
||||
if (EXISTS test)
|
||||
add_subdirectory (test EXCLUDE_FROM_ALL)
|
||||
endif (EXISTS test)
|
||||
|
||||
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" "auto.h$"
|
||||
"/\\.gitignore" "/\\.git/" "swp$")
|
||||
include (CPack)
|
||||
219
ChangeLog
219
ChangeLog
@@ -1,7 +1,222 @@
|
||||
|
||||
------ current release ---------------------------
|
||||
|
||||
1.9.2 (7/10/2010)
|
||||
1.9.4 (03/03/2011)
|
||||
+ 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
|
||||
as relative to the current date/time.
|
||||
+ Added feature #189, that records the start and stop times as an
|
||||
annotation for a task.
|
||||
+ Added features #244, #272, #273, #274, #275 and #279, which support
|
||||
import and export of YAML 1.1. YAML is now the default export format
|
||||
for task.
|
||||
+ Added feature #391, now the 'task color legend' command will show
|
||||
samples of all the defined colors and color rules from your .taskrc
|
||||
and theme.
|
||||
+ Added feature #410, and now task supports dependencies between tasks
|
||||
with the syntax 'task 1 depends:2' to add a dependency, or 'task 1
|
||||
depends:-2' to remove a dependency.
|
||||
+ Added feature #421, and now task can sync data files from two sources
|
||||
via the 'merge' command.
|
||||
+ Added feature #423, now custom report filters allow rc overrides.
|
||||
+ Added feature #428, preparing the new structure for the NEWS file.
|
||||
+ Added feature #429, which improves the 'all' report to exclude deleted.
|
||||
tasks, provide a new sort order and include the 'end' column.
|
||||
+ Added feature #431, which improves feedback after running the 'log'
|
||||
command.
|
||||
+ Added feature #446, task supports now 'sow', 'som' and 'soy' as dates
|
||||
for 'due', 'wait' and 'until' (thanks to T. Charles Yun).
|
||||
Added as well synonyms soww/eoww plus new socw/eocw for calendar weeks.
|
||||
+ Fixed bug #467, where recurring tasks were not honoring wait values.
|
||||
+ Added feature #471, which makes greater use of projects by reporting
|
||||
changes to the completion percentage when it changes.
|
||||
+ Added feature #478, which uses the colorization rules in the 'info'
|
||||
report.
|
||||
+ Added feature #481, allowing for user control of the color rule order
|
||||
of precedence via the 'rule.precedence.color' configuration variable.
|
||||
+ 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.
|
||||
+ New 'blocked' report for showing blocked tasks.
|
||||
+ New 'unblocked' report for showing tasks that are not blocked.
|
||||
+ Improved man pages (thanks to Andy Lester).
|
||||
+ Default .taskrc files are now largely empty, and rely almost completed
|
||||
on default values.
|
||||
+ Special tags 'nocal', 'nocolor' and 'nonag' are implemented.
|
||||
+ The 'tags' command highlights special tags.
|
||||
+ The 'stats' and 'info' reports not obey color.alternate.
|
||||
+ New fish shell tab completion script (thanks to Mick Koch).
|
||||
+ Color rules now obey the rc.search.case.sensitive configuration option.
|
||||
+ The color.keyword.XXX color rule now applies to annotations too.
|
||||
+ Importing the same YAML twice now generates an error.
|
||||
+ Two new color themes (thanks to Kathryn Andersen).
|
||||
+ More localized holiday files for US, CA, SE, DE, FR, UK, ES, NL and NO
|
||||
(thanks to T. Charles Yun, Jostein Berntsen).
|
||||
+ Added new 'diagnostics' command to help with bug submission, testing.
|
||||
+ Fixed bug #427, preventing the task edit command to parse annotation
|
||||
dates with spaces.
|
||||
+ Fixed bug #433, making task command output more consistent.
|
||||
+ Fixed bug #434, allowing users to complete tasks with status 'waiting'
|
||||
+ Fixed bug #438, correcting the sorting of the entry_time, start_time
|
||||
and end_time columns (thanks to Michelle Crane).
|
||||
+ Fixed bug #439, which ignored dateformat.annotation for sparse annotations.
|
||||
+ Fixed bug #440, which prevented simultaneous append/prepend and substitution.
|
||||
+ Fixed bug #441, which misparsed '/a/a:/' as an attribute, rather than a
|
||||
substitution (thanks to Michelle Crane).
|
||||
+ Fixed bug #444, which made task shell unusable after canceling out of an
|
||||
undo command.
|
||||
+ Fixed bug #445, which caused task to not notice that the command 'h' is
|
||||
ambiguous.
|
||||
+ Fixed bug #449, so the wait: attribute can be applied to a task at any
|
||||
time, not just on add.
|
||||
+ Fixed bug #452, which defines a higher resolution division between due
|
||||
and overdue.
|
||||
+ Fixed bug #459, which showed a confusing message when 'limit:page' was
|
||||
used, with few tasks.
|
||||
+ Fixed bug #461, in which the filter 'due:today' failed, but 'due.is:today'
|
||||
worked.
|
||||
+ Fixed bug #466, which gave the wrong error message when a custom report
|
||||
was missing a direction indicator for the sort order.
|
||||
+ Fixed bug #470, which caused task to not support the color 'none'.
|
||||
+ Fixed bug #476, so that task now issues a warning when a wait date falls
|
||||
after a due date (thanks to T. Charles Yun).
|
||||
+ 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
|
||||
values.
|
||||
+ Fixed problem with the 'undo' command not observing the rc.color or the
|
||||
rc._forcecolor settings.
|
||||
+ Fixed problem with extra blank line in the ghistory reports.
|
||||
+ Fixed a precision problem with average age on the summary report.
|
||||
+ Clarified the documentation regarding the project name (taskwarrior) and
|
||||
the program name (task).
|
||||
|
||||
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).
|
||||
+ Added feature #326, allowing tasks to be added in the completed state, by
|
||||
@@ -61,8 +276,6 @@
|
||||
+ Fixed wording (support issue #383) when modifying a recurring task (thanks
|
||||
to T. Charles Yun).
|
||||
|
||||
------ old releases ------------------------------
|
||||
|
||||
1.9.1 (5/22/2010) 60a99725b858be134ad538cb7c1a32c98de70e67
|
||||
+ Summary report bar colors can now be specified with color.summary.bar
|
||||
and color.summary.background configuration variables.
|
||||
|
||||
293
INSTALL
293
INSTALL
@@ -1,234 +1,149 @@
|
||||
Installation Instructions
|
||||
*************************
|
||||
-------------------------
|
||||
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
|
||||
2006 Free Software Foundation, Inc.
|
||||
# Building task with autotools is deprecated and will be phased out.
|
||||
#
|
||||
# Please follow the instructions below to build task with cmake.
|
||||
#
|
||||
# In case you still want or need to build task with autotools:
|
||||
#
|
||||
# $ ./configure
|
||||
# $ make
|
||||
# $ sudo make install
|
||||
#
|
||||
# For more details on using autotools and options to ./configure please refer
|
||||
# to the autoconf manual.
|
||||
|
||||
This file is free documentation; the Free Software Foundation gives
|
||||
unlimited permission to copy, distribute and modify it.
|
||||
Pre-requisites
|
||||
--------------
|
||||
|
||||
You will need the CMake build system installed in order to build taskwarrior
|
||||
from source.
|
||||
|
||||
Optionally, you might want to have Lua installed, if you wish to write plugins
|
||||
and modify taskwarrior.
|
||||
|
||||
More information on cmake can be obtained at http://cmake.org
|
||||
|
||||
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 correpsonding TASK_* variables will be combined with CMAKE_INSTALL_PREFIX to get
|
||||
absolute installation directoris:
|
||||
|
||||
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_PREFIZ/TASK_BINDIR /usr/local/bin
|
||||
CMAKE_INSTALL_PREFIZ/TASK_DOCDIR /usr/local/share/doc/task
|
||||
CMAKE_INSTALL_PREFIZ/TASK_MAN1DIR /usr/local/share/man/man1
|
||||
CMAKE_INSTALL_PREFIZ/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 1.9.4 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
|
||||
If you're having trouble with Lua, check to see if the include files were
|
||||
installed. If you're using fink, this will require the lua51-dev package in
|
||||
addition to lua51.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
Troubleshooting
|
||||
---------------
|
||||
|
||||
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'.
|
||||
If you've recently made changes to dependencies (by reinstalling Lua, for
|
||||
example) be sure to rerun 'cmake .' before trying to execute 'make' again.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
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.
|
||||
|
||||
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 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.
|
||||
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
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:
|
||||
|
||||
./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.
|
||||
|
||||
---
|
||||
|
||||
15
Makefile.am
15
Makefile.am
@@ -1,11 +1,9 @@
|
||||
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
|
||||
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
|
||||
doc_DATA = AUTHORS ChangeLog COPYING NEWS README INSTALL
|
||||
|
||||
bashscriptsdir = $(docdir)
|
||||
nobase_dist_bashscripts_DATA = scripts/bash/task_completion.sh
|
||||
@@ -13,6 +11,12 @@ nobase_dist_bashscripts_DATA = scripts/bash/task_completion.sh
|
||||
zshscriptsdir = $(docdir)
|
||||
nobase_dist_zshscripts_DATA = scripts/zsh/_task
|
||||
|
||||
addonsdir = $(docdir)
|
||||
nobase_dist_addons_DATA = scripts/add-ons/export-csv.pl scripts/add-ons/export-ical.pl scripts/add-ons/export-xml.pl scripts/add-ons/export-xml.py scripts/add-ons/export-xml.rb scripts/add-ons/export-yaml.pl
|
||||
|
||||
fishdir = $(docdir)
|
||||
nobase_dist_fish_DATA = scripts/fish/task.fish
|
||||
|
||||
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
|
||||
|
||||
@@ -20,5 +24,4 @@ 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-US.rc doc/rc/holidays-SE.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
|
||||
|
||||
dist_rcfile_DATA = doc/rc/dark-16.theme doc/rc/dark-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 doc/rc/holidays-AT.rc doc/rc/holidays-CA.rc doc/rc/holidays-DE.rc doc/rc/holidays-DK.rc doc/rc/holidays-ES.rc doc/rc/holidays-FR.rc doc/rc/holidays-IT.rc doc/rc/holidays-NL.rc doc/rc/holidays-NO.rc doc/rc/holidays-NZ.rc doc/rc/holidays-SE.rc doc/rc/holidays-UK.rc doc/rc/holidays-US.rc doc/rc/light-16.theme doc/rc/light-256.theme doc/rc/dark-gray-256.theme
|
||||
|
||||
85
NEWS
85
NEWS
@@ -1,38 +1,91 @@
|
||||
|
||||
New Features in task 1.9.2
|
||||
New Features in taskwarrior 1.9.4
|
||||
|
||||
- New 'log' command to add tasks that are already completed.
|
||||
- New annual history and ghistory command variations.
|
||||
- Alias support in shell completion scripts.
|
||||
- New iCalendar/vcalendar export format (RFC-2445, RFC-5545, RFC-5546).
|
||||
- New 'show' command to display configuration settings.
|
||||
- New 'denotate' command to delete annotations.
|
||||
- New 16-color and 256-color themes included.
|
||||
- New limit:page filter to show only one page of tasks.
|
||||
- Performance enhancements.
|
||||
- New burndown charts.
|
||||
- New 'count' helper command.
|
||||
- Inifinite width reports, when redirecting output.
|
||||
- Added highlighting for the show command that indicates which values differ
|
||||
from the defaults.
|
||||
- Added change log display to the 'info' command.
|
||||
- The first month in the calendar report can now be changed with an offset
|
||||
value.
|
||||
- No more dependency on ncurses.
|
||||
- New '_query' helper command for script writers, which accepts a filter like
|
||||
any other report, but returns unformatted JSON. The new alias 'export.json'
|
||||
maps to the _query command.
|
||||
- Import can now read from files and URLs.
|
||||
- Assorted bug fixes.
|
||||
- New literal date "later" and "someday" to be used with the wait attribute to
|
||||
hide a task until somepoint in time (this sets the wait date to 1/18/2038).
|
||||
- Total active time now shown on the info report.
|
||||
- Add-on scripts: export-xml.pl, export-xml.py, export-xml.rb, export-ical.pl,
|
||||
export-csv.pl and export-yaml.pl.
|
||||
- New dark-gray-256 color theme.
|
||||
|
||||
Please refer to the ChangeLog file for full details. There are too many to
|
||||
list here.
|
||||
|
||||
Task has been built and tested on the following configurations:
|
||||
New commands in taskwarrior 1.9.4
|
||||
|
||||
- 'burndown.daily', 'burndown.weekly', 'burndown.monthly', also with
|
||||
'burndown' that is an alias to burndown.weekly.
|
||||
- 'count' accepts a filter, and simply returns a count of the tasks
|
||||
matching the filter. Used as a helper command by scripts.
|
||||
- '_query' helper command for all future export formats.
|
||||
|
||||
New configuration options in taskwarrior 1.9.4
|
||||
|
||||
- color.burndown.pending, color.burndown.started and color.burndown.done
|
||||
control the color of the burndown charts.
|
||||
- burndown.bias, which is a tweakable control for the completion estimation
|
||||
for the burndown charts, and is documented in taskrc(5).
|
||||
- defaultwidth=0 is causes word-wrapping to be turned off, and effectively
|
||||
set reports to potentially have infinite width .
|
||||
- journal.info controls whether a change log for each task is displayed by
|
||||
the 'info' command.
|
||||
- gc=off can be used, temporarily, to defer GC until later commands, which
|
||||
eliminates problems with task ID numbers for script writers.
|
||||
- calendar.offset=off and calendar.offset.value=-1 to apply an offset value
|
||||
to change the effective first month in the calendar report.
|
||||
- default.due can be specified, and adds a default due date to all added
|
||||
and imported tasks that don't otherwise have a due date.
|
||||
- edit.verbose can be set to 'off' to eliminated the help text when using
|
||||
the 'task edit' command.
|
||||
- xterm.title can be set to 'on' to update the xterm window title when a
|
||||
report is run.
|
||||
- new holidays configuration file for New Zealand, Italy, Austria.
|
||||
|
||||
Newly deprecated features in taskwarrior 1.9.4
|
||||
|
||||
- The export commands (export, export.csv, export.yaml, export.ical and
|
||||
export.vcalendar) are deprecated, and will be replaced in future releases
|
||||
by add-on scripts.
|
||||
|
||||
---
|
||||
|
||||
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.04 Lucid Lynx, 9.10 Karmic Koala
|
||||
* Fedora 14 Laughlin, 13 Goddard
|
||||
* Ubuntu 10.10 Maverick Meerkat, 10.04 Lucid Lynx
|
||||
* Debian Sid
|
||||
* Slackware 12.2
|
||||
* Arch Linux
|
||||
* Gentoo Linux
|
||||
* SliTaz Linux
|
||||
* CRUX Linux
|
||||
* SuSE 11.3
|
||||
* Solaris 10 and 8
|
||||
* OpenBSD 4.5
|
||||
* FreeBSD
|
||||
* NetBSD
|
||||
* Cygwin 1.7 and 1.5
|
||||
* Haiku R1/alpha1
|
||||
|
||||
While Task has undergone testing, bugs are sure to remain. If you encounter a
|
||||
bug, please enter a new issue at:
|
||||
---
|
||||
|
||||
While Taskwarrior has undergone testing, bugs are sure to remain. If you
|
||||
encounter a bug, please enter a new issue at:
|
||||
|
||||
http://taskwarrior.org/projects/taskwarrior/issues/new
|
||||
|
||||
@@ -45,5 +98,3 @@ Or just send a message to:
|
||||
support@taskwarrior.org
|
||||
|
||||
Thank you.
|
||||
|
||||
---
|
||||
|
||||
12
README
12
README
@@ -1,10 +1,10 @@
|
||||
|
||||
Thank you for taking a look at task!
|
||||
Thank you for taking a look at taskwarrior!
|
||||
|
||||
Task is a GTD, todo list, task management, command line utility with a multitude
|
||||
of features. It is a portable, well supported, very active project, and it is
|
||||
Open Source. Task has binary distributions, online documentation, demonstration
|
||||
movies, and you'll find all the details at:
|
||||
Taskwarrior is a GTD, todo list, task management, command line utility with a
|
||||
multitude of features. It is a portable, well supported, very active project,
|
||||
and it is Open Source. Taskwarrior has binary distributions, online
|
||||
documentation, demonstration movies, and you'll find all the details at:
|
||||
|
||||
http://taskwarrior.org
|
||||
|
||||
@@ -18,6 +18,6 @@ Please send your support questions and code patches to:
|
||||
|
||||
support@taskwarrior.org
|
||||
|
||||
Consider joining taskwarrior.org and participating in the future of task.
|
||||
Consider joining taskwarrior.org and participating in the future of taskwarrior.
|
||||
|
||||
---
|
||||
|
||||
98
README.build
98
README.build
@@ -1,98 +0,0 @@
|
||||
|
||||
Task Build Notes
|
||||
----------------
|
||||
|
||||
Task 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 task 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 task 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
|
||||
Task 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 task, 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 task 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.
|
||||
|
||||
---
|
||||
48
cmake.h.in
Normal file
48
cmake.h.in
Normal file
@@ -0,0 +1,48 @@
|
||||
/* cmake.h.in. Creates auto.h during a cmake run */
|
||||
|
||||
/* 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}"
|
||||
|
||||
/* 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 HAIKU
|
||||
#cmakedefine SOLARIS
|
||||
#cmakedefine WIN32
|
||||
#cmakedefine UNKNOWN
|
||||
|
||||
/* Found the lua library */
|
||||
#cmakedefine HAVE_LIBLUA
|
||||
|
||||
/* 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 uuid_unparse_lower */
|
||||
#cmakedefine HAVE_UUID
|
||||
|
||||
4
commit.h.in
Normal file
4
commit.h.in
Normal file
@@ -0,0 +1,4 @@
|
||||
/* commit.h.in. Creates commit.h during a cmake run */
|
||||
|
||||
/* git information */
|
||||
#define COMMIT "${COMMIT}"
|
||||
58
configure.ac
58
configure.ac
@@ -2,7 +2,7 @@
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ(2.61)
|
||||
AC_INIT(task, 1.9.2, support@taskwarrior.org)
|
||||
AC_INIT(task, 1.9.4, support@taskwarrior.org)
|
||||
|
||||
|
||||
# Source type.
|
||||
@@ -64,37 +64,6 @@ else
|
||||
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])],
|
||||
@@ -144,6 +113,7 @@ AC_ARG_WITH([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"
|
||||
@@ -154,6 +124,26 @@ if test "x$with_lua" = "xyes" ; then
|
||||
fi
|
||||
|
||||
AC_CHECK_LIB([lua],[main])
|
||||
|
||||
# The following code should replace the one line above, but is not working.
|
||||
# Anyone know why?
|
||||
|
||||
# # check for lua. this is separate from the above libraries because it's
|
||||
# # liblua50 on debian and liblua everywhere else.
|
||||
# AC_CHECK_LIB(lua, lua_open, LIB_LUA="-llua")
|
||||
# AC_CHECK_LIB(lualib, luaopen_base, LIB_LUA_LIB=-llualib, , [$LIB_LUA -ldl -lm])
|
||||
#
|
||||
# if test "x${LIB_LUA}" = "x"; then
|
||||
# echo "Could not find liblua. Please install liblua 5.1+"
|
||||
# exit 1
|
||||
# fi
|
||||
#
|
||||
# if test "x${LIB_LUA_LIB}" = "x"; then
|
||||
# echo "Could not find liblualib. Please install liblualib 5.1+"
|
||||
# exit 1
|
||||
# fi
|
||||
#
|
||||
# LDFLAGS="$LDFLAGS $LIB_LUA $LIB_LUA_LIB"
|
||||
fi
|
||||
|
||||
|
||||
@@ -169,6 +159,10 @@ 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])
|
||||
|
||||
13
doc/CMakeLists.txt
Normal file
13
doc/CMakeLists.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
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_SOURCE_DIR}/man/ DESTINATION ${TASK_MAN1DIR}
|
||||
FILES_MATCHING PATTERN "*.1")
|
||||
install (DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/man/ DESTINATION ${TASK_MAN5DIR}
|
||||
FILES_MATCHING PATTERN "*.5")
|
||||
install (DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/rc DESTINATION ${TASK_DOCDIR})
|
||||
6
doc/man/.gitignore
vendored
Normal file
6
doc/man/.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
task-color.5
|
||||
task-faq.5
|
||||
task-sync.5
|
||||
task-tutorial.5
|
||||
task.1
|
||||
taskrc.5
|
||||
@@ -1,4 +1,4 @@
|
||||
.TH task-color 5 2010-05-22 "task 1.9.2" "User Manuals"
|
||||
.TH task-color 5 2011-03-03 "${PACKAGE_STRING}" "User Manuals"
|
||||
|
||||
.SH NAME
|
||||
task-color \- A color tutorial for the task(1) command line todo manager.
|
||||
@@ -18,8 +18,8 @@ which shell you use). If this is a new setting, you will need to either run
|
||||
that profile script, or close and reopen the terminal window (which does the
|
||||
same thing).
|
||||
|
||||
Now tell task that you want to use color. This is the default for task, so
|
||||
the following step may be unnecessary.
|
||||
Now tell taskwarrior that you want to use color. This is the default for
|
||||
taskwarrior, so the following step may be unnecessary.
|
||||
|
||||
$ task config color on
|
||||
|
||||
@@ -28,25 +28,25 @@ like:
|
||||
|
||||
color=on
|
||||
|
||||
Now task is ready.
|
||||
Now taskwarrior is ready.
|
||||
|
||||
.SH AUTOMATIC MONOCHROME
|
||||
It should be mentioned that task is aware of whether it's output is going to a
|
||||
terminal, or to a file or through a pipe. When task output goes to a terminal,
|
||||
color is desirable, but consider the following command:
|
||||
It should be mentioned that taskwarrior is aware of whether its output is going
|
||||
to a terminal, or to a file or through a pipe. When taskwarrior output goes to
|
||||
a terminal, color is desirable, but consider the following command:
|
||||
|
||||
$ task list > file.txt
|
||||
|
||||
Do we really want all those color control codes in the file? Task assumes that
|
||||
you do not, and temporarily sets color to 'off' while generating the output.
|
||||
This explains the output from the following command:
|
||||
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 '
|
||||
color off
|
||||
|
||||
it always returns 'off', no matter what the setting.
|
||||
|
||||
The reason is that the task output gets piped into grep, and the color is
|
||||
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:
|
||||
|
||||
@@ -60,7 +60,7 @@ or by temporarily overriding it like this:
|
||||
color on
|
||||
|
||||
.SH AVAILABLE COLORS
|
||||
Task has a 'color' command that will show all the colors it is capable of
|
||||
Taskwarrior has a 'color' command that will show all the colors it is capable of
|
||||
displaying. Try this:
|
||||
|
||||
$ task color
|
||||
@@ -106,7 +106,8 @@ There is an additional 'underline' attribute that may be used:
|
||||
|
||||
underline bright red on black
|
||||
|
||||
Task has a command that helps you visualize these color combinations. Try this:
|
||||
Taskwarrior has a command that helps you visualize these color combinations.
|
||||
Try this:
|
||||
|
||||
$ task color underline bright red on black
|
||||
|
||||
@@ -187,16 +188,25 @@ combination:
|
||||
|
||||
red on gray3
|
||||
|
||||
you are mixing a 16-color and 256-color specification. Task will map red to
|
||||
color1, and proceed. Note that red and color1 are not quite the same.
|
||||
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.
|
||||
|
||||
Note also that there is no bold or bright attributes when dealing with 256
|
||||
colors, but there is still underline available.
|
||||
|
||||
.SH LEGEND
|
||||
Taskwarrior will show examples of all defined colors used in your .taskrc, or
|
||||
theme, if you run this command:
|
||||
|
||||
$ task color legend
|
||||
|
||||
This gives you an example of each of the colors, so you can see the effect,
|
||||
without necessarily creating a set of tasks that meet each of the rule criteria.
|
||||
|
||||
.SH RULES
|
||||
Task 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:
|
||||
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:
|
||||
|
||||
$ task add project:Home priority:H pay the bills (1)
|
||||
$ task add project:Home clean the rug (2)
|
||||
@@ -226,8 +236,22 @@ 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:
|
||||
|
||||
due.today,active,blocked,overdue,due,keyword,project,tag,recurring,pri,tagged
|
||||
|
||||
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.
|
||||
|
||||
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'.
|
||||
|
||||
.SH THEMES
|
||||
Task supports themes. What this really means is that with the ability to
|
||||
Taskwarrior supports themes. What this really means is that with the ability to
|
||||
include other files into the .taskrc file, different sets of color rules can
|
||||
be included.
|
||||
|
||||
@@ -238,7 +262,7 @@ your .taskrc file:
|
||||
include /usr/local/share/doc/task/rc/dark-256.theme
|
||||
.RE
|
||||
|
||||
You can use any of the standard task themes:
|
||||
You can use any of the standard taskwarrior themes:
|
||||
|
||||
.RS
|
||||
light-16.theme
|
||||
@@ -256,26 +280,31 @@ dark-green-256.theme
|
||||
dark-blue-256.theme
|
||||
.RE
|
||||
|
||||
You can also see how the theme will color the various tasks with the command:
|
||||
|
||||
$ task color legend
|
||||
|
||||
Better yet, create your own, and share it. We will gladly host the theme file
|
||||
on <http://taskwarrior.org>.
|
||||
|
||||
.SH "CREDITS & COPYRIGHTS"
|
||||
task was written by P. Beckingham <paul@beckingham.net>.
|
||||
Taskwarrior was written by P. Beckingham <paul@beckingham.net>.
|
||||
.br
|
||||
Copyright (C) 2006 \- 2010 P. Beckingham
|
||||
Copyright (C) 2006 \- 2011 P. Beckingham
|
||||
|
||||
This man page was originally written by Paul Beckingham.
|
||||
|
||||
task is distributed under the GNU General Public License. See
|
||||
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 task(1),
|
||||
.BR taskrc(5),
|
||||
.BR task-faq(5)
|
||||
.BR task-tutorial(5)
|
||||
.BR task-faq(5),
|
||||
.BR task-tutorial(5),
|
||||
.BR task-sync(5)
|
||||
|
||||
For more information regarding task, the following may be referenced:
|
||||
For more information regarding taskwarrior, the following may be referenced:
|
||||
|
||||
.TP
|
||||
The official site at
|
||||
@@ -291,5 +320,5 @@ You can contact the project by writing an email to
|
||||
|
||||
.SH REPORTING BUGS
|
||||
.TP
|
||||
Bugs in task may be reported to the issue-tracker at
|
||||
Bugs in taskwarrior may be reported to the issue-tracker at
|
||||
<http://taskwarrior.org>
|
||||
@@ -1,322 +0,0 @@
|
||||
.TH task-faq 5 2010-05-22 "task 1.9.2" "User Manuals"
|
||||
|
||||
.SH NAME
|
||||
task-faq \- A FAQ for the task(1) command line todo manager.
|
||||
|
||||
.SH DESCRIPTION
|
||||
Task 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 commands that allow you to do various things with it.
|
||||
|
||||
.SH WELCOME
|
||||
Welcome to the task FAQ. If you have would like to see a question answered
|
||||
here, please send us a note at <support@taskwarrior.org>.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.TP
|
||||
.B Q: When I redirect the output of task to a file, I lose all the colors. How do I fix this?
|
||||
A: Task 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:
|
||||
|
||||
_forcecolor=on
|
||||
|
||||
.TP
|
||||
.B Q: How do I backup my task data files? Where are they?
|
||||
A: Task writes all pending tasks to the file
|
||||
|
||||
~/.task/pending.data
|
||||
|
||||
and all completed and deleted tasks to
|
||||
|
||||
~/.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
|
||||
task configuration data. To be sure, and to future-proof your backup, consider
|
||||
backing up all the files in the ~/.task directory.
|
||||
|
||||
.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
|
||||
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"
|
||||
|
||||
This gives you two commands, 'wtask' and 'htask' that operate using two
|
||||
different sets of task data files.
|
||||
|
||||
.TP
|
||||
.B Q: Can I revert to a previous version of task? How?
|
||||
A: 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.
|
||||
|
||||
Note that it is possible that the task file format will change. For example, the
|
||||
format changed between versions 1.5.0 and 1.6.0. Task will automatically upgrade
|
||||
the file but if you need to revert to a previous version of task, 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 task to word-wrap descriptions. How do I do this?
|
||||
A: You need to install ncurses, by doing this:
|
||||
|
||||
% sudo apt-get install libncurses5-dev
|
||||
|
||||
Then you need to rebuild task from scratch, starting with
|
||||
|
||||
% cd task-X.X.X
|
||||
% ./configure
|
||||
...
|
||||
|
||||
The result should be a task program that knows the width of the terminal window,
|
||||
and wraps accordingly.
|
||||
|
||||
Note that there are binary packages that all include this capability.
|
||||
|
||||
.TP
|
||||
.B Q: How do I build task under Cygwin?
|
||||
A: Task 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 task 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.
|
||||
|
||||
.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,
|
||||
on_green ...), but underline and bold are not supported.
|
||||
|
||||
If you run the command:
|
||||
|
||||
% task colors
|
||||
|
||||
Task will display all the colors it can use, and you will see which ones you can use.
|
||||
|
||||
See the 'man task-color' for more details on which colors can be used.
|
||||
|
||||
.TP
|
||||
.B Q: Where does task store the data?
|
||||
By default, task creates a .taskrc file in your home directory and populates it
|
||||
with defaults. Task also creates a .task directory in your home directory and
|
||||
puts data files there.
|
||||
|
||||
.TP
|
||||
.B Q: Can I edit that data?
|
||||
Of course you can. It is a simple text file, and looks somewhat like the JSON
|
||||
format, and if you are careful not to break the format, there is no reason not
|
||||
to edit it. But task provides a rich command set to do that manipulation for
|
||||
you, so it is probably best to leave those files alone.
|
||||
|
||||
.TP
|
||||
.B Q: How do I restore my .taskrc file to defaults?
|
||||
If you delete (or rename) your .taskrc file, task will offer to create a default
|
||||
one for you. Another way to do this is with the command:
|
||||
|
||||
$ task rc:new-file version
|
||||
|
||||
Task will create 'new-file' if it doesn't already exist. Note that this is a
|
||||
good way to learn about new configuration settings, if your .taskrc file was
|
||||
created by an older version of task.
|
||||
|
||||
.TP
|
||||
.B Q: Do I need to back up my task data?
|
||||
Yes. You should back up your ~/.task directory, and probably your ~/.taskrc
|
||||
file too.
|
||||
|
||||
.TP
|
||||
.B Q: Can I share my tasks between different machines?
|
||||
Yes, you can. Most people have success with a DropBox - a free and secure file
|
||||
synching tool. Simply configure task to store it's data in a dropbox folder, by
|
||||
modifying the:
|
||||
|
||||
data.location=...
|
||||
|
||||
configuration variable. Check out DropBox at http://www.dropbox.com.
|
||||
|
||||
.TP
|
||||
.B Q: The undo.data file gets very large - do I need it?
|
||||
You need it if you want the undo capability. 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 task, because
|
||||
task never reads it until you want to undo. Otherwise task only appends to the
|
||||
file.
|
||||
|
||||
.TP
|
||||
.B Q: How do I know whether my terminal support 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 task 1.9 or later, you simply
|
||||
run
|
||||
|
||||
$ 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.
|
||||
|
||||
See the task-color(5) man page for more details.
|
||||
|
||||
.TP
|
||||
.B Q: How do I make use of all these colors?
|
||||
See the task-color(5) man page for an in-depth explanation of the task color
|
||||
rules.
|
||||
|
||||
.TP
|
||||
.B Q: How can I make task 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:
|
||||
|
||||
#! /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 $*
|
||||
}
|
||||
|
||||
.TP
|
||||
.B Q: Task searches in a case-sensitive fashion - can I change that?
|
||||
You can. Just set the following value in your .taskrc file:
|
||||
|
||||
search.case.sensitive=no
|
||||
|
||||
This will affect searching for keywords:
|
||||
|
||||
$ task list Document
|
||||
|
||||
task 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/
|
||||
|
||||
The pattern on the left will now be a caseless search term.
|
||||
|
||||
.TP
|
||||
.B Q: Why do the task ID numbers change?
|
||||
Task does this to always show you the smallest numbers it can. The idea is that
|
||||
if your tasks are numbered 1 - 33, for example, those are easy to type in. If
|
||||
instead task kept a rolling sequence number, after a while your tasks might be
|
||||
numbered 481 - 513, which makes it more likely to enter one incorrectly, because
|
||||
there are more digits.
|
||||
|
||||
When you run a report (such as "list"), task assigns the numbers before it
|
||||
displays them. For example, you can do this:
|
||||
|
||||
$ task list
|
||||
$ task do 12
|
||||
$ task add Pay the rent
|
||||
$ task delete 31
|
||||
|
||||
Those id numbers are then good until the next report is run. This is because
|
||||
task performs a garbage-collect operation on the pending tasks file when a
|
||||
report is run, which moves the deleted and completed tasks from the pending.data
|
||||
file to the completed.data file. This keeps the pending tasks file small, and
|
||||
therefore keeps task fast. The completed data file is the one that grows
|
||||
unbounded with use, but that one isn't accessed as much, so it doesn't matter as
|
||||
much. So in all, the ID number resequencing is about efficiency.
|
||||
|
||||
.TP
|
||||
.B Q: How do I list tasks that are either priority 'H' or 'M', but not 'L'?
|
||||
Task's filters are all combined with and implicit logical AND operator, so if
|
||||
you were to try this:
|
||||
|
||||
$ task list priority:H priority:M
|
||||
|
||||
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:
|
||||
|
||||
$ task list priority.not:L priority.any:
|
||||
|
||||
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',
|
||||
because the two logical restrictions are not mutually exclusive as in the
|
||||
original filter.
|
||||
|
||||
Some of you may be familiar with DeMorgan's laws of formal logic that relate
|
||||
the AND and OR operators in terms of each other via negation, which can be used
|
||||
to construct task filters.
|
||||
|
||||
.TP
|
||||
.B Q: How do I delete an annotation?
|
||||
Task now has a 'denotate' command to remove annotations. First here is an
|
||||
example task:
|
||||
|
||||
$ 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
|
||||
|
||||
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
|
||||
|
||||
This will remove the second annotation - the first non-exact match.
|
||||
|
||||
.SH "CREDITS & COPYRIGHTS"
|
||||
task was written by P. Beckingham <paul@beckingham.net>.
|
||||
.br
|
||||
Copyright (C) 2006 \- 2010 P. Beckingham
|
||||
|
||||
This man page was originally written by P. Beckingham.
|
||||
|
||||
task 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 task(1),
|
||||
.BR taskrc(5),
|
||||
.BR task-tutorial(5)
|
||||
.BR task-color(5)
|
||||
|
||||
For more information regarding task, 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 task may be reported to the issue-tracker at
|
||||
<http://taskwarrior.org>
|
||||
361
doc/man/task-faq.5.in
Normal file
361
doc/man/task-faq.5.in
Normal file
@@ -0,0 +1,361 @@
|
||||
.TH task-faq 5 2011-03-03 "${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>.
|
||||
|
||||
.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:
|
||||
|
||||
_forcecolor=on
|
||||
|
||||
There is an additional problem with using pagers such as 'less' and 'more'.
|
||||
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
|
||||
|
||||
~/.task/pending.data
|
||||
|
||||
and all completed and deleted tasks to
|
||||
|
||||
~/.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.
|
||||
|
||||
.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
|
||||
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"
|
||||
|
||||
This gives you two commands, 'wtask' and 'htask' that operate using two
|
||||
different sets of task data files.
|
||||
|
||||
.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
|
||||
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.
|
||||
|
||||
Note that it is possible that the taskwarrior file format will change. For
|
||||
example, the format changed between versions 1.5.0 and 1.6.0. Taskwarrior will
|
||||
automatically upgrade the file but if you need to revert to a previous version
|
||||
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: How do I build taskwarrior under Cygwin?
|
||||
A: 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
|
||||
|
||||
The gcc and make packages allow you to compile the code, and are therefore
|
||||
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,
|
||||
on_green ...), but underline and bold are not supported.
|
||||
|
||||
If you run the command:
|
||||
|
||||
% task colors
|
||||
|
||||
Taskwarrior will display all the colors it can use, and you will see which ones
|
||||
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.
|
||||
|
||||
.TP
|
||||
.B Q: Where does taskwarrior store the data?
|
||||
By default, taskwarrior creates a .taskrc file in your home directory and
|
||||
populates it with defaults. Taskwarrior also creates a .task directory in your
|
||||
home directory and puts data files there.
|
||||
|
||||
.TP
|
||||
.B Q: Can I edit that data?
|
||||
Of course you can. It is a simple text file, and looks somewhat like the JSON
|
||||
format, and if you are careful not to break the format, there is no reason not
|
||||
to edit it. But taskwarrior provides a rich command set to do that manipulation
|
||||
for you, so it is probably best to leave those files alone.
|
||||
|
||||
.TP
|
||||
.B Q: How do I restore my .taskrc file to defaults?
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
which lists all the currently known settings. If you have just created
|
||||
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.
|
||||
|
||||
.TP
|
||||
.B Q: Can I share my tasks between different machines?
|
||||
Yes, you can. Most people have success with a DropBox - a free and secure file
|
||||
synching tool. Simply configure taskwarrior to store it's data in a dropbox
|
||||
folder, by modifying the:
|
||||
|
||||
data.location=...
|
||||
|
||||
configuration variable. Check out DropBox at http://www.dropbox.com.
|
||||
|
||||
.TP
|
||||
.B Q: I don't like 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
|
||||
a second database.
|
||||
|
||||
Here is a basic example of the procedure:
|
||||
|
||||
$ 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,
|
||||
you should copy all the local .data files to the remote system either by using
|
||||
the push command explicitly or by activating the merge.autopush feature in the
|
||||
~/.taskrc file. This way you ensure that both systems are fully synchronized.
|
||||
|
||||
.TP
|
||||
.B Q: The undo.data file gets very large - do I need it?
|
||||
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.
|
||||
|
||||
.TP
|
||||
.B Q: How do I know whether my terminal support 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
|
||||
|
||||
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.
|
||||
|
||||
See the task-color(5) man page for more details.
|
||||
|
||||
.TP
|
||||
.B Q: How do I make use of all these colors?
|
||||
Use one of our provided color themes, or create your own - after all, they are
|
||||
just collections of color settings.
|
||||
|
||||
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:
|
||||
|
||||
#! /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 $*
|
||||
}
|
||||
|
||||
.TP
|
||||
.B Q: Taskwarrior searches in a case-sensitive fashion - can I change that?
|
||||
You can. Just set the following value in your .taskrc file:
|
||||
|
||||
search.case.sensitive=no
|
||||
|
||||
This will affect searching for keywords:
|
||||
|
||||
$ task list Document
|
||||
|
||||
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/
|
||||
|
||||
The pattern on the left will now be a caseless search term.
|
||||
|
||||
.TP
|
||||
.B Q: Why do the ID numbers change?
|
||||
Taskwarrior does this to always show you the smallest numbers it can. The idea
|
||||
is that if your tasks are numbered 1 - 33, for example, those are easy to type
|
||||
in. If instead task kept a rolling sequence number, after a while your tasks
|
||||
might be numbered 481 - 513, which makes it more likely to enter one
|
||||
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
|
||||
|
||||
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
|
||||
a report is run, which moves the deleted and completed tasks from the
|
||||
pending.data file to the completed.data file. This keeps the pending tasks file
|
||||
small, and therefore keeps taskwarrior fast. The completed data file is the one
|
||||
that grows unbounded with use, but that one isn't accessed as much, so it
|
||||
doesn't matter as much. So in all, the ID number resequencing is about
|
||||
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:
|
||||
|
||||
$ task list priority:H priority:M
|
||||
|
||||
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:
|
||||
|
||||
$ task list priority.not:L priority.any:
|
||||
|
||||
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',
|
||||
because the two logical restrictions are not mutually exclusive as in the
|
||||
original filter.
|
||||
|
||||
Some of you may be familiar with DeMorgan's laws of formal logic that relate
|
||||
the AND and OR operators in terms of each other via negation, which can be used
|
||||
to construct task filters.
|
||||
|
||||
.TP
|
||||
.B Q: How do I delete an annotation?
|
||||
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
|
||||
|
||||
Now to delete the first annotation, use:
|
||||
|
||||
$ 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
|
||||
|
||||
This will remove the second annotation - the first non-exact match.
|
||||
|
||||
.TP
|
||||
.B Q: Why Lua as an extension language?
|
||||
Lua has many positive attributes:
|
||||
|
||||
- Lua is written using tight, fast, standard C
|
||||
- Lua is a breeze to integrate into any product
|
||||
- The Lua source code is beautifully written
|
||||
- Lua is a small language
|
||||
|
||||
Guile, Scheme and Neko were also considered.
|
||||
|
||||
.TP
|
||||
.B Q: How can I help?
|
||||
There are lots of ways. Here are some:
|
||||
|
||||
- Provide feedback on what works, what does not
|
||||
- Tell us how task does or does not fit your workflow
|
||||
- Tell people about task
|
||||
- Report bugs when you see them
|
||||
- Contribute to our Wiki
|
||||
- Suggest features
|
||||
- Write unit tests
|
||||
- Fix bugs
|
||||
|
||||
.SH "CREDITS & COPYRIGHTS"
|
||||
Taskwarrior was written by P. Beckingham <paul@beckingham.net>.
|
||||
.br
|
||||
Copyright (C) 2006 \- 2011 P. Beckingham
|
||||
|
||||
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.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR task(1),
|
||||
.BR taskrc(5),
|
||||
.BR task-tutorial(5),
|
||||
.BR task-color(5),
|
||||
.BR task-sync(5)
|
||||
|
||||
For more information regarding task, 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>
|
||||
361
doc/man/task-sync.5.in
Normal file
361
doc/man/task-sync.5.in
Normal file
@@ -0,0 +1,361 @@
|
||||
.TH task-sync 5 2011-03-03 "${PACKAGE_STRING}" "User Manuals"
|
||||
|
||||
.SH NAME
|
||||
task-sync \- A tutorial for the task(1) data synchronization capabilities.
|
||||
|
||||
.SH DESCRIPTION
|
||||
Taskwarrior has built-in support for synchronization, which can be used to keep
|
||||
two task databases up to date, regardless of which one is used. This capability
|
||||
can also be used to keep a backup copy of your task database on another machine.
|
||||
|
||||
Taskwarrior can use various protocols for transferring the data.
|
||||
|
||||
.SH HOW IT WORKS
|
||||
If you were to manually attempt to keep two separate task databases up to date,
|
||||
you would need to inspect both databases, and detect changes that occurred in
|
||||
each one. Those changes would need to be migrated to the other database, while
|
||||
being careful not to miss a change, and not to confuse an 'add' in one with
|
||||
a 'delete' in the other.
|
||||
|
||||
The synchronization feature does just this. It can transfer task databases,
|
||||
compare tasks, and apply changes where necessary.
|
||||
|
||||
.SH NEW COMMANDS
|
||||
Taskwarrior has 'pull', 'push' and 'merge' commands which perform the steps
|
||||
necessary to move files around and combine them. In the common use case, you
|
||||
would only need to use the 'merge' command. These commands take an argument
|
||||
that is a URI, which indicates where the remote database resides.
|
||||
|
||||
To be clear, the local database always refers to your ~/.task directory (unless
|
||||
overridden), and the remote database is always specified by URI.
|
||||
|
||||
.SH MERGE
|
||||
The merge command will fetch task data via URI and combine it with the local
|
||||
task database. The syntax is:
|
||||
|
||||
.br
|
||||
.RS
|
||||
task merge [<URI>]
|
||||
.RE
|
||||
|
||||
The URI is optional if the
|
||||
.B merge.default.uri
|
||||
configuration variable is set. The URI may point to a different directory, or
|
||||
it may be a different computer. Here is an example of the merge command:
|
||||
|
||||
.br
|
||||
.RS
|
||||
$ task merge ~/work/
|
||||
.RE
|
||||
|
||||
This URI (~/work/) is a path name, which means the remote database is on the
|
||||
same computer. Taskwarrior will fetch the data from the URI, and merge it with
|
||||
your local data in ~/.task.
|
||||
|
||||
When complete, you will be asked whether you would like to push the combined
|
||||
data back to the remote location specified by the URI. This is useful if you
|
||||
are keeping two task databases synchronized, but it can be turned off. See
|
||||
CONFIGURATION.
|
||||
|
||||
Note that a merge operation is not atomically reversible. You could however
|
||||
run the 'task undo' command repeatedly to undo the effects.
|
||||
|
||||
.SH PUSH
|
||||
The push command will copy the local task database to the specified URI. The
|
||||
syntax is:
|
||||
|
||||
.br
|
||||
.RS
|
||||
task push [<URI>]
|
||||
.RE
|
||||
|
||||
The URI is optional if the
|
||||
.B push.default.uri
|
||||
configuration variable is set. This command is useful for making backup copies
|
||||
of your task database.
|
||||
|
||||
Note that the task files at the location specified by the URI are simply
|
||||
overwritten, so don't expect any merging to occur. Misused, push can be
|
||||
dangerous.
|
||||
|
||||
.SH PULL
|
||||
The pull command will copy a task database from a URI to the local task database
|
||||
(~/.task by default). The syntax is:
|
||||
|
||||
.br
|
||||
.RS
|
||||
task pull [<URI>]
|
||||
.RE
|
||||
|
||||
The URI is optional if the
|
||||
.B pull.default.uri
|
||||
configuration variable is set. This command is useful for restoring a backup
|
||||
copy of your task database.
|
||||
|
||||
Note that your local task database files will be simply overwritten by the files
|
||||
obtained from the location specified by the URI, so don't expect any merging to
|
||||
occur. Misused, pull can be dangerous.
|
||||
|
||||
.SH URI TYPES
|
||||
The most basic URI is a path name on the local machine. An example would be:
|
||||
|
||||
.br
|
||||
.RS
|
||||
/home/bob/.task/
|
||||
.RE
|
||||
|
||||
All the other URIs allow access to remote machines. The first uses SSH and scp
|
||||
(either form can be used):
|
||||
|
||||
.br
|
||||
.RS
|
||||
ssh://[user@]host[:port]/path/to/undo.data
|
||||
.br
|
||||
[user@]host:/path/
|
||||
.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
|
||||
.RE
|
||||
|
||||
Curl supports several protocols that can transfer data using HTTP, HTTPS and
|
||||
FTP:
|
||||
|
||||
.br
|
||||
.RS
|
||||
http://host[:port]/path/to/undo.data
|
||||
.br
|
||||
https://host[:port]/path/to/undo.data
|
||||
.br
|
||||
ftp://[user@]host[:port]/path/to/undo.data
|
||||
.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
|
||||
When modifications on the local and remote machine conflict, for example if
|
||||
both machines change the project name of the same task to different values,
|
||||
then Taskwarrior automatically selects the most recent change. Thus, there
|
||||
are no conflicts.
|
||||
|
||||
.SH EXAMPLE - Backup on another machine
|
||||
One very good use of 'push' is to make backup copies of your task database in
|
||||
another location. Suppose your task database is kept in the usual place, in
|
||||
the ~/.task directory, and you wanted to make a backup copy in ~/backup. You
|
||||
would use this command:
|
||||
|
||||
.br
|
||||
.RS
|
||||
$ task push ~/backup/
|
||||
.RE
|
||||
|
||||
This would copy the files in ~/.task to ~/backup, overwriting the files that
|
||||
were already in ~/backup. To backup your files to another machine, you could
|
||||
use:
|
||||
|
||||
.br
|
||||
.RS
|
||||
$ task push user@host:backup
|
||||
.RE
|
||||
|
||||
This could be improved by setting the
|
||||
.B push.default.uri
|
||||
configuration variable and then relying on the default, like this:
|
||||
|
||||
.br
|
||||
.RS
|
||||
$ task config push.default.uri user@host:backup
|
||||
.RE
|
||||
|
||||
and then you need only run the push command:
|
||||
|
||||
.br
|
||||
.RS
|
||||
$ task push
|
||||
.RE
|
||||
|
||||
and the default push URI will be used. If you wanted to restore a backup, you
|
||||
simply use the pull command instead:
|
||||
|
||||
.br
|
||||
.RS
|
||||
$ task pull user@host:backup
|
||||
.RE
|
||||
|
||||
This can be simplified by setting the
|
||||
.B pull.default.uri
|
||||
configuration variable and then relying on the default, like this:
|
||||
|
||||
.br
|
||||
.RS
|
||||
$ task config pull.default.uri user@host:backup
|
||||
.RE
|
||||
|
||||
Note that pull and push will blindly overwrite the task files without any
|
||||
merging. Be careful.
|
||||
|
||||
.SH EXAMPLE - Keeping two task databases synchronized
|
||||
The most common synchronization will be to keep two task databases synchronized
|
||||
on different machines. Here is a full example, including setup that illustrates
|
||||
this.
|
||||
|
||||
Suppose there are two machines, named 'local' and 'remote', for simplicity.
|
||||
Taskwarrior is installed on both machines. The different machines are
|
||||
indicated here by the prompt. Suppose Alice enters two tasks on her local
|
||||
machine:
|
||||
|
||||
.br
|
||||
.RS
|
||||
local> task add Deliver the new budget proposal due:tuesday
|
||||
.br
|
||||
local> task add Set up a meeting with Bob
|
||||
.RE
|
||||
|
||||
Then later adds a task on the remote machine:
|
||||
|
||||
.br
|
||||
.RS
|
||||
remote> task add Present the budget proposal at the big meeting due:thursday
|
||||
.RE
|
||||
|
||||
Now on the local machine, Alice merges the two task databases:
|
||||
|
||||
.br
|
||||
.RS
|
||||
local> task merge alice@remote:.task
|
||||
.br
|
||||
Would you like to push the changes to 'alice@remote:.task'? Y
|
||||
.RE
|
||||
|
||||
Taskwarrior has combined the two task databases on local, then pushed the
|
||||
changes back to remote. Now suppose Alice changes the due date for task 1
|
||||
on remote:
|
||||
|
||||
.br
|
||||
.RS
|
||||
remote> task 1 due:wednesday
|
||||
.RE
|
||||
|
||||
Now on the local machine, Alice sets up a default URI and autopush:
|
||||
|
||||
.br
|
||||
.RS
|
||||
local> task config merge.default.uri alice@remote:.task
|
||||
.br
|
||||
local> task config merge.autopush yes
|
||||
.RE
|
||||
|
||||
Now Alice can simply run merge to make sure that the new due date is copied to
|
||||
the local machine:
|
||||
|
||||
.br
|
||||
.RS
|
||||
local> task merge
|
||||
.RE
|
||||
|
||||
This time the URI is determined automatically, and after the merge the files are
|
||||
pushed back to the remote machine. In a similar way, the remote machine can
|
||||
also be configured to merge from the local machine and push back to it. Then it
|
||||
is just a matter of Alice remembering to merge now and then, from either
|
||||
machine, to have her data in two (or even more) places.
|
||||
|
||||
.SH CONFIGURATION
|
||||
By setting these configuration variables, it is possible to simplify the
|
||||
synchronization commands, by relying on the defaults or alias names.
|
||||
|
||||
.br
|
||||
.B merge.autopush=yes|no|ask
|
||||
.RS
|
||||
This controls whether the automatic push after a merge is performed, not
|
||||
performed, or whether the user is asked every time. The default value is 'ask'.
|
||||
.RE
|
||||
|
||||
.br
|
||||
.B merge.default.uri=<uri>
|
||||
.RS
|
||||
Sets a default URI so that just the 'task merge' command be run without the
|
||||
need to retype the URI every time. You can also use this configuration scheme
|
||||
to set alias names, e.g. set merge.desktop.uri and run 'task merge desktop'.
|
||||
.RE
|
||||
|
||||
.br
|
||||
.B push.default.uri=<uri>
|
||||
.RS
|
||||
Sets a default URI so that just the 'task push' command be run without the
|
||||
need to retype the URI every time. You can also use this configuration scheme
|
||||
to set alias names, e.g. set push.desktop.uri and run 'task push desktop'.
|
||||
.RE
|
||||
|
||||
.br
|
||||
.B pull.default.uri=<uri>
|
||||
.RS
|
||||
Sets a default URI so that just the 'task pull' command be run without the
|
||||
need to retype the URI every time. You can also use this configuration scheme
|
||||
to set alias names, e.g. set pull.desktop.uri and run 'task pull desktop'.
|
||||
.RE
|
||||
|
||||
Note that, when using SSH/scp, hostnames will be expanded due to the ssh
|
||||
configuration file ~/.ssh/config.
|
||||
|
||||
.SH EXTERNAL DEPENDENCIES
|
||||
Depending on the URI protocols used, the utilities 'scp', 'rsync' and 'curl'
|
||||
must be installed and accessible via the $PATH environment variable.
|
||||
|
||||
If you have deleted your ~/.task/undo.data file to save space, you will be
|
||||
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 \- 2011 P. Beckingham, F. Hernandez.
|
||||
|
||||
The sync capabilities were written by J. Schlatow.
|
||||
Parts copyright (C) 2010 - 2011 J. Schlatow.
|
||||
|
||||
task 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 task(1),
|
||||
.BR taskrc(5),
|
||||
.BR task-faq(5),
|
||||
.BR task-color(5),
|
||||
.BR task-tutorial(5),
|
||||
.BR ssh_config(5)
|
||||
|
||||
For more information regarding task, 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 task may be reported to the issue-tracker at
|
||||
<http://taskwarrior.org>
|
||||
@@ -1,407 +0,0 @@
|
||||
.TH task-tutorial 5 2010-05-22 "task 1.9.2" "User Manuals"
|
||||
|
||||
.SH NAME
|
||||
task-tutorial \- A tutorial for the task(1) command line todo manager.
|
||||
|
||||
.SH NOTE
|
||||
Please note that this tutorial was written for task 1.7.0. Though it is still
|
||||
accurate on the general usage of task, it might not longer be 100% correct in
|
||||
all details. A new tutorial for task is planned for task 2.0.0.
|
||||
|
||||
.SH DESCRIPTION
|
||||
Task 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 commands that allow you to do various things with it.
|
||||
|
||||
.SH 30 second tutorial
|
||||
|
||||
For the excessively lazy. Add two tasks:
|
||||
.br
|
||||
.RS
|
||||
$ task add Read task documents later
|
||||
.br
|
||||
$ task add priority:H Pay bills
|
||||
.RE
|
||||
|
||||
Easy. See that second one has a High priority? Now let's look at those tasks:
|
||||
.br
|
||||
.RS
|
||||
$ task ls
|
||||
.br
|
||||
ID Project Pri Description
|
||||
.br
|
||||
2 H Pay bills
|
||||
.br
|
||||
1 Read task documents later
|
||||
.RE
|
||||
|
||||
They are ordered by priority. Let's mark number 2 as done:
|
||||
.br
|
||||
.RS
|
||||
$ task 2 done
|
||||
.br
|
||||
$ task ls
|
||||
.br
|
||||
ID Project Pri Description
|
||||
.br
|
||||
1 Read task documents later
|
||||
.RE
|
||||
|
||||
Gone. Now let's delete that remaining task, because, well, why bother
|
||||
now we are already using task:
|
||||
.br
|
||||
.RS
|
||||
$ task delete 1
|
||||
.br
|
||||
$ task ls
|
||||
.br
|
||||
No matches
|
||||
.RE
|
||||
|
||||
That's how easy managing your task list can be. But now consider learning what
|
||||
task can really do...
|
||||
|
||||
.SH Simple usage of task
|
||||
Let us begin by adding some tasks:
|
||||
.br
|
||||
.RS
|
||||
$ task add Book plane ticket
|
||||
.br
|
||||
$ task add Rent a tux
|
||||
.br
|
||||
$ task add Reserve a rental car
|
||||
.br
|
||||
$ task add Reserve a hotel room
|
||||
.RE
|
||||
|
||||
You'll notice immediately that task has a very minimalist interface. Let us take
|
||||
a look at those tasks:
|
||||
.br
|
||||
.RS
|
||||
$ task ls
|
||||
.br
|
||||
ID Project Pri Description
|
||||
.br
|
||||
1 Book plane ticket
|
||||
.br
|
||||
2 Rent a tux
|
||||
.br
|
||||
3 Reserve a rental car
|
||||
.br
|
||||
4 Send John a birthday card
|
||||
.RE
|
||||
|
||||
The 'ls' command provides the most minimal list of tasks. Each task has
|
||||
been given an id number, and you can see that there are no projects or
|
||||
priorities assigned. Wait a minute - I own a tux, I don't need to rent
|
||||
one. Let us delete task 2:
|
||||
.br
|
||||
.RS
|
||||
$ task 2 delete
|
||||
.br
|
||||
Permanently delete task? (y/n) y
|
||||
.RE
|
||||
|
||||
Task wants you to confirm deletions. To suppress the confirmation, edit
|
||||
your .taskrc file and change the line:
|
||||
.br
|
||||
.RS
|
||||
confirmation=yes
|
||||
.RE
|
||||
.br
|
||||
to have a value of "no". If the entry is not there, then add it.
|
||||
|
||||
While the use of projects and priorities are not essential, they can be very
|
||||
useful when the list of tasks grows large. Let's assign projects to these
|
||||
tasks:
|
||||
.br
|
||||
.RS
|
||||
$ task 1 project:Wedding
|
||||
.br
|
||||
$ task 3 project:Wedding
|
||||
.br
|
||||
$ task 4 project:Family
|
||||
.br
|
||||
$ task ls
|
||||
.br
|
||||
ID Project Pri Description
|
||||
.br
|
||||
3 Family Send John a birthday card
|
||||
.br
|
||||
2 Wedding Reserve a rental car
|
||||
.br
|
||||
1 Wedding Book plane ticket
|
||||
.RE
|
||||
|
||||
Notice that the id numbers have changed. When tasks get deleted, or have
|
||||
their attributes changed (project, for example), the ids are prone to change.
|
||||
But the id numbers will remain valid until the next 'ls' command is run.
|
||||
You should only use the ids from the most recent 'ls' command. The ids change,
|
||||
because task is always trying to use small numbers so that it is easy for you
|
||||
to enter them correctly. Now that projects are assigned, we can look at just
|
||||
the Wedding project tasks:
|
||||
|
||||
Subprojects are supported. If you have a project "Wedding", you can specify
|
||||
that a task is a subproject "Transport" of "Wedding" by assigning the project
|
||||
"Wedding.Transport". Let's do this:
|
||||
.br
|
||||
.RS
|
||||
$ task 2 project:Wedding.Transport
|
||||
.br
|
||||
$ task ls
|
||||
.br
|
||||
ID Project Pri Description
|
||||
.br
|
||||
3 Family Send John a birthday card
|
||||
.br
|
||||
2 Wedding.Transport Reserve a rental car
|
||||
.br
|
||||
1 Wedding Book plane ticket
|
||||
.RE
|
||||
|
||||
Task matches the leftmost part of the project when searching, so projects may be
|
||||
abbreviated:
|
||||
.br
|
||||
.RS
|
||||
$ task ls project:Wedding.Tra
|
||||
.br
|
||||
ID Project Pri Description
|
||||
.br
|
||||
2 Wedding.Transport Reserve a rental car
|
||||
.RE
|
||||
|
||||
This way of matching projects can be used to see all tasks under the "Wedding"
|
||||
project and all subprojects:
|
||||
.br
|
||||
.RS
|
||||
$ task ls project:Wedding
|
||||
.br
|
||||
ID Project Pri Description
|
||||
.br
|
||||
2 Wedding.Transport Reserve a rental car
|
||||
.br
|
||||
1 Wedding Book plane ticket
|
||||
.RE
|
||||
|
||||
Let's reassign 2 back to the "Wedding" project:
|
||||
.br
|
||||
.RS
|
||||
$ task 2 project:Wedding
|
||||
.RE
|
||||
|
||||
Now that projects are assigned, we can look at just the Wedding project tasks:
|
||||
.br
|
||||
.RS
|
||||
$ task ls project:Wedding
|
||||
.br
|
||||
ID Project Pri Description
|
||||
.br
|
||||
1 Wedding Book plane ticket
|
||||
.br
|
||||
2 Wedding Reserve a rental car
|
||||
.RE
|
||||
|
||||
Any command arguments after the 'ls' are used for filtering the output.
|
||||
We could also have requested:
|
||||
.br
|
||||
.RS
|
||||
$ task ls ticket plane
|
||||
.br
|
||||
ID Project Pri Description
|
||||
.br
|
||||
1 Wedding Book plane ticket
|
||||
.RE
|
||||
|
||||
Now let's prioritize. Priorities can be H, M or L (High, Medium, Low).
|
||||
.br
|
||||
.RS
|
||||
$ task ls
|
||||
.br
|
||||
ID Project Pri Description
|
||||
.br
|
||||
3 Family Send John a birthday card
|
||||
.br
|
||||
2 Wedding Reserve a rental car
|
||||
.br
|
||||
1 Wedding Book plane ticket
|
||||
.br
|
||||
$ task 1 priority:H
|
||||
.br
|
||||
$ task 2 prior:M
|
||||
.br
|
||||
$ task 3 pr:H
|
||||
.br
|
||||
Ambiguous attribute 'pr' - could be either of project, priority
|
||||
.br
|
||||
$ task 3 pri:H
|
||||
.br
|
||||
$ task ls
|
||||
.br
|
||||
ID Project Pri Description
|
||||
.br
|
||||
3 Family H Send John a birthday card
|
||||
.br
|
||||
1 Wedding H Book plane ticket
|
||||
.br
|
||||
2 Wedding M Reserve a rental car
|
||||
.RE
|
||||
|
||||
Notice that task supports the abbreviation of words such as priority and
|
||||
project. Priority can be abbreviated to pri, but not pr, because it is
|
||||
ambiguous. Now that tasks have been prioritized, you can see that the tasks are
|
||||
being sorted by priority, with the highest priority tasks at the top.
|
||||
|
||||
These attributes can all be provided when the task is added, instead of applying
|
||||
them afterwards, as shown. The following command shows how to set all the
|
||||
attributes at once:
|
||||
.br
|
||||
.RS
|
||||
$ task add project:Wedding priority:H Book plane ticket
|
||||
.RE
|
||||
|
||||
The sequence of those arguments is not important, so you could have entered the
|
||||
following command instead:
|
||||
.br
|
||||
.RS
|
||||
$ task project:Wedding add Book plane priority:H ticket
|
||||
.RE
|
||||
|
||||
This is because task knows what attributes look like (name:value), knows what
|
||||
commands it supports (add, ...), and just assumes the rest is part of the
|
||||
description. Incidentally, if you wanted 'priority:H' to be part of your task
|
||||
description, you need to fool task into ignoring it as an attribute. That can
|
||||
be done in two ways:
|
||||
.br
|
||||
.RS
|
||||
$ task add "quoting makes task consider priority:H part of one big argument"
|
||||
$ task add -- the hyphens make task treat everything after it as description
|
||||
.RE
|
||||
|
||||
The 'ls' command provides the least information for each task. The 'list'
|
||||
command provides more:
|
||||
.br
|
||||
.RS
|
||||
$ task list
|
||||
.br
|
||||
ID Project Pri Due Active Age Description
|
||||
.br
|
||||
3 Family H 4 mins Send John a birthday card
|
||||
.br
|
||||
1 Wedding H 5 mins Book plane ticket
|
||||
.br
|
||||
2 Wedding M 5 mins Reserve a rental car
|
||||
.RE
|
||||
|
||||
Notice that a task can have a due date, and can be active. The task lists are
|
||||
sorted by due date, then priority. Let's add due dates:
|
||||
.br
|
||||
.RS
|
||||
$ task 3 due:6/25/2008
|
||||
.br
|
||||
$ task 1 due:7/31/2008
|
||||
.br
|
||||
$ task list
|
||||
.br
|
||||
ID Project Pri Due Active Age Description
|
||||
.br
|
||||
3 Family H 6/25/2008 6 mins Send John a birthday card
|
||||
.br
|
||||
1 Wedding H 7/31/2008 7 mins Book plane ticket
|
||||
.br
|
||||
2 Wedding M 7 mins Reserve a rental car
|
||||
.RE
|
||||
|
||||
Note that due tasks may be colored to highlight the importance. See the
|
||||
task-color(5) man page for full details.
|
||||
|
||||
Tagging tasks is a good way to group them, aside from specifying a project.
|
||||
To add a tag to a task:
|
||||
.br
|
||||
.RS
|
||||
$ task <id> +tag
|
||||
.RE
|
||||
|
||||
The plus sign indicates that this is a tag. Any number of tags may be applied to a
|
||||
task, and then used for searching. Tags are just single words that are labels.
|
||||
.br
|
||||
.RS
|
||||
$ task list
|
||||
.br
|
||||
ID Project Pri Due Active Age Description
|
||||
.br
|
||||
3 Family H 6/25/2008 8 mins Send John a birthday card
|
||||
.br
|
||||
1 Wedding H 7/31/2008 9 mins Book plane ticket
|
||||
.br
|
||||
2 Wedding M 9 mins Reserve a rental car
|
||||
.br
|
||||
$ task 1 +phone
|
||||
.br
|
||||
$ task 2 +phone
|
||||
.br
|
||||
$ task 3 +shopping
|
||||
.br
|
||||
$ task 3 +john
|
||||
.br
|
||||
$ task list +phone
|
||||
.br
|
||||
ID Project Pri Due Active Age Description
|
||||
.br
|
||||
1 Wedding H 7/31/2008 9 mins Book plane ticket
|
||||
.br
|
||||
2 Wedding M 9 mins Reserve a rental car
|
||||
.RE
|
||||
|
||||
To remove a tag from a task, use the minus sign:
|
||||
.br
|
||||
.RS
|
||||
$ task 3 \-john
|
||||
.RE
|
||||
|
||||
To add a task that you have already completed, use the log command:
|
||||
.br
|
||||
.RS
|
||||
$ task log Notify postal service
|
||||
.RE
|
||||
|
||||
This is equivalent to first adding a new task, then marking that new task
|
||||
as done. It is simple a shortcut.
|
||||
|
||||
.SH Advanced usage of task
|
||||
Advanced examples of the usage of task can be found at the official site at
|
||||
<http://taskwarrior.org>
|
||||
|
||||
.SH "CREDITS & COPYRIGHTS"
|
||||
task was written by P. Beckingham <paul@beckingham.net>.
|
||||
.br
|
||||
Copyright (C) 2006 \- 2010 P. Beckingham
|
||||
|
||||
This man page was originally written by Federico Hernandez.
|
||||
|
||||
task 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 task(1),
|
||||
.BR taskrc(5),
|
||||
.BR task-faq(5)
|
||||
.BR task-color(5)
|
||||
|
||||
For more information regarding task, 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 task may be reported to the issue-tracker at
|
||||
<http://taskwarrior.org>
|
||||
3512
doc/man/task-tutorial.5.in
Normal file
3512
doc/man/task-tutorial.5.in
Normal file
File diff suppressed because it is too large
Load Diff
547
doc/man/task.1
547
doc/man/task.1
@@ -1,547 +0,0 @@
|
||||
.TH task 1 2010-05-22 "task 1.9.2" "User Manuals"
|
||||
|
||||
.SH NAME
|
||||
task \- A command line todo manager.
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B task [subcommand] [args]
|
||||
|
||||
.SH DESCRIPTION
|
||||
Task 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, task is a list processing program. You add text and additional
|
||||
related parameters and task redisplays 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. Task 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, task 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.
|
||||
|
||||
.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 CSV format. This command is an alias to the export.csv command.
|
||||
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 color [sample]
|
||||
Displays all possible colors, or a sample.
|
||||
|
||||
.TP
|
||||
.B version
|
||||
Shows the task version number
|
||||
|
||||
.TP
|
||||
.B help
|
||||
Shows the long usage text.
|
||||
|
||||
.TP
|
||||
.B show [all | substring]"
|
||||
Shows all the current settings in the task 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 task 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 task. 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 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
|
||||
|
||||
.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 contain)
|
||||
.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
|
||||
Task 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 task 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
|
||||
|
||||
.TP
|
||||
End of week (Friday), month and year
|
||||
task ... due:eow
|
||||
.br
|
||||
task ... due:eom
|
||||
.br
|
||||
task ... due:eoy
|
||||
|
||||
.TP
|
||||
Next occurring weekday
|
||||
task ... due:fri
|
||||
.RE
|
||||
|
||||
.SS FREQUENCIES
|
||||
Recurrence periods. Task 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 task 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 task to treat all other args
|
||||
as description:
|
||||
|
||||
.RS
|
||||
$ task add -- project:Home needs scheduling
|
||||
.RE
|
||||
|
||||
.SH CONFIGURATION FILE AND OVERRIDE OPTIONS
|
||||
Task 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"
|
||||
task 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.
|
||||
|
||||
task 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)
|
||||
|
||||
For more information regarding task, 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 task may be reported to the issue-tracker at
|
||||
<http://taskwarrior.org>
|
||||
788
doc/man/task.1.in
Normal file
788
doc/man/task.1.in
Normal file
@@ -0,0 +1,788 @@
|
||||
.TH task 1 2011-03-03 "${PACKAGE_STRING}" "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. Obeys the confirmation setting.
|
||||
|
||||
.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 burndown.daily
|
||||
Shows a graphical burndown chart, by day.
|
||||
|
||||
.TP
|
||||
.B burndown.weekly
|
||||
Shows a graphical burndown chart, by week.
|
||||
|
||||
.TP
|
||||
.B burndown.monthly
|
||||
Shows a graphical burndown chart, by month.
|
||||
|
||||
.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 in a variety of formats, from file or URL.
|
||||
|
||||
.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 count [filter]
|
||||
Displays only a count of tasks matching the filter.
|
||||
|
||||
.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.
|
||||
|
||||
If either 'from' or 'to' contain spaces, you will need to put quotes around
|
||||
the whole thing.
|
||||
|
||||
.TP
|
||||
.B ID /from/to/g
|
||||
Performs all substitutions on task description and annotation for fixing
|
||||
mistakes.
|
||||
|
||||
If either 'from' or 'to' contain spaces, you will need to put quotes around
|
||||
the whole thing.
|
||||
|
||||
.TP
|
||||
.B edit ID
|
||||
Launches an editor to let you modify all aspects of a task directly.
|
||||
In general, this is not the recommended method of modifying tasks, but is
|
||||
provided for exceptional circumstances. 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 [filter]
|
||||
Shows all tasks matching the filter that are started but not completed.
|
||||
|
||||
.TP
|
||||
.B all [filter]
|
||||
Shows all tasks matching the filter, including parents of recurring tasks.
|
||||
|
||||
.TP
|
||||
.B completed [filter]
|
||||
Shows all tasks matching the filter that are completed.
|
||||
|
||||
.TP
|
||||
.B minimal [filter]
|
||||
Provides a minimal listing of tasks matching the filter.
|
||||
|
||||
.TP
|
||||
.B ls [filter]
|
||||
Provides a short listing of tasks matching the filter.
|
||||
|
||||
.TP
|
||||
.B list [filter]
|
||||
Provides a more detailed listing of tasks matching the filter.
|
||||
|
||||
.TP
|
||||
.B long [filter]
|
||||
Provides the most detailed listing of tasks with filter.
|
||||
|
||||
.TP
|
||||
.B newest [filter]
|
||||
Shows the newest tasks with filter.
|
||||
|
||||
.TP
|
||||
.B oldest [filter]
|
||||
Shows the oldest tasks with filter
|
||||
|
||||
.TP
|
||||
.B overdue [filter]
|
||||
Shows all incomplete tasks matching the filter
|
||||
that are beyond their due date.
|
||||
|
||||
.TP
|
||||
.B recurring [filter]
|
||||
Shows all recurring tasks matching the filter.
|
||||
|
||||
.TP
|
||||
.B waiting [filter]
|
||||
Shows all waiting tasks matching the filter.
|
||||
|
||||
.TP
|
||||
.B blocked [filter]
|
||||
Shows all blocked tasks, that are dependent on other tasks, matching the filter.
|
||||
|
||||
.TP
|
||||
.B unblocked [filter]
|
||||
Shows all tasks that are not blocked by dependencies, matching the filter.
|
||||
|
||||
.TP
|
||||
.B next [filter]
|
||||
Shows all tasks with upcoming due dates matching the filter.
|
||||
|
||||
.SH FILTERS
|
||||
|
||||
A filter is a set of search criteria that the report applies before displaying
|
||||
the results. For example, to list all tasks belonging to the 'Home' project:
|
||||
|
||||
task list project:Home
|
||||
|
||||
You can specify multiple filters, each of which further restrict the results:
|
||||
|
||||
task list project:Home +weekend garden
|
||||
|
||||
This example applies three filters: the 'Home' project, the 'weekend' tag, and
|
||||
the description or annotations must contain the characters 'garden'. In this
|
||||
example, 'garden' is translated internally to:
|
||||
|
||||
description.contains:garden
|
||||
|
||||
as a convenient shortcut. The 'contains' here is an attribute modifier, which
|
||||
is used to exert more control over the filter than simply absence or presence.
|
||||
See 'ATTRIBUTE MODIFIERS' for a complete list of modifiers.
|
||||
|
||||
.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.
|
||||
|
||||
.TP
|
||||
.B wait:<wait-date>
|
||||
Date until task becomes pending.
|
||||
|
||||
.TP
|
||||
.B depends:<id1,id2 ...>
|
||||
Declares this task to be dependent on id1 and id2. This means that the tasks
|
||||
id1 and id2 should be completed before this task. Consequently, this task will
|
||||
then show up on the 'blocked' report.
|
||||
|
||||
.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
|
||||
|
||||
The
|
||||
.I before
|
||||
modifier is used to compare values, preserving semantics, so project.before:B
|
||||
list all projects that begin with 'A'. Priority 'L' is before 'M', and
|
||||
due:2011-01-01 is before due:2011-01-02. The synonyms 'under' and 'below' are
|
||||
included to allow filters that read more naturally.
|
||||
|
||||
The
|
||||
.I after
|
||||
modifier is the inverse of the
|
||||
.I before
|
||||
modifier.
|
||||
|
||||
The
|
||||
.I none
|
||||
modifier requires that the attribute does not have a value. For example:
|
||||
|
||||
task list priority:
|
||||
task list priority.none:
|
||||
|
||||
are equivalent, and list tasks that do not have a priority.
|
||||
|
||||
The
|
||||
.I any
|
||||
modifier requires that the attribute has a value, but any value will suffice.
|
||||
|
||||
The
|
||||
.I is
|
||||
modifier requires an exact match with the value.
|
||||
|
||||
The
|
||||
.I isnt
|
||||
modifier is the inverse of the
|
||||
.I is
|
||||
modifier.
|
||||
|
||||
The
|
||||
.I has
|
||||
modifier is used to search for a substring, such as:
|
||||
|
||||
task list description.has:foo
|
||||
task list foo
|
||||
|
||||
which are equivalent and will return any task that has 'foo' in the description
|
||||
or annotations.
|
||||
|
||||
The
|
||||
.I hasnt
|
||||
modifier is the inverse of the
|
||||
.I has
|
||||
modifier.
|
||||
|
||||
The
|
||||
.I startswith
|
||||
modifier matches against the left, or beginning of an attribute, such that:
|
||||
|
||||
task list project.startswith:H
|
||||
task list project:H
|
||||
|
||||
are equivalent and will match any project starting with 'H'.
|
||||
|
||||
The
|
||||
.I endswith
|
||||
modifier matches against the right, or end of an attribute.
|
||||
|
||||
The
|
||||
.I word
|
||||
modifier requires that the attribute contain the whole word specified, such
|
||||
that this:
|
||||
|
||||
task list description.word:bar
|
||||
|
||||
will match the description 'foo bar baz' but does not match 'dog food'.
|
||||
|
||||
The
|
||||
.I noword
|
||||
modifier is the inverse of the
|
||||
.I word
|
||||
modifier.
|
||||
|
||||
.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
|
||||
At some point or later
|
||||
.br
|
||||
task ... wait:later
|
||||
.br
|
||||
task ... wait:someday
|
||||
|
||||
This sets the wait date to 1/18/2038.
|
||||
|
||||
.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,
|
||||
for example:
|
||||
|
||||
.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
|
||||
|
||||
In other situations, the shell sees spaces and breaks up arguments. For
|
||||
example, this command:
|
||||
|
||||
.RS
|
||||
$ task 123 /from this/to that/
|
||||
.RE
|
||||
|
||||
is broken up into several arguments, which is corrected with quotes:
|
||||
|
||||
.RS
|
||||
$ task 123 "/from this/to that/"
|
||||
.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 \- 2011 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>
|
||||
@@ -1,4 +1,4 @@
|
||||
.TH taskrc 5 2010-05-22 "task 1.9.2" "User Manuals"
|
||||
.TH taskrc 5 2011-03-03 "${PACKAGE_STRING}" "User Manuals"
|
||||
|
||||
.SH NAME
|
||||
taskrc \- Configuration file for the task(1) command
|
||||
@@ -9,7 +9,7 @@ taskrc \- Configuration file for the task(1) command
|
||||
.B task rc:<directory-path>/.taskrc
|
||||
|
||||
.SH DESCRIPTION
|
||||
.B task
|
||||
.B taskwarrior
|
||||
obtains its configuration data from a file called
|
||||
.I .taskrc
|
||||
\&. This file is normally located in the user's home directory:
|
||||
@@ -27,7 +27,7 @@ $ task rc:<directory-path>/.taskrc
|
||||
.RE
|
||||
|
||||
Individual option can be overridden by using the
|
||||
.I rc.<name>:
|
||||
.I rc.<name>:
|
||||
attribute when running task:
|
||||
|
||||
.RS
|
||||
@@ -35,14 +35,14 @@ $ task rc.<name>:<value> ...
|
||||
.RE
|
||||
|
||||
If
|
||||
.B task
|
||||
.B taskwarrior
|
||||
is run without an existing configuration file it will ask if it should create a
|
||||
default, sample
|
||||
.I .taskrc
|
||||
file in the user's home directory.
|
||||
|
||||
The task 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>
|
||||
@@ -66,9 +66,9 @@ 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 task is flexible about the values used to represent Boolean items.
|
||||
You can use "on", "yes", "y", "1", "true", "t", "+", "enabled". Anything else
|
||||
means "off".
|
||||
Note that taskwarrior is flexible about the values used to represent Boolean
|
||||
items. You can use "on", "yes", "y", "1", "true", "t", "+", "enabled".
|
||||
Anything else means "off".
|
||||
|
||||
.SH EDITING
|
||||
You can edit your .taskrc file by hand if you wish, or you can use the 'config'
|
||||
@@ -84,14 +84,14 @@ To delete an entry, use this command:
|
||||
$ task config nag
|
||||
.RE
|
||||
|
||||
Task will then use the default value. To explicitly set a value to blank, and
|
||||
therefore avoid using the default value, use this command:
|
||||
Taskwarrior will then use the default value. To explicitly set a value to
|
||||
blank, and therefore avoid using the default value, use this command:
|
||||
|
||||
.RS
|
||||
$ task config nag ""
|
||||
.RE
|
||||
|
||||
Task will also display all your settings with this command:
|
||||
Taskwarrior will also display all your settings with this command:
|
||||
|
||||
.RS
|
||||
$ task config
|
||||
@@ -109,7 +109,8 @@ statement:
|
||||
include <path/to/the/configuration/file/to/be/included>
|
||||
.RE
|
||||
|
||||
By using include files you can divide your main configuration file into several ones containing just the relevant configuration data like colors, etc.
|
||||
By using include files you can divide your main configuration file into several
|
||||
ones containing just the relevant configuration data like colors, etc.
|
||||
|
||||
There are two excellent uses of includes in your .taskrc, shown here:
|
||||
|
||||
@@ -119,8 +120,8 @@ include /usr/local/share/doc/task/rc/holidays-US.rc
|
||||
include /usr/local/share/doc/task/rc/dark-16.theme
|
||||
.RE
|
||||
|
||||
This includes two standard files that are distributed with task, which define a
|
||||
set of US holidays, and set up a 16-color theme for task to use, to color the
|
||||
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 CONFIGURATION VARIABLES
|
||||
@@ -130,8 +131,8 @@ Valid variable names and their default values are:
|
||||
|
||||
.TP
|
||||
.B data.location=$HOME/.task
|
||||
This is a path to the directory containing all the task files. By default, it is
|
||||
set up to be ~/.task, for example: /home/paul/.task
|
||||
This is a path to the directory containing all the taskwarrior files. By
|
||||
default, it is set up to be ~/.task, for example: /home/paul/.task
|
||||
|
||||
Note that you can use the
|
||||
.B ~
|
||||
@@ -139,47 +140,69 @@ shell meta character, which will be properly expanded.
|
||||
|
||||
.TP
|
||||
.B locking=on
|
||||
Determines whether task uses file locking when accessing the pending.data and
|
||||
completed.data files. Defaults to "on". Solaris users who store the task data
|
||||
Determines whether to use file locking when accessing the pending.data and
|
||||
completed.data files. Defaults to "on". Solaris users who store the data
|
||||
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.
|
||||
|
||||
.SS TERMINAL
|
||||
.TP
|
||||
.B curses=on
|
||||
Determines whether task uses ncurses to establish the size of the window you are
|
||||
Determines whether to use ncurses 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.
|
||||
If set to 0, is interpreted as infinite width, therefore with no word-wrapping;
|
||||
useful when redirecting report output to a file for subsequent manipulation.
|
||||
|
||||
.TP
|
||||
.B editor=vi
|
||||
Specifies which text editor you wish to use for when the
|
||||
.B task edit <ID>
|
||||
command is used. Task will first look for this configuration variable. If found,
|
||||
it is used. Otherwise task will look for the $VISUAL or $EDITOR environment
|
||||
variables, before it defaults to using "vi".
|
||||
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.
|
||||
|
||||
.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, task will assume en-US. If specified, task 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.
|
||||
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.
|
||||
|
||||
.TP
|
||||
.B verbose=yes
|
||||
Controls some of the verbosity of taskwarrior.
|
||||
|
||||
.TP
|
||||
.B confirmation=yes
|
||||
May be "yes" or "no", and determines whether task will ask for confirmation
|
||||
before deleting a task or doing bulk changes. The default value is "yes".
|
||||
May be "yes" or "no", and determines whether taskwarrior will ask for
|
||||
confirmation before deleting a task, performing bulk changes, or the undo
|
||||
command. The default value is "yes". Consider leaving this setting as "no",
|
||||
for safety.
|
||||
|
||||
.TP
|
||||
.B echo.command=yes
|
||||
May be "yes" or "no", and causes task to display the ID and description of any
|
||||
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".
|
||||
|
||||
@@ -247,10 +270,17 @@ names you have used, or just the ones used in active tasks. The default value i
|
||||
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.
|
||||
|
||||
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 _forcecolor=no
|
||||
Task shuts off color automatically when the output is not sent directly to a
|
||||
a TTY. For example, this command:
|
||||
Taskwarrior shuts off color automatically when the output is not sent directly
|
||||
to a TTY. For example, this command:
|
||||
|
||||
.RS
|
||||
.RS
|
||||
@@ -266,7 +296,8 @@ $ task rc._forcecolor=yes list > file
|
||||
|
||||
.TP
|
||||
.B blanklines=yes
|
||||
Turning this value off causes task to generate a more vertically compact output.
|
||||
Turning this value off causes taskwarrior to generate a more vertically compact
|
||||
output.
|
||||
|
||||
.TP
|
||||
.B shell.prompt=task>
|
||||
@@ -294,24 +325,35 @@ and one for a week from tomorrow.
|
||||
|
||||
.TP
|
||||
.B undo.style=side
|
||||
When the 'undo' command is run, task presents a before and after 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.
|
||||
When the 'undo' command is run, taskwarrior presents a before and after
|
||||
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 debug=off
|
||||
Task has a debug mode that causes diagnostic output to be displayed. Typically
|
||||
this is not something anyone would want, but when reporting a bug, debug output
|
||||
can be useful. It can also help explain how the command line is being parsed,
|
||||
but the information is displayed in a developer-friendly, not a user-friendly
|
||||
way.
|
||||
Taskwarrior has a debug mode that causes diagnostic output to be displayed.
|
||||
Typically this is not something anyone would want, but when reporting a bug,
|
||||
debug output can be useful. It can also help explain how the command line is
|
||||
being parsed, but the information is displayed in a developer-friendly, not a
|
||||
user-friendly way.
|
||||
|
||||
.TP
|
||||
.B alias.rm=delete
|
||||
Task supports command aliases. This alias provides an alternate name (rm) for
|
||||
the delete command. You can use aliases to provide alternate names for any of
|
||||
task's commands. Several commands you may use are actually aliases - 'history',
|
||||
for example, or 'export'.
|
||||
Taskwarrior supports command aliases. This alias provides an alternate name
|
||||
(rm) for the delete command. You can use aliases to provide alternate names for
|
||||
any of the commands. Several commands you may use are actually aliases -
|
||||
the 'history' report, for example, or 'export'.
|
||||
|
||||
.SS DATES
|
||||
|
||||
@@ -325,10 +367,10 @@ for example, or 'export'.
|
||||
.B dateformat.annotation=m/d/Y
|
||||
.TP
|
||||
.B report.X.dateformat=m/d/Y
|
||||
This is a string of characters that define how task formats date values. The
|
||||
precedence order for the configuration variable is report.X.dateformat then
|
||||
reportdateformat then dateformat. While report.X.dateformat only formats the
|
||||
due date in reports, reportdateformat formats the due date both in reports
|
||||
This is a string of characters that define 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
|
||||
are formatted according to dateformat.
|
||||
@@ -384,7 +426,7 @@ M-D-Y would use for input and output 07-24-2009
|
||||
.RE
|
||||
|
||||
.RS
|
||||
Examples for other values of reportdateformat:
|
||||
Examples for other values of dateformat.report:
|
||||
.RE
|
||||
|
||||
.RS
|
||||
@@ -394,7 +436,13 @@ 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"
|
||||
.br
|
||||
vV a Y-M-D would do an output as "v30 Fri 2009-07.24"
|
||||
vV a Y-M-D would do an output as "v30 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 and output as "Mon 24 Jan 2011 11:19:42"
|
||||
.RE
|
||||
.RE
|
||||
|
||||
@@ -428,6 +476,16 @@ is "sparse".
|
||||
The report to run when displaying the details of tasks with due date 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
|
||||
@@ -436,8 +494,30 @@ 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 Holidays
|
||||
.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:
|
||||
|
||||
.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
|
||||
.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.
|
||||
|
||||
.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:
|
||||
@@ -461,7 +541,9 @@ variable.
|
||||
.RE
|
||||
|
||||
.RS
|
||||
The following holidays are computed automatically: Good Friday (goodfriday), Easter (easter), Easter monday (eastermonday), Ascension (ascension), Pentecost (pentecost). The date for these holidays is the given keyword:
|
||||
The following holidays are computed automatically: Good Friday (goodfriday),
|
||||
Easter (easter), Easter monday (eastermonday), Ascension (ascension), Pentecost
|
||||
(pentecost). The date for these holidays is the given keyword:
|
||||
.RE
|
||||
|
||||
.RS
|
||||
@@ -473,8 +555,8 @@ holiday.eastersunday.date=easter
|
||||
.RE
|
||||
.RE
|
||||
|
||||
Note that the task distribution contains example holiday files that can be
|
||||
included like this:
|
||||
Note that the taskwarrior distribution contains example holiday files that can
|
||||
be included like this:
|
||||
|
||||
.RS
|
||||
.RS
|
||||
@@ -487,14 +569,24 @@ include /usr/local/share/doc/task/rc/holidays-US.rc
|
||||
.B monthsperline=3
|
||||
Determines how many months the "task calendar" command renders across the
|
||||
screen. Defaults to however many will fit. If more months than will fit are
|
||||
specified, task will only show as many that will fit.
|
||||
specified, taskwarrior will only show as many that will fit.
|
||||
|
||||
.SS DEPENDENCIES
|
||||
|
||||
.TP
|
||||
.B dependency.reminder=on
|
||||
Determines whether dependency chain violations generate reminders.
|
||||
|
||||
.TP
|
||||
.B dependency.confirm=yes
|
||||
Determines whether dependency chain repair requires confirmation.
|
||||
|
||||
.SS COLOR CONTROLS
|
||||
|
||||
.TP
|
||||
.B color=on
|
||||
May be "on" or "off". Determines whether task uses color. When "off", task will
|
||||
use dashes (-----) to underline column headings.
|
||||
May be "on" or "off". Determines whether taskwarrior uses color. When "off",
|
||||
will use dashes (-----) to underline column headings.
|
||||
|
||||
.TP
|
||||
.B fontunderline=on
|
||||
@@ -502,7 +594,7 @@ Determines if font underlines or ASCII dashes should be used to underline
|
||||
headers, even when color is enabled.
|
||||
.RE
|
||||
|
||||
Task has a number of coloration rules. They correspond to a particular
|
||||
Taskwarrior has a number of coloration rules. They correspond to a particular
|
||||
attribute of a task, such as it being due, or being active, and specifies the
|
||||
automatic coloring of that task. A list of valid colors, depending on your
|
||||
terminal, can be obtained by running the command:
|
||||
@@ -512,39 +604,50 @@ terminal, can be obtained by running the command:
|
||||
.RE
|
||||
|
||||
.RS
|
||||
The coloration rules and their defaults are:
|
||||
Note that no default values are listed here - the defaults now correspond to the
|
||||
dark-256.theme (Linux) and dark-16.theme (other) theme values.
|
||||
The coloration rules are as follows:
|
||||
.RE
|
||||
|
||||
.RS
|
||||
.B color.overdue=bold red
|
||||
The color for overdue tasks.
|
||||
.B color.due.today
|
||||
Task is due today
|
||||
.br
|
||||
.B color.due.today=bold magenta
|
||||
The color of tasks due today.
|
||||
.B color.active
|
||||
Task is started, therefore active.
|
||||
.br
|
||||
.B color.due=bold yellow
|
||||
The color of due tasks.
|
||||
.B color.blocked
|
||||
Task is blocked by a dependency.
|
||||
.br
|
||||
.B color.pri.H=bold
|
||||
The color of priority:H tasks.
|
||||
.B color.overdue
|
||||
Task is overdue (due some time prior to now).
|
||||
.br
|
||||
.B color.pri.M=on yellow
|
||||
The color of priority:M tasks. No default value.
|
||||
.B color.due
|
||||
Task is coming due.
|
||||
.br
|
||||
.B color.pri.L=on green
|
||||
The color of priority:L tasks. No default value.
|
||||
.B color.project.none
|
||||
Task does not have an assigned project.
|
||||
.br
|
||||
.B color.pri.none=white on blue
|
||||
The color of priority: tasks. No default value.
|
||||
.B color.tag.none
|
||||
Task has no tags.
|
||||
.br
|
||||
.B color.active=bold cyan
|
||||
The color of active tasks.
|
||||
.B color.tagged
|
||||
Task has at least one tag.
|
||||
.br
|
||||
.B color.tagged=yellow
|
||||
The color of tagged tasks.
|
||||
.B color.recurring
|
||||
Task is recurring.
|
||||
.br
|
||||
.B color.recurring=on red
|
||||
The color for recurring tasks.
|
||||
.B color.pri.H
|
||||
Task has priority H.
|
||||
.br
|
||||
.B color.pri.M
|
||||
Task has priority M.
|
||||
.br
|
||||
.B color.pri.L
|
||||
Task has priority L.
|
||||
.br
|
||||
.B color.pri.none
|
||||
Task has no priority.
|
||||
.RE
|
||||
.RE
|
||||
|
||||
@@ -655,6 +758,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
|
||||
@@ -665,17 +781,38 @@ Colors used by the undo command, to indicate the values both before and after
|
||||
a change that is to be reverted.
|
||||
.RE
|
||||
|
||||
.TP
|
||||
.B color.sync.added=green
|
||||
.RE
|
||||
.br
|
||||
.B color.sync.changed=yellow
|
||||
.RE
|
||||
.br
|
||||
.B color.sync.rejected=red
|
||||
.RS
|
||||
Colors the output of the merge command.
|
||||
.RE
|
||||
|
||||
.TP
|
||||
.B rule.precedence.color=overdue,tag,project,keyword,active,...
|
||||
.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.
|
||||
.RE
|
||||
|
||||
.SS SHADOW FILE
|
||||
|
||||
.TP
|
||||
.B
|
||||
shadow.file=$HOME/.task/shadow.txt
|
||||
If specified, designates a file path that will be automatically written to by
|
||||
task, whenever the task database changes. In other words, it is automatically
|
||||
kept up to date. The shadow.command configuration variable is used to determine
|
||||
which report is written to the shadow file. There is no color used in the
|
||||
shadow file. This feature can be useful in maintaining a current file for use by
|
||||
programs like GeekTool, Conky or Samurize.
|
||||
taskwarrior, whenever the task database changes. In other words, it is
|
||||
automatically kept up to date. The shadow.command configuration variable is
|
||||
used to determine which report is written to the shadow file. There is no color
|
||||
used in the shadow file. This feature can be useful in maintaining a current
|
||||
file for use by programs like GeekTool, Conky or Samurize.
|
||||
|
||||
.TP
|
||||
.B
|
||||
@@ -689,8 +826,8 @@ configuration variable. The format is identical to that of
|
||||
.TP
|
||||
.B
|
||||
shadow.notify=on
|
||||
When this value is set to "on", task will display a message whenever the shadow
|
||||
file is updated by some task command.
|
||||
When this value is set to "on", taskwarrior will display a message whenever the
|
||||
shadow file is updated by some task command.
|
||||
|
||||
.SS DEFAULTS
|
||||
|
||||
@@ -708,10 +845,17 @@ Provides a default priority for the
|
||||
.I task add
|
||||
command, if you don't specify one. The default is blank.
|
||||
|
||||
.TP
|
||||
.B
|
||||
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=list
|
||||
Provides a default command that is run every time task is invoked with no
|
||||
Provides a default command that is run every time taskwarrior is invoked with no
|
||||
arguments. For example, if set to:
|
||||
|
||||
.RS
|
||||
@@ -721,8 +865,8 @@ default.command=list project:foo
|
||||
.RE
|
||||
|
||||
.RS
|
||||
then task will run the "list project:foo" command if no command is specified.
|
||||
This means that by merely typing
|
||||
then taskwarrior will run the "list project:foo" command if no command is
|
||||
specified. This means that by merely typing
|
||||
.RE
|
||||
|
||||
.RS
|
||||
@@ -756,9 +900,9 @@ 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, entry, start, due, recur, recur_indicator, age,
|
||||
age_compact, active, tags, tag_indicator, description, description_only,
|
||||
countdown, countdown_compact.
|
||||
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.
|
||||
|
||||
.TP
|
||||
@@ -770,7 +914,10 @@ labels are a comma separated list.
|
||||
.B report.X.sort
|
||||
The sort order of the tasks in the generated report X. The sort order is
|
||||
specified by using the column ids post-fixed by a "+" for ascending sort order
|
||||
or a "-" for descending sort order. The sort IDs are separated by commas
|
||||
or a "-" for descending sort order. The sort IDs are separated by commas.
|
||||
For example:
|
||||
|
||||
report.list.sort=due+,priority-,active-,project+
|
||||
|
||||
.TP
|
||||
.B report.X.filter
|
||||
@@ -780,7 +927,7 @@ criteria are displayed in the generated report.
|
||||
.TP
|
||||
.B report.X.dateformat
|
||||
This adds a dateformat to the report X that will be used by the "due date"
|
||||
column. If it is not set then reportdateformat and dateformat will be used in
|
||||
column. If it is not set then dateformat.report and dateformat will be used in
|
||||
this order. See the
|
||||
.B DATES
|
||||
section for details on the sequence placeholders.
|
||||
@@ -798,8 +945,8 @@ An optional value to a report limiting the number of displayed tasks in the
|
||||
generated report.
|
||||
|
||||
.TP
|
||||
Task comes with a number of predefined reports in its default configuration
|
||||
file. These reports are:
|
||||
Taskwarrior comes with a number of predefined reports in its default
|
||||
configuration file. These reports are:
|
||||
|
||||
.TP
|
||||
.B long
|
||||
@@ -854,22 +1001,23 @@ Lists all tasks matching the specified criteria.
|
||||
Lists all tasks with upcoming due dates matching the specified criteria.
|
||||
|
||||
.SH "CREDITS & COPYRIGHTS"
|
||||
task was written by P. Beckingham <paul@beckingham.net>.
|
||||
Taskwarrior was written by P. Beckingham <paul@beckingham.net>.
|
||||
.br
|
||||
Copyright (C) 2006 \- 2010 P. Beckingham
|
||||
Copyright (C) 2006 \- 2011 P. Beckingham
|
||||
|
||||
This man page was originally written by Federico Hernandez.
|
||||
|
||||
task is distributed under the GNU General Public License. See
|
||||
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 task(1),
|
||||
.BR task-tutorial(5),
|
||||
.BR task-faq(5)
|
||||
.BR task-color(5)
|
||||
.BR task-faq(5),
|
||||
.BR task-color(5),
|
||||
.BR task-sync(5)
|
||||
|
||||
For more information regarding task, the following may be referenced:
|
||||
For more information regarding taskwarrior, the following may be referenced:
|
||||
|
||||
.TP
|
||||
The official site at
|
||||
@@ -885,5 +1033,5 @@ You can contact the project by writing an email to
|
||||
|
||||
.SH REPORTING BUGS
|
||||
.TP
|
||||
Bugs in task may be reported to the issue-tracker at
|
||||
Bugs in taskwarrior may be reported to the issue-tracker at
|
||||
<http://taskwarrior.org>
|
||||
@@ -1,40 +1,241 @@
|
||||
# This document defines the BNF grammar that will be supported in Taskwarrior
|
||||
# 2.1.
|
||||
|
||||
# This is a full BNF grammar for the task command line. It is intended that a
|
||||
# future release of task 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> ;
|
||||
# Commands (alphabetically)
|
||||
|
||||
simple_command ::= "version" | "help" | "projects" | "tags" | "next" | "stats"
|
||||
| "color" ;
|
||||
command_add ::= "add" ws+ task-elements ;
|
||||
|
||||
filter_command ::= "summary" | "history" | "calendar" | "active" | "overdue"
|
||||
| "oldest" | "newest" | "add" | "list" | "long" | "ls"
|
||||
| "completed" ;
|
||||
command_annotate ::= "annotate" ws+ range ws+ words ;
|
||||
|
||||
id_command ::= "delete" | "undelete" | "info" | "start" | "end" | "done"
|
||||
| "undo" ;
|
||||
command_append ::= "append" ws+ range ws+ words ;
|
||||
|
||||
filter ::= filter_part+ ;
|
||||
command_burndown ::= "burndown.monthly" ws+ filter
|
||||
| "burndown.weekly" ws+ filter
|
||||
| "burndown.daily" ws+ filter
|
||||
| "burndown.monthly"
|
||||
| "burndown.weekly"
|
||||
| "burndown.daily"
|
||||
;
|
||||
|
||||
filter_part ::= tag_add | tag_remove | attribute | word ;
|
||||
command_calendar ::= "calendar" ws+ "due" ws+ filter
|
||||
| "calendar" ws+ "due"
|
||||
| "calendar" ws+ "y" ws+ filter
|
||||
| "calendar" ws+ "y"
|
||||
| "calendar" ws+ year ws+ filter
|
||||
| "calendar" ws+ year
|
||||
| "calendar" ws+ year ws+ month ws+ filter
|
||||
| "calendar" ws+ year ws+ month
|
||||
| "calendar" ws+ month-name ws+ filter
|
||||
| "calendar" ws+ month-name
|
||||
| "calendar" ws+ filter
|
||||
| "calendar"
|
||||
;
|
||||
|
||||
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"? ;
|
||||
command_colors ::= "colors" ws+ "legend"
|
||||
| "colors" ws+ "sample"
|
||||
| "colors"
|
||||
;
|
||||
|
||||
command_config ::= "config" ws+ word ws+ words
|
||||
| "config" ws+ word
|
||||
;
|
||||
|
||||
command_count ::= "count" ws+ filter
|
||||
| "count"
|
||||
;
|
||||
|
||||
# TODO en-passant
|
||||
command_delete ::= "delete" ws+ range ;
|
||||
|
||||
command_denotate ::= "denotate" ws+ range ws+ pattern ;
|
||||
|
||||
command_diagnostics ::= "diagnostics" ;
|
||||
|
||||
# TODO en-passant
|
||||
command_done ::= "done" ws+ range ;
|
||||
|
||||
# TODO en-passant
|
||||
command_duplicate ::= "duplicate" ws+ range ;
|
||||
|
||||
command_edit ::= "edit" ws+ range ;
|
||||
|
||||
command_ghistory ::= "ghistory.annual" ws+ filter
|
||||
| "ghistory.monthly" ws+ filter
|
||||
| "ghistory.weekly" ws+ filter
|
||||
| "ghistory.daily" ws+ filter
|
||||
| "ghistory.annual"
|
||||
| "ghistory.monthly"
|
||||
| "ghistory.weekly"
|
||||
| "ghistory.daily"
|
||||
;
|
||||
|
||||
command_help ::= "help" ;
|
||||
|
||||
command_history ::= "history.annual" ws+ filter
|
||||
| "history.monthly" ws+ filter
|
||||
| "history.weekly" ws+ filter
|
||||
| "history.daily" ws+ filter
|
||||
| "history.annual"
|
||||
| "history.monthly"
|
||||
| "history.weekly"
|
||||
| "history.daily"
|
||||
;
|
||||
|
||||
command_import ::= "import" ws+ file
|
||||
| "import" ws+ "-"
|
||||
;
|
||||
|
||||
command_info ::= "info" ws+ range
|
||||
;
|
||||
|
||||
command_log ::= "log" ws+ task-elements ;
|
||||
|
||||
command_merge ::= "merge" ws+ url ;
|
||||
|
||||
command_prepend ::= "prepend" ws+ range ws+ words ;
|
||||
|
||||
command_projects ::= "projects" ws+ filter
|
||||
| "projects"
|
||||
;
|
||||
|
||||
command_pull ::= "pull" ws+ url ;
|
||||
|
||||
command_push ::= "push" ws+ url ;
|
||||
|
||||
command_shell ::= "shell" ;
|
||||
|
||||
command_show ::= "show" ws+ pattern
|
||||
| "show"
|
||||
;
|
||||
|
||||
command_start ::= "start" ws+ range
|
||||
| "start"
|
||||
;
|
||||
|
||||
command_stats ::= "statistics" ws+ filter
|
||||
| "statistics"
|
||||
;
|
||||
|
||||
command_stop ::= "stop" ws+ range
|
||||
| "stop"
|
||||
;
|
||||
|
||||
command_summary ::= "summary" ws+ filter
|
||||
| "summary"
|
||||
;
|
||||
|
||||
command_tags ::= "tags" ;
|
||||
|
||||
command_timesheet ::= "timesheet" ws+ digit
|
||||
| "timesheet"
|
||||
;
|
||||
|
||||
command_undo ::= "undo" ;
|
||||
|
||||
command_version ::= "version" ;
|
||||
|
||||
# command_report ::= report ws+ filter ;
|
||||
|
||||
|
||||
# Helper Commands (alphabetically)
|
||||
|
||||
helper_query ::= "query" ws+ filter
|
||||
| "query"
|
||||
;
|
||||
|
||||
|
||||
# Primitives
|
||||
range ::= ;
|
||||
id-equivalent ::= uuid | id ;
|
||||
id ::= digit+ ;
|
||||
uuid ::= ;
|
||||
attribute ::= ;
|
||||
modifier ::= ;
|
||||
|
||||
task-elements ::= task-element+ ;
|
||||
|
||||
task-element ::= attribute ws+
|
||||
| tag ws+
|
||||
| word ws+
|
||||
;
|
||||
|
||||
filter ::= filter-elements+ ;
|
||||
|
||||
filter-elements ::= range
|
||||
| pattern
|
||||
| filter-attribute ;
|
||||
|
||||
filter-attribute ::= field modifier? ":" value? ;
|
||||
|
||||
modifier ::= ".above"
|
||||
| ".after"
|
||||
| ".any"
|
||||
| ".before"
|
||||
| ".below"
|
||||
| ".contains"
|
||||
| ".endswith"
|
||||
| ".equals"
|
||||
| ".has"
|
||||
| ".hasnt"
|
||||
| ".is"
|
||||
| ".isnt"
|
||||
| ".left"
|
||||
| ".none"
|
||||
| ".not"
|
||||
| ".noword"
|
||||
| ".over"
|
||||
| ".right"
|
||||
| ".startswith"
|
||||
| ".under"
|
||||
| ".word"
|
||||
;
|
||||
|
||||
value ::= ;
|
||||
|
||||
year ::= digit digit digit digit ;
|
||||
|
||||
month ::= "1" | "2" | "3" | "4" | "5" | "6"
|
||||
| "7" | "8" | "9" | "10" | "11" | "12"
|
||||
;
|
||||
|
||||
# TODO Case-insensitive
|
||||
month-name ::= "january"
|
||||
| "february"
|
||||
| "march"
|
||||
| "april"
|
||||
| "may"
|
||||
| "june"
|
||||
| "july"
|
||||
| "august"
|
||||
| "september"
|
||||
| "october"
|
||||
| "november"
|
||||
| "december"
|
||||
;
|
||||
|
||||
filter-attribute ::= field "." modifier ":" value
|
||||
| field "." modifier ":"
|
||||
| field ":" value
|
||||
| field ":"
|
||||
;
|
||||
|
||||
tag ::= "+" word
|
||||
| "-" word ;
|
||||
|
||||
substitution ::= "/" pattern "/" words "/" "g"? ;
|
||||
|
||||
pattern ::= ;
|
||||
url ::= ;
|
||||
file ::= ;
|
||||
words ::= ;
|
||||
word ::= ;
|
||||
|
||||
|
||||
# Fundamentals
|
||||
|
||||
digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
|
||||
ws ::= " " | "\t" ;
|
||||
|
||||
# End
|
||||
|
||||
|
||||
533
doc/misc/run.193
Executable file
533
doc/misc/run.193
Executable 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
|
||||
|
||||
16
doc/misc/run.sample.annotate
Executable file
16
doc/misc/run.sample.annotate
Executable file
@@ -0,0 +1,16 @@
|
||||
#! /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
|
||||
|
||||
exit
|
||||
|
||||
16
doc/misc/run.sample.attmod
Executable file
16
doc/misc/run.sample.attmod
Executable file
@@ -0,0 +1,16 @@
|
||||
#! /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
|
||||
|
||||
exit
|
||||
|
||||
74
doc/misc/run.sample.blue
Executable file
74
doc/misc/run.sample.blue
Executable file
@@ -0,0 +1,74 @@
|
||||
#! /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
|
||||
|
||||
71
doc/misc/run.sample.cal
Executable file
71
doc/misc/run.sample.cal
Executable file
@@ -0,0 +1,71 @@
|
||||
#! /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
|
||||
|
||||
19
doc/misc/run.sample.color
Executable file
19
doc/misc/run.sample.color
Executable file
@@ -0,0 +1,19 @@
|
||||
#! /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
|
||||
|
||||
38
doc/misc/run.sample.deps
Executable file
38
doc/misc/run.sample.deps
Executable file
@@ -0,0 +1,38 @@
|
||||
#! /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
|
||||
|
||||
50
doc/misc/run.sample.format
Executable file
50
doc/misc/run.sample.format
Executable file
@@ -0,0 +1,50 @@
|
||||
#! /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
|
||||
|
||||
16
doc/misc/run.sample.ghistory
Executable file
16
doc/misc/run.sample.ghistory
Executable file
@@ -0,0 +1,16 @@
|
||||
#! /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
|
||||
|
||||
exit
|
||||
|
||||
47
doc/misc/run.sample.holidays
Executable file
47
doc/misc/run.sample.holidays
Executable file
@@ -0,0 +1,47 @@
|
||||
#! /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
|
||||
|
||||
39
doc/misc/run.sample.info
Executable file
39
doc/misc/run.sample.info
Executable file
@@ -0,0 +1,39 @@
|
||||
#! /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
|
||||
|
||||
42
doc/misc/run.sample.journal
Executable file
42
doc/misc/run.sample.journal
Executable file
@@ -0,0 +1,42 @@
|
||||
#! /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
|
||||
|
||||
35
doc/misc/run.sample.recur
Executable file
35
doc/misc/run.sample.recur
Executable file
@@ -0,0 +1,35 @@
|
||||
#! /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
|
||||
|
||||
74
doc/misc/run.sample.red
Executable file
74
doc/misc/run.sample.red
Executable file
@@ -0,0 +1,74 @@
|
||||
#! /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
|
||||
|
||||
16
doc/misc/run.sample.summary
Executable file
16
doc/misc/run.sample.summary
Executable file
@@ -0,0 +1,16 @@
|
||||
#! /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
|
||||
|
||||
exit
|
||||
|
||||
63
doc/misc/run.sample.timesheet
Executable file
63
doc/misc/run.sample.timesheet
Executable file
@@ -0,0 +1,63 @@
|
||||
#! /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
|
||||
|
||||
534
doc/misc/script-193.txt
Normal file
534
doc/misc/script-193.txt
Normal file
@@ -0,0 +1,534 @@
|
||||
[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 -------------------------------------------------------
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Hello. This is a demonstration of the
|
||||
task program color capabilities coming
|
||||
taskwarrior color capabilities coming
|
||||
in version 1.9.
|
||||
|
||||
task color The color command shows the various
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
$ # Q: What is a formatting hook?
|
||||
$ # A: Lua code that modifies task output at run time.
|
||||
$ # A: Lua code that modifies taskwarrior output at run time.
|
||||
$
|
||||
$ cat > hooks.lua
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
$
|
||||
$ # Task now has Lua 5.1.4 built in.
|
||||
$ # Taskwarrior now has Lua 5.1.4 built in.
|
||||
$
|
||||
$ task version
|
||||
$ cat > hooks.lua
|
||||
@@ -9,18 +9,18 @@ function foo ()
|
||||
end
|
||||
^D
|
||||
$
|
||||
$ # Task can call into Lua at many points during execution.
|
||||
$ # This one is called immediately before task quits.
|
||||
$ # 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 task is calling Lua code, the Lua can also call
|
||||
$ # back into a task API, for information.
|
||||
$ # 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 "Task version is " .. task_version ())
|
||||
print "Taskwarrior version is " .. task_version ())
|
||||
return 0, nil
|
||||
end
|
||||
^D
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
Hello, and welcome to this quick demo of the task program.
|
||||
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
|
||||
@@ -68,7 +69,6 @@ task 3 fg:
|
||||
|
||||
task colors There are many combinations to choose from
|
||||
|
||||
(Slashes!!!)
|
||||
task 1 due:6/8/2008 Let's add a due date
|
||||
date
|
||||
|
||||
|
||||
@@ -1,17 +1,52 @@
|
||||
# Sample task 1.9 (or later) dark 16-color theme
|
||||
################################################################################
|
||||
# Sample taskwarrior 1.9 (or later) dark 16-color theme
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
color=on
|
||||
color.header=yellow
|
||||
color.footnote=yellow
|
||||
color.debug=yellow
|
||||
|
||||
color.summary.bar=on green
|
||||
color.summary.background=on black
|
||||
color.summary.bar=black on green
|
||||
color.summary.background=white on black
|
||||
|
||||
color.history.add=black on red
|
||||
color.history.done=black on green
|
||||
color.history.delete=black on yellow
|
||||
|
||||
color.burndown.pending=on red
|
||||
color.burndown.started=on yellow
|
||||
color.burndown.done=on green
|
||||
|
||||
color.sync.added=green
|
||||
color.sync.changed=yellow
|
||||
color.sync.rejected=red
|
||||
|
||||
color.undo.before=red
|
||||
color.undo.after=green
|
||||
|
||||
@@ -33,5 +68,8 @@ color.pri.H=bold white
|
||||
color.pri.M=white
|
||||
color.pri.L=
|
||||
color.tagged=green
|
||||
color.blocked=black on white
|
||||
color.project.none=
|
||||
color.tag.none=
|
||||
color.alternate=
|
||||
|
||||
|
||||
@@ -1,17 +1,52 @@
|
||||
# Sample task 1.9 (or later) dark 256-color theme
|
||||
###############################################################################
|
||||
# Sample taskwarrior 1.9 (or later) dark 256-color theme
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
color=on
|
||||
color.header=color3
|
||||
color.footnote=color3
|
||||
color.debug=color3
|
||||
|
||||
color.summary.bar=on rgb141
|
||||
color.summary.background=on color0
|
||||
color.summary.bar=black on rgb141
|
||||
color.summary.background=white on color0
|
||||
|
||||
color.history.add=color0 on rgb500
|
||||
color.history.done=color0 on rgb050
|
||||
color.history.delete=color0 on rgb550
|
||||
|
||||
color.burndown.pending=on color9
|
||||
color.burndown.started=on color11
|
||||
color.burndown.done=on rgb010
|
||||
|
||||
color.sync.added=rgb010
|
||||
color.sync.changed=color11
|
||||
color.sync.rejected=color9
|
||||
|
||||
color.undo.before=color1
|
||||
color.undo.after=color2
|
||||
|
||||
@@ -33,5 +68,8 @@ color.pri.H=color255
|
||||
color.pri.M=color250
|
||||
color.pri.L=color245
|
||||
color.tagged=rgb031
|
||||
color.blocked=white on color8
|
||||
color.project.none=
|
||||
color.tag.none=
|
||||
color.alternate=on color233
|
||||
|
||||
|
||||
@@ -1,17 +1,52 @@
|
||||
# Sample task 1.9 (or later) dark 256-color theme, featuring blue.
|
||||
###############################################################################
|
||||
# Sample taskwarrior 1.9 (or later) dark 256-color theme, featuring blue.
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
color=on
|
||||
color.header=rgb013
|
||||
color.footnote=rgb013
|
||||
color.debug=rgb013
|
||||
|
||||
color.summary.bar=on rgb003
|
||||
color.summary.background=on color0
|
||||
color.summary.bar=white on rgb003
|
||||
color.summary.background=white on color0
|
||||
|
||||
color.history.add=color0 on rgb015
|
||||
color.history.done=color0 on rgb025
|
||||
color.history.delete=color0 on rgb035
|
||||
|
||||
color.burndown.pending=on rgb004
|
||||
color.burndown.started=on rgb015
|
||||
color.burndown.done=on gray4
|
||||
|
||||
color.sync.added=gray4
|
||||
color.sync.changed=rgb015
|
||||
color.sync.rejected=rgb004
|
||||
|
||||
color.undo.before=rgb013
|
||||
color.undo.after=rgb035
|
||||
|
||||
@@ -33,5 +68,8 @@ color.pri.H=rgb035
|
||||
color.pri.M=rgb025
|
||||
color.pri.L=rgb015
|
||||
color.tagged=color246
|
||||
color.blocked=white on rgb001
|
||||
color.project.none=
|
||||
color.tag.none=
|
||||
color.alternate=on color233
|
||||
|
||||
|
||||
75
doc/rc/dark-gray-256.theme
Normal file
75
doc/rc/dark-gray-256.theme
Normal file
@@ -0,0 +1,75 @@
|
||||
###############################################################################
|
||||
# Sample taskwarrior 1.9 (or later) dark gray 256-color theme
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2011, Paul Beckingham, Federico Hernandez.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
color=on
|
||||
color.header=color8
|
||||
color.footnote=color8
|
||||
color.debug=color8
|
||||
|
||||
color.summary.bar=black on gray12
|
||||
color.summary.background=white on gray3
|
||||
|
||||
color.history.add=color0 on gray6
|
||||
color.history.done=color0 on gray15
|
||||
color.history.delete=color0 on gray10
|
||||
|
||||
color.burndown.pending=on gray6
|
||||
color.burndown.started=on gray15
|
||||
color.burndown.done=on gray10
|
||||
|
||||
color.sync.added=gray10
|
||||
color.sync.changed=gray15
|
||||
color.sync.rejected=gray6
|
||||
|
||||
color.undo.before=gray6
|
||||
color.undo.after=gray15
|
||||
|
||||
color.calendar.today=color8 on color15
|
||||
color.calendar.due=color7 on color8
|
||||
color.calendar.due.today=color15 on color8
|
||||
color.calendar.overdue=underline color0 on color7
|
||||
color.calendar.weekend=on color235
|
||||
color.calendar.holiday=color7 on color15
|
||||
color.calendar.weeknumber=gray4
|
||||
|
||||
color.recurring=gray8
|
||||
color.overdue=color0 on color15
|
||||
color.due.today=underline color0 on color7
|
||||
color.due=color7
|
||||
color.active=color7 on color8
|
||||
color.pri.none=
|
||||
color.pri.H=color15
|
||||
color.pri.M=color7
|
||||
color.pri.L=color8
|
||||
color.tagged=gray12
|
||||
color.blocked=color15 on color8
|
||||
color.project.none=
|
||||
color.tag.none=
|
||||
color.alternate=on gray2
|
||||
|
||||
@@ -1,17 +1,52 @@
|
||||
# Sample task 1.9 (or later) dark 256-color theme, featuring green.
|
||||
###############################################################################
|
||||
# Sample taskwarrior 1.9 (or later) dark 256-color theme, featuring green.
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
color=on
|
||||
color.header=rgb031
|
||||
color.footnote=rgb031
|
||||
color.debug=rgb031
|
||||
|
||||
color.summary.bar=on rgb030
|
||||
color.summary.background=on color0
|
||||
color.summary.bar=white on rgb030
|
||||
color.summary.background=white on color0
|
||||
|
||||
color.history.add=color0 on rgb010
|
||||
color.history.done=color0 on rgb030
|
||||
color.history.delete=color0 on rgb050
|
||||
|
||||
color.burndown.pending=on rgb010
|
||||
color.burndown.started=on rgb030
|
||||
color.burndown.done=on gray4
|
||||
|
||||
color.sync.added=gray4
|
||||
color.sync.changed=rgb030
|
||||
color.sync.rejected=rgb010
|
||||
|
||||
color.undo.before=rgb031
|
||||
color.undo.after=rgb053
|
||||
|
||||
@@ -33,5 +68,8 @@ color.pri.H=rgb050
|
||||
color.pri.M=rgb030
|
||||
color.pri.L=rgb010
|
||||
color.tagged=color246
|
||||
color.blocked=white on rgb010
|
||||
color.project.none=
|
||||
color.tag.none=
|
||||
color.alternate=on color233
|
||||
|
||||
|
||||
@@ -1,17 +1,52 @@
|
||||
# Sample task 1.9 (or later) dark 256-color theme, featuring red.
|
||||
###############################################################################
|
||||
# Sample taskwarrior 1.9 (or later) dark 256-color theme, featuring red.
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
color=on
|
||||
color.header=rgb100
|
||||
color.footnote=rgb100
|
||||
color.debug=rgb100
|
||||
|
||||
color.summary.bar=on rgb300
|
||||
color.summary.background=on color0
|
||||
color.summary.bar=white on rgb300
|
||||
color.summary.background=white on color0
|
||||
|
||||
color.history.add=color0 on rgb100
|
||||
color.history.done=color0 on rgb300
|
||||
color.history.delete=color0 on rgb500
|
||||
|
||||
color.burndown.pending=on rgb200
|
||||
color.burndown.started=on rgb411
|
||||
color.burndown.done=on gray4
|
||||
|
||||
color.sync.added=gray4
|
||||
color.sync.changed=rgb411
|
||||
color.sync.rejected=rgb200
|
||||
|
||||
color.undo.before=rgb301
|
||||
color.undo.after=rgb503
|
||||
|
||||
@@ -33,5 +68,8 @@ color.pri.H=rgb500
|
||||
color.pri.M=rgb400
|
||||
color.pri.L=rgb300
|
||||
color.tagged=color246
|
||||
color.blocked=white on rgb100
|
||||
color.project.none=
|
||||
color.tag.none=
|
||||
color.alternate=on color233
|
||||
|
||||
|
||||
75
doc/rc/dark-violets-256.theme
Normal file
75
doc/rc/dark-violets-256.theme
Normal file
@@ -0,0 +1,75 @@
|
||||
################################################################################
|
||||
# Sample taskwarrior 1.9 (or later) dark violet 256-color theme
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2010 - 2011, Kathryn Andersen
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
color=on
|
||||
color.header=rgb013
|
||||
color.footnote=rgb013
|
||||
color.debug=rgb013
|
||||
|
||||
color.summary.bar=white on rgb103
|
||||
color.summary.background=white on color0
|
||||
|
||||
color.history.add=color0 on rgb105
|
||||
color.history.done=color0 on rgb205
|
||||
color.history.delete=color0 on rgb305
|
||||
|
||||
color.burndown.pending=on rgb103
|
||||
color.burndown.started=on rgb214
|
||||
color.burndown.done=on gray4
|
||||
|
||||
color.sync.added=gray4
|
||||
color.sync.changed=rgb214
|
||||
color.sync.rejected=rgb103
|
||||
|
||||
color.undo.before=rgb103
|
||||
color.undo.after=rgb305
|
||||
|
||||
color.calendar.today=color15 on rgb103
|
||||
color.calendar.due=color0 on rgb325
|
||||
color.calendar.due.today=color0 on rgb404
|
||||
color.calendar.overdue=color0 on color9
|
||||
color.calendar.weekend=gray12 on gray3
|
||||
color.calendar.holiday=color15 on rgb022
|
||||
color.calendar.weeknumber=rgb104
|
||||
|
||||
color.recurring=rgb115
|
||||
color.overdue=color9
|
||||
color.due.today=rgb533
|
||||
color.due=rgb055
|
||||
color.active=rgb445 on rgb213
|
||||
color.pri.none=
|
||||
color.pri.H=rgb404
|
||||
color.pri.M=rgb304
|
||||
color.pri.L=rgb325
|
||||
color.tagged=rgb334
|
||||
color.blocked=white on rgb101
|
||||
color.project.none=
|
||||
color.tag.none=
|
||||
color.alternate=on gray2
|
||||
|
||||
75
doc/rc/dark-yellow-green.theme
Normal file
75
doc/rc/dark-yellow-green.theme
Normal file
@@ -0,0 +1,75 @@
|
||||
################################################################################
|
||||
# Sample taskwarrior 1.9 (or later) dark-yellow-green 256-color theme
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2010 - 2011, Kathryn Andersen
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
color=on
|
||||
color.header=rgb031
|
||||
color.footnote=rgb031
|
||||
color.debug=rgb031
|
||||
|
||||
color.summary.bar=white on rgb030
|
||||
color.summary.background=white on color0
|
||||
|
||||
color.history.add=color0 on rgb010
|
||||
color.history.done=color0 on rgb030
|
||||
color.history.delete=color0 on rgb050
|
||||
|
||||
color.burndown.pending=on rgb110
|
||||
color.burndown.started=on rgb430
|
||||
color.burndown.done=on gray4
|
||||
|
||||
color.sync.added=gray4
|
||||
color.sync.changed=rgb430
|
||||
color.sync.rejected=rgb110
|
||||
|
||||
color.undo.before=rgb031
|
||||
color.undo.after=rgb053
|
||||
|
||||
color.calendar.today=color15 on rgb110
|
||||
color.calendar.due=color0 on rgb430
|
||||
color.calendar.due.today=color0 on rgb410
|
||||
color.calendar.overdue=color0 on rgb400
|
||||
color.calendar.weekend=on color235
|
||||
color.calendar.holiday=rgb151 on rgb020
|
||||
color.calendar.weeknumber=rgb110
|
||||
|
||||
color.recurring=rgb343
|
||||
color.overdue=rgb400
|
||||
color.due.today=rgb410
|
||||
color.due=rgb420
|
||||
color.active=rgb451 on rgb310
|
||||
color.pri.none=
|
||||
color.pri.H=rgb450
|
||||
color.pri.M=rgb030
|
||||
color.pri.L=rgb010
|
||||
color.tagged=rgb342
|
||||
color.blocked=white on rgb110
|
||||
color.project.none=
|
||||
color.tag.none=
|
||||
color.alternate=on gray0
|
||||
|
||||
78
doc/rc/holidays-AT.rc
Normal file
78
doc/rc/holidays-AT.rc
Normal file
@@ -0,0 +1,78 @@
|
||||
################################################################################
|
||||
# Sample calendar for Austria
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2011, Andreas Poisel
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
calendar.holidays=sparse
|
||||
|
||||
# 2011
|
||||
holiday.neujahr.name=Neujahr
|
||||
holiday.neujahr.date=20110101
|
||||
holiday.heiligedreikonige.name=Heilige drei Könige
|
||||
holiday.heiligedreikonige.date=20110106
|
||||
holiday.josef.name=Josef (K, St, T, V)
|
||||
holiday.josef.date=20110319
|
||||
holiday.karfreitag.name=Karfreitag
|
||||
holiday.karfreitag.date=20110422
|
||||
holiday.ostersonntag.name=Ostersonntag
|
||||
holiday.ostersonntag.date=20110424
|
||||
holiday.ostermontag.name=Ostermontag
|
||||
holiday.ostermontag.date=20110425
|
||||
holiday.staatsfeiertag.name=Staatsfeiertag
|
||||
holiday.staatsfeiertag.date=20110501
|
||||
holiday.florian.name=Florian (OÃ)
|
||||
holiday.florian.date=20110504
|
||||
holiday.christihimmelfahrt.name=Christi Himmelfahrt
|
||||
holiday.christihimmelfahrt.date=20110602
|
||||
holiday.pfingstsonntag.name=Pfingstsonntag
|
||||
holiday.pfingstsonntag.date=20110612
|
||||
holiday.pfingstmontag.name=Pfingstmontag
|
||||
holiday.pfingstmontag.date=20110613
|
||||
holiday.fronleichnam.name=Fronleichnam
|
||||
holiday.fronleichnam.date=20110623
|
||||
holiday.mariahimmelfahrt.name=MariÀ Himmelfahrt
|
||||
holiday.mariahimmelfahrt.date=20110815
|
||||
holiday.rupert.name=Rupert (S)
|
||||
holiday.rupert.date=20110924
|
||||
holiday.kvolksabst.name=Tag der Volksabstimmung (K)
|
||||
holiday.kvolksabst.date=20111010
|
||||
holiday.allerheiligen.name=Allerheiligen
|
||||
holiday.allerheiligen.date=20111101
|
||||
holiday.martin.name=Martin (B)
|
||||
holiday.martin.date=20111111
|
||||
holiday.leopold.name=Leopold (W, NÃ)
|
||||
holiday.leopold.date=20111115
|
||||
holiday.mariaempfaengnis.name=MariÀ EmpfÀngnis
|
||||
holiday.mariaempfaengnis.date=20111208
|
||||
holiday.heiligerabend.name=Heiliger Abend
|
||||
holiday.heiligerabend.date=20111224
|
||||
holiday.christtag.name=Christtag
|
||||
holiday.christtag.date=20111225
|
||||
holiday.stefanitag.name=Stefanitag
|
||||
holiday.stefanitag.date=20111226
|
||||
holiday.silvester.name=Silvester
|
||||
holiday.silvester.date=20111231
|
||||
59
doc/rc/holidays-CA.rc
Normal file
59
doc/rc/holidays-CA.rc
Normal file
@@ -0,0 +1,59 @@
|
||||
################################################################################
|
||||
# Sample calendar for Canada
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2010 - 2011, Cory Donnelly.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
calendar.holidays=sparse
|
||||
|
||||
# 2011
|
||||
holiday.newyearsday.name=New Year's Day
|
||||
holiday.newyearsday.date=20110101
|
||||
holiday.familyday.name=Family Day
|
||||
holiday.familyday.date=20110117
|
||||
holiday.goodfriday.name=Good Friday
|
||||
holiday.goodfriday.date=20110422
|
||||
holiday.eastermonday.name=Easter Monday
|
||||
holiday.eastermonday.date=20110425
|
||||
holiday.victoriaday.name=Victoria Day
|
||||
holiday.victoriaday.date=20110524
|
||||
holiday.canadaday.name=Canada Day
|
||||
holiday.canadaday.date=20110701
|
||||
holiday.firstmondayofaugust.name=First Monday of August
|
||||
holiday.firstmondayofaugust.date=20110801
|
||||
holiday.labourday.name=Labour Day
|
||||
holiday.labourday.date=20110905
|
||||
holiday.thanksgiving.name=Thanksgiving Day
|
||||
holiday.thanksgiving.date=20111010
|
||||
holiday.remembranceday.name=Remembrance Day
|
||||
holiday.remembranceday.date=20111111
|
||||
holiday.christmasday.name=Christmas Day
|
||||
holiday.christmasday.date=20111225
|
||||
holiday.boxingday.name=Boxing Day
|
||||
holiday.boxingday.date=20111226
|
||||
holiday.newyearseve.name=New Year's Eve
|
||||
holiday.newyearseve.date=20111231
|
||||
|
||||
70
doc/rc/holidays-DE.rc
Normal file
70
doc/rc/holidays-DE.rc
Normal file
@@ -0,0 +1,70 @@
|
||||
################################################################################
|
||||
# Sample calendar for Germany
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2010 - 2011, Federico Hernandez.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
calendar.holidays=sparse
|
||||
|
||||
# 2011
|
||||
holiday.neujahr.name=Neujahr
|
||||
holiday.neujahr.date=20110101
|
||||
holiday.heiligedreikonige.name=Heilige drei Könige (BW,BY,ST)
|
||||
holiday.heiligedreikonige.date=20110106
|
||||
holiday.karfreitag.name=Karfreitag
|
||||
holiday.karfreitag.date=20110422
|
||||
holiday.ostern.name=Ostern
|
||||
holiday.ostern.date=20110424
|
||||
holiday.ostermontag.name=Ostermontag
|
||||
holiday.ostermontag.date=20110425
|
||||
holiday.maifeiertag.name=Erster Maifeiertag
|
||||
holiday.maifeiertag.date=20110501
|
||||
holiday.christihimmelfahrt.name=Christi Himmelfahrt
|
||||
holiday.christihimmelfahrt.date=20110602
|
||||
holiday.pfingstsonntag.name=Pfingstsonntag
|
||||
holiday.pfingstsonntag.date=20110612
|
||||
holiday.pfingstmontag.name=Pfingstmontag
|
||||
holiday.pfingstmontag.date=20110613
|
||||
holiday.fronleichnam.name=Fronleichnam (BW,BY,HE,NRW,RP,SL,(SN,TH))
|
||||
holiday.fronleichnam.date=20110623
|
||||
holiday.mariahimmelfahrt.name=Mariä Himmelfahrt (SL)
|
||||
holiday.mariahimmelfahrt.date=20110815
|
||||
holiday.einheit.name=Tag der Deutschen Einheit
|
||||
holiday.einheit.date=20111003
|
||||
holiday.reformationstag.name=Reformationstag (BB,MV,SN,ST,TH)
|
||||
holiday.reformationstag.date=20111031
|
||||
holiday.allerheiligen.name=Allerheiligen (BW,BY,NRW,RP,SL)
|
||||
holiday.allerheiligen.date=20111101
|
||||
holiday.bussundbettag.name=Buss und Bettag (SN)
|
||||
holiday.bussundbettag.date=20111116
|
||||
holiday.heiligabend.name=Heilig Abend
|
||||
holiday.heiligabend.date=20111224
|
||||
holiday.weihnachtstag.name=Weihnachtstag
|
||||
holiday.weihnachtstag.date=20111225
|
||||
holiday.zweiterweihnachtstag.name=Zweiter Weihnachtstag
|
||||
holiday.zweiterweihnachtstag.date=20111226
|
||||
holiday.sylvester.name=Sylvester
|
||||
holiday.sylvester.date=20111231
|
||||
82
doc/rc/holidays-DK.rc
Normal file
82
doc/rc/holidays-DK.rc
Normal file
@@ -0,0 +1,82 @@
|
||||
################################################################################
|
||||
# Sample calendar for Denmark
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2010 - 2011, Irfan Siddiqui.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
calendar.holidays=sparse
|
||||
|
||||
# 2011
|
||||
holiday.nytårsdag.name=Nytårsdag
|
||||
holiday.nytårsdag.date=20110101
|
||||
holiday.palmesøndag.name=Palmesøndag
|
||||
holiday.palmesøndag.date=20110417
|
||||
holiday.skærtorsdag.name=Skærtorsdag
|
||||
holiday.skærtorsdag.date=20110421
|
||||
holiday.langfredag.name=Langfredag
|
||||
holiday.langfredag.date=20110422
|
||||
holiday.påskedag.name=Påskedag
|
||||
holiday.påskedag.date=20110424
|
||||
holiday.andenpåskedag.name=Anden påskedag
|
||||
holiday.andenpåskedag.date=20110425
|
||||
holiday.storebededag.name=Store bededag
|
||||
holiday.storebededag.date=20110520
|
||||
holiday.kristihimmelfartsdag.name=Kristi himmelfartsdag
|
||||
holiday.kristihimmelfartsdag.date=20110602
|
||||
holiday.pinsedag.name=Pinsedag
|
||||
holiday.pinsedag.date=20110612
|
||||
holiday.andenpinsedag.name=Anden pinsedag
|
||||
holiday.andenpinsedag.date=20110613
|
||||
holiday.juledag.name=Juledag
|
||||
holiday.juledag.date=20111225
|
||||
holiday.andenjuledag.name=Anden juledag
|
||||
holiday.andenjuledag.date=20111226
|
||||
|
||||
# 2012
|
||||
#holiday.nytårsdag.name=Nytårsdag
|
||||
#holiday.nytårsdag.date=20120101
|
||||
#holiday.palmesøndag.name=Palmesøndag
|
||||
#holiday.palmesøndag.date=20120401
|
||||
#holiday.skærtorsdag.name=Skærtorsdag
|
||||
#holiday.skærtorsdag.date=20120405
|
||||
#holiday.langfredag.name=Langfredag
|
||||
#holiday.langfredag.date=20120406
|
||||
#holiday.påskedag.name=Påskedag
|
||||
#holiday.påskedag.date=20120408
|
||||
#holiday.andenpåskedag.name=Anden påskedag
|
||||
#holiday.andenpåskedag.date=20120409
|
||||
#holiday.storebededag.name=Store bededag
|
||||
#holiday.storebededag.date=20120504
|
||||
#holiday.kristihimmelfartsdag.name=Kristi himmelfartsdag
|
||||
#holiday.kristihimmelfartsdag.date=20120517
|
||||
#holiday.pinsedag.name=Pinsedag
|
||||
#holiday.pinsedag.date=20120527
|
||||
#holiday.andenpinsedag.name=Anden pinsedag
|
||||
#holiday.andenpinsedag.date=20120528
|
||||
#holiday.juledag.name=Juledag
|
||||
#holiday.juledag.date=20121225
|
||||
#holiday.andenjuledag.name=Anden juledag
|
||||
#holiday.andenjuledag.date=20121226
|
||||
56
doc/rc/holidays-ES.rc
Normal file
56
doc/rc/holidays-ES.rc
Normal file
@@ -0,0 +1,56 @@
|
||||
################################################################################
|
||||
# Sample calendar for Spain
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2010 - 2011, Federico Hernandez.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
calendar.holidays=sparse
|
||||
|
||||
# 2011
|
||||
holiday.anonuevo.name=Año Nuevo
|
||||
holiday.anonuevo.date=20110101
|
||||
holiday.reyes.name=Día de los Reyes
|
||||
holiday.reyes.date=20110106
|
||||
holiday.viernessanto.name=Viernes Santo
|
||||
holiday.viernessanto.date=20110422
|
||||
holiday.trabajo.name=Fiesta del Trabajo
|
||||
holiday.trabajo.date=20110501
|
||||
holiday.virgen.name=Asunción de la Virgen
|
||||
holiday.virgen.date=20110815
|
||||
holiday.fiestanacional.name=Fiesta Nacional de España
|
||||
holiday.fiestanacional.date=20111012
|
||||
holiday.santos.name=Dia de todos los Santos
|
||||
holiday.santos.date=20111101
|
||||
holiday.constitucion.name=Dia de la Constitución
|
||||
holiday.constitucion.date=20111206
|
||||
holiday.concepcion.name=Inmaculada Concepción
|
||||
holiday.concepcion.date=20111208
|
||||
holiday.nochebuena.name=Noche Buena
|
||||
holiday.nochebuena.date=20111224
|
||||
holiday.navidad.name=Navidad
|
||||
holiday.navidad.date=20111225
|
||||
holiday.nochevieja.name=Noche Vieja
|
||||
holiday.nochevieja.date=20111231
|
||||
53
doc/rc/holidays-FR.rc
Normal file
53
doc/rc/holidays-FR.rc
Normal file
@@ -0,0 +1,53 @@
|
||||
################################################################################
|
||||
# Sample calendar for France
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2010 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
calendar.holidays=sparse
|
||||
|
||||
# 2011
|
||||
holiday.jourdelan.name=Jour de l'an
|
||||
holiday.jourdelan.date=20110101
|
||||
holiday.travail.name=Fête du premier mai
|
||||
holiday.travail.date=20110501
|
||||
holiday.victoire.name=la Fête de Victoire 45
|
||||
holiday.victoire.date=20110508
|
||||
holiday.ascencion.name=l'Ascencion
|
||||
holiday.ascencion.date=20110602
|
||||
holiday.pentecôte.name=la Pentecôte
|
||||
holiday.pentecôte.date=20110612
|
||||
holiday.bastille.name=Fête nationale
|
||||
holiday.bastille.date=20110714
|
||||
holiday.assomption.name=Assomption
|
||||
holiday.assomption.date=20110815
|
||||
holiday.toussaint.name=La Toussaint
|
||||
holiday.toussaint.date=20111101
|
||||
holiday.armistice.name=Jour d'armistice
|
||||
holiday.armistice.date=20111111
|
||||
holiday.noël.name=Noël
|
||||
holiday.noël.date=20111225
|
||||
|
||||
68
doc/rc/holidays-IT.rc
Normal file
68
doc/rc/holidays-IT.rc
Normal file
@@ -0,0 +1,68 @@
|
||||
################################################################################
|
||||
# Sample calendar for the US
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2011, Nicola Busanello
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
calendar.holidays=sparse
|
||||
|
||||
# 2011
|
||||
|
||||
# fisse (legali)
|
||||
holiday.capodanno.name=Capodanno
|
||||
holiday.capodanno.date=20110101
|
||||
holiday.sanmarco.name=Festa della liberazione
|
||||
holiday.sanmarco.date=20110425
|
||||
holiday.lavoratori.name=Festa del lavoro
|
||||
holiday.lavoratori.date=20110501
|
||||
holiday.repubblica.name=Festa della repubblica
|
||||
holiday.repubblica.date=20110602
|
||||
|
||||
# fisse (cristiane)
|
||||
holiday.epifania.name=Epifania
|
||||
holiday.epifania.date=20110106
|
||||
holiday.ferragosto.name=Assunzione (ferragosto)
|
||||
holiday.ferragosto.date=20110815
|
||||
holiday.ognissanti.name=Ognissanti
|
||||
holiday.ognissanti.date=20111101
|
||||
holiday.madonna.name=Immacolata concezione
|
||||
holiday.madonna.date=20111208
|
||||
holiday.natale.name=Natale
|
||||
holiday.natale.date=20111225
|
||||
holiday.sstefano.name=S.to Stefano
|
||||
holiday.sstefano.date=20111226
|
||||
|
||||
# variabili (cristiane)
|
||||
holiday.carnevale.name=Carnevale
|
||||
holiday.carnevale.date=20110308
|
||||
holiday.pasqua.name=Pasqua
|
||||
holiday.pasqua.date=20110424
|
||||
# nel 2011 coincide con la festa della liberazione
|
||||
#holiday.pasqua.name=Pasquetta
|
||||
#holiday.pasqua.date=20110425
|
||||
|
||||
# 2012
|
||||
|
||||
91
doc/rc/holidays-NL.rc
Normal file
91
doc/rc/holidays-NL.rc
Normal file
@@ -0,0 +1,91 @@
|
||||
################################################################################
|
||||
# Sample calendar for the Netherlands
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2010 - 2011, Charles T. Yun
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
calendar.holidays=sparse
|
||||
|
||||
# 2011
|
||||
holiday.nieuwjaar.name=Nieuwjaar
|
||||
holiday.nieuwjaar.date=20110101
|
||||
holiday.goedevrijdag.name=Goede Vrijdag
|
||||
holiday.goedevrijdag.date=20110422
|
||||
holiday.pasen.name=Pasen
|
||||
holiday.pasen.date=20110424
|
||||
holiday.pasen.name=Tweede Paasdag
|
||||
holiday.pasen.date=20100425
|
||||
holiday.koninginnedag.name=Koninginnedag
|
||||
holiday.koninginnedag.date=20110430
|
||||
holiday.dodenherdenking.name=Dodenherdenking
|
||||
holiday.dodenherdenking.date=20110504
|
||||
holiday.bevrijdingsdag.name=Bevrijdingsdag
|
||||
holiday.bevrijdingsdag.date=20110505
|
||||
holiday.hemelvaartsdag.name=Hemelvaartsdag
|
||||
holiday.hemelvaartsdag.date=20110602
|
||||
holiday.pinksteren.name= Pinksteren
|
||||
holiday.pinksteren.date=20110612
|
||||
holiday.pinksteren.name=Tweede Pinksterdag
|
||||
holiday.pinksteren.date=20110613
|
||||
holiday.sinterklaas.name=Sinterklaas
|
||||
holiday.sinterklaas.date=20111205
|
||||
holiday.koninkrijksdag.name=Koninkrijksdag
|
||||
holiday.koninkrijksdag.date=20111215
|
||||
holiday.kerstmis.name=Kerstmis
|
||||
holiday.kerstmis.date=20111225
|
||||
holiday.kerstmis.name=Tweede Kerstdag
|
||||
holiday.kerstmis.date=20111226
|
||||
|
||||
# 2012
|
||||
#holiday.nieuwjaar.name=Nieuwjaar
|
||||
#holiday.nieuwjaar.date=20120101
|
||||
#holiday.goedevrijdag.name=Goede Vrijdag
|
||||
#holiday.goedevrijdag.date=20120406
|
||||
#holiday.pasen.name=Pasen
|
||||
#holiday.pasen.date=20120408
|
||||
#holiday.pasen.name=Tweede Pasdag
|
||||
#holiday.pasen.date=20120409
|
||||
#holiday.koninginnedag.name=Koninginnedag
|
||||
#holiday.koninginnedag.date=20120430
|
||||
#holiday.dodenherdenking.name=Dodenherdenking
|
||||
#holiday.dodenherdenking.date=20120504
|
||||
#holiday.bevrijdingsdag.name=Bevrijdingsdag
|
||||
#holiday.bevrijdingsdag.date=20120505
|
||||
#holiday.hemelvaartsdag.name=Hemelvaartsdag
|
||||
#holiday.hemelvaartsdag.date=20120617
|
||||
#holiday.pinksteren.name= Pinksteren
|
||||
#holiday.pinksteren.date=20120627
|
||||
#holiday.pinksteren.name=Tweede Pinksterdag
|
||||
#holiday.pinksteren.date=20120628
|
||||
#holiday.sinterklaas.name=Sinterklaas
|
||||
#holiday.sinterklaas.date=20121205
|
||||
#holiday.koninkrijksdag.name=Koninkrijksdag
|
||||
#holiday.koninkrijksdag.date=20121215
|
||||
#holiday.kerstmis.name=Kerstmis
|
||||
#holiday.kerstmis.date=20121225
|
||||
#holiday.kerstmis.name=Tweede Kerstdag
|
||||
#holiday.kerstmis.date=20121226
|
||||
|
||||
103
doc/rc/holidays-NO.rc
Normal file
103
doc/rc/holidays-NO.rc
Normal file
@@ -0,0 +1,103 @@
|
||||
################################################################################
|
||||
# Sample calendar for Norway
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2010 - 2011, Jostein Berntsen
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
calendar.holidays=sparse
|
||||
|
||||
# 2011
|
||||
holiday.nyttårsdag.name=Nyttårsdag
|
||||
holiday.nyttårsdag.date=20110101
|
||||
holiday.fastelavn.name=Fastelavn
|
||||
holiday.fastelavn.date=20110306
|
||||
holiday.palmesøndag.name=Palmesøndag
|
||||
holiday.palmesøndag.date=20110417
|
||||
holiday.skjærtorsdag.name=Skjærtorsdag
|
||||
holiday.skjærtorsdag.date=20110421
|
||||
holiday.langfredag.name=Langfredag
|
||||
holiday.langfredag.date=20110422
|
||||
holiday.påskedag.name=Påskedag
|
||||
holiday.påskedag.date=20110424
|
||||
holiday.påskedag2.name=Påskedag
|
||||
holiday.påskedag2.date=20110425
|
||||
holiday.offentlighøytidsdag.name=Offentlig Høytidsdag
|
||||
holiday.offentlighøytidsdag.date=20110501
|
||||
holiday.frigjøringsdag.name=Frigjøringsdag 1945
|
||||
holiday.frigjøringsdag.date=20110508
|
||||
holiday.grunnlovsdag.name=Grunnlovsdag
|
||||
holiday.grunnlovsdag.date=20110517
|
||||
holiday.KristiHimmelfartsdag.name=Kristi Himmelfartsdag
|
||||
holiday.KristiHimmelfartsdag.date=20110602
|
||||
holiday.pinsedag.name=Pinsedag
|
||||
holiday.pinsedag.date=20110612
|
||||
holiday.pinsedag2.name=Pinsedag
|
||||
holiday.pinsedag2.date=20110613
|
||||
holiday.julaften.name=Julaften
|
||||
holiday.julaften.date=20111224
|
||||
holiday.juledag.name=Juledag
|
||||
holiday.juledag.date=20111225
|
||||
holiday.juledag2.name=Juledag
|
||||
holiday.juledag2.date=20111226
|
||||
holiday.nyttårsaften.name=Nyttårsaften
|
||||
holiday.nyttårsaften.date=20111231
|
||||
|
||||
# 2012
|
||||
#holiday.nyttårsdag.name=Nyttårsdag
|
||||
#holiday.nyttårsdag.date=20120101
|
||||
#holiday.fastelavn.name=Fastelavn
|
||||
#holiday.fastelavn.date=20120219
|
||||
#holiday.palmesøndag.name=Palmesøndag
|
||||
#holiday.palmesøndag.date=20120401
|
||||
#holiday.skjærtorsdag.name=Skjærtorsdag
|
||||
#holiday.skjærtorsdag.date=20120405
|
||||
#holiday.langfredag.name=Langfredag
|
||||
#holiday.langfredag.date=20120406
|
||||
#holiday.påskedag.name=Påskedag
|
||||
#holiday.påskedag.date=20120408
|
||||
#holiday.påskedag2.name=Påskedag
|
||||
#holiday.påskedag2.date=20120409
|
||||
#holiday.offentlighøytidsdag.name=Offentlig Høytidsdag
|
||||
#holiday.offentlighøytidsdag.date=20120501
|
||||
#holiday.frigjøringsdag.name=Frigjøringsdag 1945
|
||||
#holiday.frigjøringsdag.date=20120508
|
||||
#holiday.grunnlovsdag.name=Grunnlovsdag
|
||||
#holiday.grunnlovsdag.date=20120517
|
||||
#holiday.KristiHimmelfartsdag.name=Kristi Himmelfartsdag
|
||||
#holiday.KristiHimmelfartsdag.date=20120517
|
||||
#holiday.pinsedag.name=Pinsedag
|
||||
#holiday.pinsedag.date=20120527
|
||||
#holiday.pinsedag2.name=Pinsedag
|
||||
#holiday.pinsedag2.date=20120528
|
||||
#holiday.julaften.name=Julaften
|
||||
#holiday.julaften.date=20121224
|
||||
#holiday.juledag.name=Juledag
|
||||
#holiday.juledag.date=20121225
|
||||
#holiday.juledag2.name=Juledag
|
||||
#holiday.juledag2.date=20121226
|
||||
#holiday.nyttårsaften.name=Nyttårsaften
|
||||
#holiday.nyttårsaften.date=20121231
|
||||
|
||||
110
doc/rc/holidays-NZ.rc
Normal file
110
doc/rc/holidays-NZ.rc
Normal file
@@ -0,0 +1,110 @@
|
||||
################################################################################
|
||||
# Sample calendar for New Zealand
|
||||
#
|
||||
# Information sourced from:
|
||||
# http://www.ers.dol.govt.nz/holidays_act_2003/dates/2010_13.html
|
||||
#
|
||||
################################################################################
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2011, Stephen Heywood.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
calendar.holidays=sparse
|
||||
|
||||
# 2011
|
||||
holiday.newyear.name=New Year's Day
|
||||
holiday.newyear.date=20110101
|
||||
holiday.dayafternewyearsday.name=Day after New Years Day
|
||||
holiday.dayafternewyearsday.date=20110102
|
||||
holiday.waitangiday.name=Waitangi Day
|
||||
holiday.waitangiday.date=20110206
|
||||
|
||||
holiday.goodfriday.name=Good Friday
|
||||
holiday.goodfriday.date=20110422
|
||||
holiday.eastermonday.name=Easter Monday
|
||||
holiday.eastermonday.date=20110425
|
||||
|
||||
holiday.anzacday.name=ANZAC Day
|
||||
holiday.anzacday.date=20110425
|
||||
holiday.queensbirthday.name=Queen's Birthday
|
||||
holiday.queensbirthday.date=20110606
|
||||
holiday.labourday.name=Labour Day
|
||||
holiday.labourday.date=20111024
|
||||
|
||||
holiday.christmas.name=Christmas Day
|
||||
holiday.christmas.date=20111225
|
||||
holiday.boxingday.name=Boxing Day
|
||||
holiday.boxingday.date=20111226
|
||||
|
||||
# 2012
|
||||
#holiday.newyear.name=New Year's Day
|
||||
#holiday.newyear.date=20120101
|
||||
#holiday.dayafternewyearsday.name=Day after New Years Day
|
||||
#holiday.dayafternewyearsday.date=20120102
|
||||
#holiday.waitangiday.name=Waitangi Day
|
||||
#holiday.waitangiday.date=20120206
|
||||
|
||||
#holiday.goodfriday.name=Good Friday
|
||||
#holiday.goodfriday.date=20120406
|
||||
#holiday.eastermonday.name=Easter Monday
|
||||
#holiday.eastermonday.date=20120409
|
||||
|
||||
#holiday.anzacday.name=ANZAC Day
|
||||
#holiday.anzacday.date=20120425
|
||||
#holiday.queensbirthday.name=Queen's Birthday
|
||||
#holiday.queensbirthday.date=20120604
|
||||
#holiday.labourday.name=Labour Day
|
||||
#holiday.labourday.date=20121022
|
||||
|
||||
#holiday.christmas.name=Christmas Day
|
||||
#holiday.christmas.date=20121225
|
||||
#holiday.boxingday.name=Boxing Day
|
||||
#holiday.boxingday.date=20121226
|
||||
|
||||
# 2013
|
||||
#holiday.newyear.name=New Year's Day
|
||||
#holiday.newyear.date=20130101
|
||||
#holiday.dayafternewyearsday.name=Day after New Years Day
|
||||
#holiday.dayafternewyearsday.date=20130102
|
||||
#holiday.waitangiday.name=Waitangi Day
|
||||
#holiday.waitangiday.date=20130206
|
||||
|
||||
#holiday.goodfriday.name=Good Friday
|
||||
#holiday.goodfriday.date=20130329
|
||||
#holiday.eastermonday.name=Easter Monday
|
||||
#holiday.eastermonday.date=20130401
|
||||
|
||||
#holiday.anzacday.name=ANZAC Day
|
||||
#holiday.anzacday.date=20130425
|
||||
#holiday.queensbirthday.name=Queen's Birthday
|
||||
#holiday.queensbirthday.date=20130603
|
||||
#holiday.labourday.name=Labour Day
|
||||
#holiday.labourday.date=20131028
|
||||
|
||||
#holiday.christmas.name=Christmas Day
|
||||
#holiday.christmas.date=20131225
|
||||
#holiday.boxingday.name=Boxing Day
|
||||
#holiday.boxingday.date=20131226
|
||||
@@ -1,36 +1,66 @@
|
||||
################################################################################
|
||||
# Sample calendar for Sweden
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2010 - 2011, Federico Hernandez.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
calendar.holidays=sparse
|
||||
|
||||
# 2011
|
||||
holiday.nyårsdagen.name=Nyårsdagen
|
||||
holiday.nyårsdagen.date=20100101
|
||||
holiday.nyårsdagen.date=20110101
|
||||
holiday.trettondedagjul.name=Trettondedag jul
|
||||
holiday.trettondedagjul.date=20100106
|
||||
holiday.trettondedagjul.date=20110106
|
||||
holiday.långfredagen.name=Långfredagen
|
||||
holiday.långfredagen.date=20100402
|
||||
holiday.långfredagen.date=20110422
|
||||
holiday.påskdagen.name=Påskdagen
|
||||
holiday.påskdagen.date=20100404
|
||||
holiday.påskdagen.date=20110424
|
||||
holiday.annandagpåsk.name=Annandag påsk
|
||||
holiday.annandagpåsk.date=20100405
|
||||
holiday.annandagpåsk.date=20110425
|
||||
holiday.valborgmässoafton.name=Valborgmässoafton
|
||||
holiday.valborgmässoafton.date=20100430
|
||||
holiday.valborgmässoafton.date=20110430
|
||||
holiday.förstamaj.name=Första maj
|
||||
holiday.förstamaj.date=20100501
|
||||
holiday.förstamaj.date=20110501
|
||||
holiday.kristihimmelfärdsdag.name=Kristi Himmelsfärdsdag
|
||||
holiday.kristihimmelfärdsdag.date=20100513
|
||||
holiday.pingstdagen.name=Pingstdagen
|
||||
holiday.pingstdagen.date=20100523
|
||||
holiday.kristihimmelfärdsdag.date=20110602
|
||||
holiday.nationaldagen.name=Nationaldagen
|
||||
holiday.nationaldagen.date=20100606
|
||||
holiday.nationaldagen.date=20110606
|
||||
holiday.pingstdagen.name=Pingstdagen
|
||||
holiday.pingstdagen.date=20110612
|
||||
holiday.midsommarafton.name=Midsommarafton
|
||||
holiday.midsommarafton.date=20100625
|
||||
holiday.midsommarafton.date=20110624
|
||||
holiday.midsommardagen.name=Midsommardagen
|
||||
holiday.midsommardagen.date=20100626
|
||||
holiday.midsommardagen.date=20110625
|
||||
holiday.allahelgonsdag.name=Alla Helgons Dag
|
||||
holiday.allahelgonsdag.date=20101106
|
||||
holiday.allahelgonsdag.date=20111105
|
||||
holiday.julafton.name=Julafton
|
||||
holiday.julafton.date=20101224
|
||||
holiday.julafton.date=20111224
|
||||
holiday.juldagen.name=Juldagen
|
||||
holiday.juldagen.date=20101225
|
||||
holiday.juldagen.date=20111225
|
||||
holiday.annandagjul.name=Annandag jul
|
||||
holiday.annandagjul.date=20101226
|
||||
holiday.annandagjul.date=20111226
|
||||
holiday.nyårsafton.name=Nyårsafton
|
||||
holiday.nyårsafton.date=20101231
|
||||
holiday.nyårsafton.date=20111231
|
||||
|
||||
49
doc/rc/holidays-UK.rc
Normal file
49
doc/rc/holidays-UK.rc
Normal file
@@ -0,0 +1,49 @@
|
||||
################################################################################
|
||||
# Sample calendar for the UK
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2010 - 2011, Federico Hernandez.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
calendar.holidays=sparse
|
||||
|
||||
# 2011
|
||||
holiday.newyear.name=New Year's Day
|
||||
holiday.newyear.date=20110101
|
||||
holiday.goodfriday.name=Good Friday
|
||||
holiday.goodfriday.date=20110422
|
||||
holiday.eastermonday.name=Easter Monday
|
||||
holiday.eastermonday.date=20110425
|
||||
holiday.may.name=Early May Bank Holiday
|
||||
holiday.may.name=20110502
|
||||
holiday.spring.name=Spring Bank Holiday
|
||||
holiday.spring.name=20110530
|
||||
holiday.august.name=August Bank Holiday
|
||||
holiday.august.name=20110829
|
||||
holiday.christmas.name=Christmas Day
|
||||
holiday.christmas.date=20111225
|
||||
holiday.boxingday.name=Boxing Day
|
||||
holiday.boxingday.date=20111226
|
||||
|
||||
@@ -1,28 +1,57 @@
|
||||
################################################################################
|
||||
# Sample calendar for the US
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2010 - 2011, Federico Hernandez.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
calendar.holidays=sparse
|
||||
|
||||
holiday.newyearsday.name=New Years Day
|
||||
holiday.newyearsday.date=20100101
|
||||
holiday.martinlutherkingday.name=Martin Luther King Day
|
||||
holiday.martinlutherkingday.date=20100118
|
||||
holiday.presidentsday.name=Presidents Day
|
||||
holiday.presidentsday.date=20100215
|
||||
holiday.patriotsday.name=Patriots Day
|
||||
holiday.patriotsday.date=20100419
|
||||
# 2011
|
||||
holiday.newyearsday.name=New Year's Day
|
||||
holiday.newyearsday.date=20110101
|
||||
holiday.martinlutherkingday.name=Birthday of Martin Luther King, Jr.
|
||||
holiday.martinlutherkingday.date=20110117
|
||||
holiday.presidentsday.name=Washington's Birthday
|
||||
holiday.presidentsday.date=20110221
|
||||
holiday.patriotsday.name=Patriots' Day
|
||||
holiday.patriotsday.date=20110419
|
||||
holiday.memorialday.name=Memorial Day
|
||||
holiday.memorialday.date=20100531
|
||||
holiday.memorialday.date=20110530
|
||||
holiday.independenceday.name=Independence Day
|
||||
holiday.independenceday.date=20100704
|
||||
holiday.independenceday2.name=Independence Day observed
|
||||
holiday.independenceday2.date=20100705
|
||||
holiday.independenceday.date=20110704
|
||||
holiday.laborday.name=Labor Day
|
||||
holiday.laborday.date=20100906
|
||||
holiday.laborday.date=20110905
|
||||
holiday.columbusday.name=Columbus Day
|
||||
holiday.columbusday.date=20101011
|
||||
holiday.columbusday.date=20111010
|
||||
holiday.veteransdays.name=Veterans Day
|
||||
holiday.veteransdays.date=20101111
|
||||
holiday.veteransdays.date=20111111
|
||||
holiday.thanksgiving.name=Thanksgiving Day
|
||||
holiday.thanksgiving.date=20101125
|
||||
holiday.thanksgiving.date=20111124
|
||||
holiday.christmasday.name=Christmas Day
|
||||
holiday.christmasday.date=20101225
|
||||
holiday.newyearseve.name=New Years Eve
|
||||
holiday.newyearseve.date=20101231
|
||||
holiday.christmasday.date=20111225
|
||||
holiday.newyearseve.name=New Year's Eve
|
||||
holiday.newyearseve.date=20111231
|
||||
|
||||
|
||||
@@ -1,17 +1,52 @@
|
||||
# Sample task 1.9 (or later) light 16-color theme
|
||||
###############################################################################
|
||||
# Sample taskwarrior 1.9 (or later) light 16-color theme
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
|
||||
color=on
|
||||
color.header=blue
|
||||
color.footnote=blue
|
||||
color.debug=blue
|
||||
|
||||
color.summary.bar=on green
|
||||
color.summary.background=on black
|
||||
color.summary.bar=black on green
|
||||
color.summary.background=white on black
|
||||
|
||||
color.history.add=black on red
|
||||
color.history.done=black on green
|
||||
color.history.delete=black on yellow
|
||||
|
||||
color.burndown.pending=on red
|
||||
color.burndown.started=on yellow
|
||||
color.burndown.done=on green
|
||||
|
||||
color.sync.added=green
|
||||
color.sync.changed=yellow
|
||||
color.sync.rejected=red
|
||||
|
||||
color.undo.before=red
|
||||
color.undo.after=green
|
||||
|
||||
@@ -33,5 +68,8 @@ color.pri.H=bold black
|
||||
color.pri.M=black
|
||||
color.pri.L=
|
||||
color.tagged=green
|
||||
color.blocked=white on black
|
||||
color.project.none=
|
||||
color.tag.none=
|
||||
color.alternate=
|
||||
|
||||
|
||||
@@ -1,17 +1,51 @@
|
||||
# Sample task 1.9 (or later) light 256-color theme
|
||||
|
||||
###############################################################################
|
||||
# Sample taskwarrior 1.9 (or later) light 256-color theme
|
||||
#
|
||||
# taskwarrior - a command line task list manager.
|
||||
#
|
||||
# Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the
|
||||
#
|
||||
# Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
################################################################################
|
||||
color=on
|
||||
color.header=color4
|
||||
color.footnote=color4
|
||||
color.debug=color4
|
||||
|
||||
color.summary.bar=on rgb141
|
||||
color.summary.background=on color0
|
||||
color.summary.bar=black on rgb141
|
||||
color.summary.background=white on color0
|
||||
|
||||
color.history.add=color0 on rgb500
|
||||
color.history.done=color0 on rgb050
|
||||
color.history.delete=color0 on rgb550
|
||||
|
||||
color.burndown.pending=on rgb200
|
||||
color.burndown.started=on rgb520
|
||||
color.burndown.done=on rgb011
|
||||
|
||||
color.sync.added=rgb011
|
||||
color.sync.changed=rgb520
|
||||
color.sync.rejected=rgb200
|
||||
|
||||
color.undo.before=color1
|
||||
color.undo.after=color2
|
||||
|
||||
@@ -33,5 +67,8 @@ color.pri.H=color232
|
||||
color.pri.M=color237
|
||||
color.pri.L=color242
|
||||
color.tagged=rgb020
|
||||
color.blocked=gray12 on gray4
|
||||
color.project.none=
|
||||
color.tag.none=
|
||||
color.alternate=on color254
|
||||
|
||||
|
||||
4
i18n/CMakeLists.txt
Normal file
4
i18n/CMakeLists.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
install (DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION ${TASK_DOCDIR}/i18n
|
||||
FILES_MATCHING REGEX "strings.*"
|
||||
REGEX "tips.*"
|
||||
PATTERN "CMakeFiles" EXCLUDE)
|
||||
@@ -1,9 +1,9 @@
|
||||
# This is an example strings.en-US file.
|
||||
#
|
||||
# The task program has a built-in set of default strings, which are UTF8 encoded
|
||||
# for the en-US locale. A file such as this is used to override those defaults.
|
||||
# This means that a strings file is merely a delta applied to the built-in
|
||||
# strings, so an empty string file means you get en-US.
|
||||
# The taskwarrior program has a built-in set of default strings, which are UTF8
|
||||
# encoded for the en-US locale. A file such as this is used to override those
|
||||
# defaults. This means that a strings file is merely a delta applied to the
|
||||
# built-in strings, so an empty string file means you get en-US.
|
||||
#
|
||||
# To use another string file, add the following entry to your .taskrc file:
|
||||
#
|
||||
@@ -18,7 +18,7 @@
|
||||
105 Inverted sequence range high-low
|
||||
106 ID Range too large
|
||||
107 Not a sequence.
|
||||
108 Interactive task is only available when built with ncurses support.
|
||||
|
||||
109 Empty record in input
|
||||
110 Unrecognized characters at end of line
|
||||
111 Record not recognized as format 4
|
||||
@@ -61,6 +61,8 @@
|
||||
230 config
|
||||
231 show
|
||||
|
||||
235 diagnostics
|
||||
|
||||
# 3xx Attributes - must be sequential
|
||||
300 project
|
||||
301 priority
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# This is an example strings.en-US file.
|
||||
#
|
||||
# The task program has a built-in set of default strings, which are UTF8 encoded
|
||||
# for the en-US locale. A file such as this is used to override those defaults.
|
||||
# This means that a strings file is merely a delta applied to the built-in
|
||||
# strings, so an empty string file means you get en-US.
|
||||
# The taskwarrior program has a built-in set of default strings, which are UTF8
|
||||
# encoded for the en-US locale. A file such as this is used to override those
|
||||
# default. This means that a strings file is merely a delta applied to the
|
||||
# built-in strings, so an empty string file means you get en-US.
|
||||
#
|
||||
# To use another string file, add the following entry to your .taskrc file:
|
||||
#
|
||||
|
||||
@@ -1,5 +1,67 @@
|
||||
%
|
||||
first tip
|
||||
For bash users, try 'alias t=task' to save some keystrokes.
|
||||
%
|
||||
second tip
|
||||
Have you tried 'task edit 1' to use your text editor to modify all aspects of
|
||||
task 1?
|
||||
%
|
||||
Did you know that 'task 1 wait:eom' will hide task 1 until the end of the
|
||||
month? You can then see all waiting tasks with 'task waiting'.
|
||||
%
|
||||
Did you know that 'task 1 wait:' will restore a waiting task to pending status?
|
||||
%
|
||||
If you put 'default.command=list project:home' in your .taskrc file, then just
|
||||
running 'task' will automatically run 'task list project:home' for you. Save
|
||||
some keystrokes!
|
||||
%
|
||||
If you edit your pending.data file, make sure that your text editor doesn't
|
||||
strip the trailing \n characters from the end of the file.
|
||||
%
|
||||
If you must edit your pending.data file, make sure that your text editor doesn't
|
||||
convert from a Unix to a DOS file encoding.
|
||||
%
|
||||
Do you have the latest version of task installed? Check http://taskwarrior.org
|
||||
periodically for news of updates. That feature you wanted might be ready...
|
||||
%
|
||||
Don't forget the online docs at http://taskwarrior.org/wiki/taskwarrior, and if
|
||||
you find errors, please let us know. Then again, it is a wiki, so feel free to
|
||||
correct them yourself.
|
||||
%
|
||||
Don't forget the online docs at http://taskwarrior.org/wiki/taskwarrior, but if
|
||||
you cannot find documentation on a particular topic, either create a ticket
|
||||
requesting it, email support@taskwarrior.org asking for it, or start it
|
||||
yourself.
|
||||
%
|
||||
Did you know there are man pages for task? Try 'man task', 'man taskrc',
|
||||
'man task-tutorial', 'man task-color' and 'man task-faq'.
|
||||
%
|
||||
Did you know there are several 256-color themes available for task?
|
||||
%
|
||||
Did you know that running 'task show' will perform various checks on your
|
||||
.taskrc file, looking for errors?
|
||||
%
|
||||
Are you making the most of color? Try 'task color' to see what colors your
|
||||
system supports.
|
||||
%
|
||||
Are you using projects? If you do, taskwarrior will keep track of the project
|
||||
completion percentage and report it to you whenever it changes.
|
||||
%
|
||||
Did you know you can list tasks that have priorities like 'task list
|
||||
priority.above:L'?
|
||||
%
|
||||
The http://tasktools.org/latest URL can tell you which is the latest version.
|
||||
%
|
||||
To make your task list clear and actionable, always describe it starting with a
|
||||
verb, like "call" or "clean" or "get".
|
||||
%
|
||||
Don't like the name of a command? Create an alias.
|
||||
%
|
||||
You can choose whether your searches are case sensitive or not, by running
|
||||
'task config search.case.sensitive yes'
|
||||
%
|
||||
Back up your data files by making copies of the ~/.taskrc file and ~/.task
|
||||
directory.
|
||||
%
|
||||
Accidentally changed a task? The undo command makes it a breeze to recover from
|
||||
any inadvertent change -- even a deletion!
|
||||
%
|
||||
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
%
|
||||
första tips
|
||||
För bash användare, med 'alias t=task' kan du spara på nedslagningar på tangentbordet.
|
||||
%
|
||||
andra tips
|
||||
Har du försökt att använda 'task edit 1' för att ändra alla aspekter av task 1 i din texteditor?
|
||||
%
|
||||
Med 'task 1 wait:eom' kan du göma task 1 fram till slutet av månaden. För att se
|
||||
alla task som väntar kan du använda 'task waiting'.
|
||||
%
|
||||
Visste du att 'task 1 wait:' återställa en väntande task till "peding" igen?
|
||||
%
|
||||
Skriv 'default.command=list project:home' i din .taskrc fil. När du sen använder
|
||||
'task' körs det en 'task list project:home' istäälet för dig. Spara på nedslagningar
|
||||
på tangetbordet.
|
||||
%
|
||||
|
||||
Binary file not shown.
@@ -31,9 +31,10 @@ Note: This is being written from the OSX 10.6 perspective, and may therefore
|
||||
$ cd ~/task-package.git
|
||||
|
||||
2.2 Making sure you have the right version of the code. This assumes you are
|
||||
building task 1.9.2, but any version number is interchangeable. Check out
|
||||
the correct branch, and make sure it is sitting at the correct commit, via
|
||||
a tag. Note that while 1.9.2 is a branch name, v1.9.2 is a tag name.
|
||||
building taskwarrior 1.9.2, but any version number is interchangeable.
|
||||
Check out the correct branch, and make sure it is sitting at the correct
|
||||
commit, via a tag. Note that while 1.9.2 is a branch name, v1.9.2 is a tag
|
||||
name.
|
||||
|
||||
$ git checkout 1.9.2
|
||||
$ git reset --hard v1.9.2
|
||||
@@ -41,7 +42,7 @@ Note: This is being written from the OSX 10.6 perspective, and may therefore
|
||||
If there is an error in this step, stop, capture the output, and report the
|
||||
errors.
|
||||
|
||||
3. Build task
|
||||
3. Build taskwarrior
|
||||
|
||||
3.1 First build the task binary. Note the "-j 2" tells make to use both cores
|
||||
in your dual-core Intel CPU, which means faster compiles. If you own a quad
|
||||
@@ -61,9 +62,9 @@ Note: This is being written from the OSX 10.6 perspective, and may therefore
|
||||
|
||||
4. Build the test suite
|
||||
|
||||
4.1 The test suite exists to prove that we do not break task features from one
|
||||
release to the next. While this is not a perfect solution, it has saved us
|
||||
many times from releasing code that is inferior.
|
||||
4.1 The test suite exists to prove that we do not break taskwarrior features
|
||||
from one release to the next. While this is not a perfect solution, it has
|
||||
saved us many times from releasing code that is inferior.
|
||||
|
||||
The first step is to modify the test suite Makefile to remove the Lua line.
|
||||
This is because we do not yet have dynamic detection of the Lua library for
|
||||
@@ -74,11 +75,11 @@ Note: This is being written from the OSX 10.6 perspective, and may therefore
|
||||
|
||||
Any text editor will do, but look for this line (line 5):
|
||||
|
||||
LFLAGS = -L/usr/local/lib -lncurses -llua
|
||||
LFLAGS = -L/usr/local/lib -llua
|
||||
|
||||
and change it to:
|
||||
|
||||
LFLAGS = -L/usr/local/lib -lncurses
|
||||
LFLAGS = -L/usr/local/lib
|
||||
|
||||
Now build the unit tests:
|
||||
|
||||
@@ -111,7 +112,7 @@ Note: This is being written from the OSX 10.6 perspective, and may therefore
|
||||
|
||||
6.1 Launch the package manager.
|
||||
|
||||
$ open -a /Developer/Applications/Utilies/PackageManager.app
|
||||
$ open -a /Developer/Applications/Utilities/PackageManager.app
|
||||
|
||||
6.2 Close the 'Untitled' window that opens - we will be using a different
|
||||
file. Note that PackageManager is still running - it just has no windows.
|
||||
@@ -123,13 +124,13 @@ Note: This is being written from the OSX 10.6 perspective, and may therefore
|
||||
<figure 1>
|
||||
|
||||
This is the file from the last time a package was created. It needs some
|
||||
adjustments. Start by clicking on the "Task x.x.x Distribution" with a
|
||||
package icon in the top left part of the window.
|
||||
adjustments. Start by clicking on the "Taskwarrior x.x.x Distribution" with
|
||||
a package icon in the top left part of the window.
|
||||
|
||||
6.4 Click on the "Configuration" button/tab.
|
||||
|
||||
- Change the "Title" to "Task 1.9.2"
|
||||
- Change the "Description" to "Task 1.9.2 install for Snow Leopard"
|
||||
- Change the "Title" to "Taskwarrior 1.9.2"
|
||||
- Change the "Description" to "Taskwarrior 1.9.2 install for Snow Leopard"
|
||||
|
||||
<figure 2>
|
||||
|
||||
@@ -203,7 +204,7 @@ Note: This is being written from the OSX 10.6 perspective, and may therefore
|
||||
one
|
||||
- Make sure "Restart Action" is "None"
|
||||
- Make sure "Require admin authentication" is checked
|
||||
- Make sure "PAckage Location" is "Self-Contained"
|
||||
- Make sure "Package Location" is "Self-Contained"
|
||||
|
||||
<figure 12>
|
||||
|
||||
@@ -238,8 +239,8 @@ Note: This is being written from the OSX 10.6 perspective, and may therefore
|
||||
|
||||
8. Test the package
|
||||
|
||||
8.1 Double-click on the package you just created, and install task. You
|
||||
should see the README file in the UI, and the COPYING file on another
|
||||
8.1 Double-click on the package you just created, and install taskwarrior.
|
||||
You should see the README file in the UI, and the COPYING file on another
|
||||
page. It should succeed.
|
||||
|
||||
<figure 14>
|
||||
@@ -255,19 +256,20 @@ Note: This is being written from the OSX 10.6 perspective, and may therefore
|
||||
|
||||
$ /usr/local/bin/task version
|
||||
|
||||
task 1.9.2 built for darwin-ncurses
|
||||
Copyright (C) 2006 - 2010 P. Beckingham, F. Hernandez.
|
||||
|
||||
Task may be copied only under the terms of the GNU General Public License,
|
||||
which may be found in the task source kit.
|
||||
task 1.9.4 built for darwin
|
||||
Copyright (C) 2006 - 2011 P. Beckingham, F. Hernandez.
|
||||
|
||||
Documentation for task can be found using 'man task', 'man taskrc', 'man
|
||||
task-tutorial', 'man task-color', 'man task-faq' or at http://taskwarrior.org
|
||||
Taskwarrior may be copied only under the terms of the GNU General Public
|
||||
License, which may be found in the taskwarrior source kit.
|
||||
|
||||
Documentation for taskwarrior can be found using 'man task', 'man taskrc',
|
||||
'man task-tutorial', 'man task-color', 'man task-faq' or at
|
||||
http://taskwarrior.org
|
||||
|
||||
$ man task
|
||||
...
|
||||
...
|
||||
task 1.9.2 2010-05-22 task 1.9.2
|
||||
task 1.9.4 2011-0l-10 task 1.9.4
|
||||
|
||||
The man page should list 1.9.2 as the version number, but the date will be
|
||||
different.
|
||||
|
||||
@@ -5,6 +5,7 @@ mkdir -p local/share/doc/task/scripts/bash
|
||||
mkdir -p local/share/doc/task/scripts/vim/ftdetect
|
||||
mkdir -p local/share/doc/task/scripts/vim/syntax
|
||||
mkdir -p local/share/doc/task/scripts/zsh
|
||||
mkdir -p local/share/doc/task/scripts/fish
|
||||
mkdir -p local/share/doc/task/rc
|
||||
mkdir -p local/share/man/man1
|
||||
mkdir -p local/share/man/man5
|
||||
@@ -25,6 +26,7 @@ cp ../../scripts/vim/README local/share/doc/task/scripts/vim
|
||||
cp ../../scripts/vim/ftdetect/* local/share/doc/task/scripts/vim/ftdetect
|
||||
cp ../../scripts/vim/syntax/* local/share/doc/task/scripts/vim/syntax
|
||||
cp ../../scripts/zsh/* local/share/doc/task/scripts/zsh
|
||||
cp ../../scripts/fish/* local/share/doc/task/scripts/fish
|
||||
|
||||
cp ../../doc/rc/*.theme local/share/doc/task/rc
|
||||
cp ../../doc/rc/holidays* local/share/doc/task/rc
|
||||
|
||||
@@ -32,10 +32,10 @@ Upstream Authors:
|
||||
|
||||
Copyright:
|
||||
|
||||
Copyright 2006 - 2010, Paul Beckingham
|
||||
Copyright 2009 - 2010 Federico Hernandez
|
||||
Copyright 2006 - 2010, Paul Beckingham, Federico Hernandez
|
||||
Copyright 2009 - 2010 John Florian
|
||||
Copyright 2006 - 2011, Paul Beckingham
|
||||
Copyright 2009 - 2011 Federico Hernandez
|
||||
Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez
|
||||
Copyright 2009 - 2011 John Florian
|
||||
Copyright 2009 P.C. Shyamshankar
|
||||
Copyright © 1994–2008 Lua.org, PUC-Rio
|
||||
|
||||
@@ -60,6 +60,6 @@ Public License can be found in `/usr/share/common-licenses/GPL-2'.
|
||||
|
||||
The Debian packaging is:
|
||||
|
||||
Copyright (C) 2009 - 2010, Federico Hernandez <ultrafredde@gmail.com>
|
||||
Copyright (C) 2009 - 2011, Federico Hernandez <ultrafredde@gmail.com>
|
||||
|
||||
and is licensed under the GPL, see above.
|
||||
|
||||
1
scripts/CMakeLists.txt
Normal file
1
scripts/CMakeLists.txt
Normal file
@@ -0,0 +1 @@
|
||||
install (DIRECTORY bash fish vim zsh add-ons DESTINATION ${TASK_DOCDIR}/scripts)
|
||||
70
scripts/add-ons/export-csv.pl
Executable file
70
scripts/add-ons/export-csv.pl
Executable file
@@ -0,0 +1,70 @@
|
||||
#! /usr/bin/perl
|
||||
################################################################################
|
||||
## taskwarrior - a command line task list manager.
|
||||
##
|
||||
## Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
## All rights reserved.
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or modify it under
|
||||
## the terms of the GNU General Public License as published by the Free Software
|
||||
## Foundation; either version 2 of the License, or (at your option) any later
|
||||
## version.
|
||||
##
|
||||
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
## details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License along with
|
||||
## this program; if not, write to the
|
||||
##
|
||||
## Free Software Foundation, Inc.,
|
||||
## 51 Franklin Street, Fifth Floor,
|
||||
## Boston, MA
|
||||
## 02110-1301
|
||||
## USA
|
||||
##
|
||||
################################################################################
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use JSON;
|
||||
|
||||
# Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON
|
||||
my $command = '/usr/local/bin/task _query ' . join (' ', @ARGV);
|
||||
|
||||
# Generate output.
|
||||
print "'uuid','status','tags','entry','start','due','recur','end','project',",
|
||||
"'priority','fg','bg','description'\n";
|
||||
|
||||
for my $task (split /,$/ms, qx{$command})
|
||||
{
|
||||
my $data = from_json ($task);
|
||||
|
||||
print "'$data->{'uuid'}',",
|
||||
"'$data->{'status'}',",
|
||||
"'", (exists $data->{'tags'} ? join (' ', @{$data->{'tags'}}) : ''), "',",
|
||||
"'$data->{'entry'}',",
|
||||
"'", ($data->{'start'} || ''), "',",
|
||||
"'", ($data->{'due'} || ''), "',",
|
||||
"'", ($data->{'recur'} || ''), "',",
|
||||
"'", ($data->{'end'} || ''), "',",
|
||||
"'", ($data->{'project'} || ''), "',",
|
||||
"'", ($data->{'priority'} || ''), "',",
|
||||
"'", ($data->{'fg'} || ''), "',",
|
||||
"'", ($data->{'bg'} || ''), "',",
|
||||
"'$data->{'description'}'",
|
||||
"\n";
|
||||
|
||||
# Note that this format ignores:
|
||||
# wait
|
||||
# until
|
||||
# annotations
|
||||
# mask
|
||||
# imask
|
||||
}
|
||||
|
||||
exit 0;
|
||||
|
||||
################################################################################
|
||||
|
||||
91
scripts/add-ons/export-ical.pl
Executable file
91
scripts/add-ons/export-ical.pl
Executable file
@@ -0,0 +1,91 @@
|
||||
#! /usr/bin/perl
|
||||
################################################################################
|
||||
## taskwarrior - a command line task list manager.
|
||||
##
|
||||
## Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
## All rights reserved.
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or modify it under
|
||||
## the terms of the GNU General Public License as published by the Free Software
|
||||
## Foundation; either version 2 of the License, or (at your option) any later
|
||||
## version.
|
||||
##
|
||||
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
## details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License along with
|
||||
## this program; if not, write to the
|
||||
##
|
||||
## Free Software Foundation, Inc.,
|
||||
## 51 Franklin Street, Fifth Floor,
|
||||
## Boston, MA
|
||||
## 02110-1301
|
||||
## USA
|
||||
##
|
||||
################################################################################
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use JSON;
|
||||
|
||||
# Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON
|
||||
my $command = '/usr/local/bin/task _query ' . join (' ', @ARGV);
|
||||
|
||||
# Generate output.
|
||||
print "BEGIN:VCALENDAR\n",
|
||||
"VERSION:2.0\n",
|
||||
"PRODID:=//GBF/taskwarrior 1.9.4//EN\n";
|
||||
|
||||
for my $task (split /,$/ms, qx{$command})
|
||||
{
|
||||
my $data = from_json ($task);
|
||||
|
||||
print "BEGIN:VTODO\n";
|
||||
print "UID:$data->{'uuid'}\n";
|
||||
print "DTSTAMP:$data->{'entry'}\n";
|
||||
print "DTSTART:$data->{'start'}\n" if exists $data->{'start'};
|
||||
print "DUE:$data->{'due'}\n" if exists $data->{'due'};
|
||||
print "COMPLETED:$data->{'end'}\n" if exists $data->{'end'};
|
||||
print "SUMMARY:$data->{'description'}\n";
|
||||
print "CLASS:PRIVATE\n";
|
||||
print "CATEGORIES:", join (',', @{$data->{'tags'}}), "\n" if exists $data->{'tags'};
|
||||
|
||||
# Priorities map to a 1-9 scale.
|
||||
if (exists $data->{'priority'})
|
||||
{
|
||||
print "PRIORITY:", ($data->{'priority'} eq 'H' ? '1' :
|
||||
$data->{'priority'} eq 'M' ? '5' :
|
||||
'9'), "\n";
|
||||
}
|
||||
|
||||
# Status maps differently.
|
||||
my $status = $data->{'status'};
|
||||
if ($status eq 'pending' || $status eq 'waiting')
|
||||
{
|
||||
print "STATUS:", (exists $data->{'start'} ? 'IN-PROCESS' : 'NEEDS-ACTION'), "\n";
|
||||
}
|
||||
elsif ($status eq 'completed')
|
||||
{
|
||||
print "STATUS:COMPLETED\n";
|
||||
}
|
||||
elsif ($status eq 'deleted')
|
||||
{
|
||||
print "STATUS:CANCELLED\n";
|
||||
}
|
||||
|
||||
# Annotations become comments.
|
||||
if (exists $data->{'annotations'})
|
||||
{
|
||||
print "COMMENT:$_->{'description'}\n" for @{$data->{'annotations'}};
|
||||
}
|
||||
|
||||
print "END:VTODO\n";
|
||||
}
|
||||
|
||||
print "END:VCALENDAR\n";
|
||||
exit 0;
|
||||
|
||||
################################################################################
|
||||
|
||||
74
scripts/add-ons/export-xml.pl
Executable file
74
scripts/add-ons/export-xml.pl
Executable file
@@ -0,0 +1,74 @@
|
||||
#! /usr/bin/perl
|
||||
################################################################################
|
||||
## taskwarrior - a command line task list manager.
|
||||
##
|
||||
## Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
## All rights reserved.
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or modify it under
|
||||
## the terms of the GNU General Public License as published by the Free Software
|
||||
## Foundation; either version 2 of the License, or (at your option) any later
|
||||
## version.
|
||||
##
|
||||
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
## details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License along with
|
||||
## this program; if not, write to the
|
||||
##
|
||||
## Free Software Foundation, Inc.,
|
||||
## 51 Franklin Street, Fifth Floor,
|
||||
## Boston, MA
|
||||
## 02110-1301
|
||||
## USA
|
||||
##
|
||||
################################################################################
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use JSON;
|
||||
|
||||
# Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON
|
||||
my $command = '/usr/local/bin/task _query ' . join (' ', @ARGV);
|
||||
|
||||
# Generate output.
|
||||
print "<tasks>\n";
|
||||
for my $task (split /,$/ms, qx{$command})
|
||||
{
|
||||
my $data = from_json ($task);
|
||||
|
||||
print " <task>\n";
|
||||
for my $key (keys %$data)
|
||||
{
|
||||
if ($key eq 'annotations')
|
||||
{
|
||||
print " <annotations>\n";
|
||||
for my $anno (@{$data->{$key}})
|
||||
{
|
||||
print " <annotation>\n";
|
||||
print " <$_>$anno->{$_}</$_>\n" for keys %$anno;
|
||||
print " </annotation>\n";
|
||||
}
|
||||
print " </annotations>\n";
|
||||
}
|
||||
elsif ($key eq 'tags')
|
||||
{
|
||||
print " <tags>\n";
|
||||
print " <tag>$_</tag>\n" for @{$data->{'tags'}};
|
||||
print " </tags>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print " <$key>$data->{$key}</$key>\n";
|
||||
}
|
||||
}
|
||||
print " </task>\n";
|
||||
}
|
||||
|
||||
print "</tasks>\n";
|
||||
exit 0;
|
||||
|
||||
################################################################################
|
||||
|
||||
62
scripts/add-ons/export-xml.py
Executable file
62
scripts/add-ons/export-xml.py
Executable file
@@ -0,0 +1,62 @@
|
||||
#! /usr/bin/python
|
||||
################################################################################
|
||||
## taskwarrior - a command line task list manager.
|
||||
##
|
||||
## Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
## All rights reserved.
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or modify it under
|
||||
## the terms of the GNU General Public License as published by the Free Software
|
||||
## Foundation; either version 2 of the License, or (at your option) any later
|
||||
## version.
|
||||
##
|
||||
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
## details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License along with
|
||||
## this program; if not, write to the
|
||||
##
|
||||
## Free Software Foundation, Inc.,
|
||||
## 51 Franklin Street, Fifth Floor,
|
||||
## Boston, MA
|
||||
## 02110-1301
|
||||
## USA
|
||||
##
|
||||
################################################################################
|
||||
|
||||
import sys
|
||||
import commands
|
||||
import json
|
||||
|
||||
# Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON
|
||||
command = "/usr/local/bin/task _query " + " ".join (sys.argv[1:])
|
||||
|
||||
# Generate output.
|
||||
print "<tasks>"
|
||||
for task in commands.getoutput (command).split (",\n"):
|
||||
data = json.loads (task)
|
||||
print (" <task>")
|
||||
for name,value in data.items ():
|
||||
if name == "annotations":
|
||||
print (" <annotations>")
|
||||
for anno in value:
|
||||
print (" <annotation>")
|
||||
for name,value in anno.items ():
|
||||
print (" <{0}>{1}</{0}>".format (name, value))
|
||||
print (" </annotation>")
|
||||
print (" </annotations>")
|
||||
elif name == "tags":
|
||||
print (" <tags>")
|
||||
for tag in value:
|
||||
print (" <tag>{0}</tag>".format (tag))
|
||||
print (" </tags>")
|
||||
else:
|
||||
print (" <{0}>{1}</{0}>".format (name, value))
|
||||
print (" </task>")
|
||||
print ("</tasks>")
|
||||
sys.exit (0)
|
||||
|
||||
################################################################################
|
||||
|
||||
67
scripts/add-ons/export-xml.rb
Executable file
67
scripts/add-ons/export-xml.rb
Executable file
@@ -0,0 +1,67 @@
|
||||
#! /usr/bin/ruby
|
||||
################################################################################
|
||||
## taskwarrior - a command line task list manager.
|
||||
##
|
||||
## Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
## All rights reserved.
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or modify it under
|
||||
## the terms of the GNU General Public License as published by the Free Software
|
||||
## Foundation; either version 2 of the License, or (at your option) any later
|
||||
## version.
|
||||
##
|
||||
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
## details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License along with
|
||||
## this program; if not, write to the
|
||||
##
|
||||
## Free Software Foundation, Inc.,
|
||||
## 51 Franklin Street, Fifth Floor,
|
||||
## Boston, MA
|
||||
## 02110-1301
|
||||
## USA
|
||||
##
|
||||
################################################################################
|
||||
|
||||
require 'rubygems'
|
||||
require 'json'
|
||||
|
||||
# Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON
|
||||
lines = IO.popen("/usr/local/bin/task _query " + ARGV.join(" ")).readlines
|
||||
|
||||
# Generate output.
|
||||
print "<tasks>\n"
|
||||
lines.each do |line|
|
||||
data = JSON.parse(line)
|
||||
print " <task>\n"
|
||||
data.each do |key,value|
|
||||
if key == "annotations"
|
||||
print " <annotations>\n"
|
||||
value.each do |anno|
|
||||
print " <annotation>\n"
|
||||
anno.each do |key,value|
|
||||
print " <#{key}>#{value}</#{key}>\n"
|
||||
end
|
||||
print " </annotation>\n"
|
||||
end
|
||||
print " </annotations>\n"
|
||||
elsif key == "tags"
|
||||
print " <tags>\n"
|
||||
value.each do |tag|
|
||||
print " <tag>#{tag}</tag>\n"
|
||||
end
|
||||
print " </tags>\n"
|
||||
else
|
||||
print " <#{key}>#{value}</#{key}>\n"
|
||||
end
|
||||
end
|
||||
print " </task>\n"
|
||||
end
|
||||
print "</tasks>\n"
|
||||
exit 0
|
||||
|
||||
################################################################################
|
||||
|
||||
72
scripts/add-ons/export-yaml.pl
Executable file
72
scripts/add-ons/export-yaml.pl
Executable file
@@ -0,0 +1,72 @@
|
||||
#! /usr/bin/perl
|
||||
################################################################################
|
||||
## taskwarrior - a command line task list manager.
|
||||
##
|
||||
## Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
## All rights reserved.
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or modify it under
|
||||
## the terms of the GNU General Public License as published by the Free Software
|
||||
## Foundation; either version 2 of the License, or (at your option) any later
|
||||
## version.
|
||||
##
|
||||
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
## details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License along with
|
||||
## this program; if not, write to the
|
||||
##
|
||||
## Free Software Foundation, Inc.,
|
||||
## 51 Franklin Street, Fifth Floor,
|
||||
## Boston, MA
|
||||
## 02110-1301
|
||||
## USA
|
||||
##
|
||||
################################################################################
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use JSON;
|
||||
|
||||
# Use the taskwarrior 1.9.4+ _query command to issue a query and return JSON
|
||||
my $command = '/usr/local/bin/task _query ' . join (' ', @ARGV);
|
||||
|
||||
# Generate output.
|
||||
print "%YAML 1.1\n",
|
||||
"---\n";
|
||||
|
||||
for my $task (split /,$/ms, qx{$command})
|
||||
{
|
||||
my $data = from_json ($task);
|
||||
|
||||
print " task:\n";
|
||||
for my $key (keys %$data)
|
||||
{
|
||||
if ($key eq 'annotations')
|
||||
{
|
||||
print " annotations:\n";
|
||||
for my $anno (@{$data->{$key}})
|
||||
{
|
||||
print " annotation:\n";
|
||||
print " $_:$anno->{$_}\n" for keys %$anno;
|
||||
}
|
||||
}
|
||||
elsif ($key eq 'tags')
|
||||
{
|
||||
print " tags:\n";
|
||||
print " tag:$_\n" for @{$data->{'tags'}};
|
||||
}
|
||||
else
|
||||
{
|
||||
print " $key:$data->{$key}\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print "...\n";
|
||||
exit 0;
|
||||
|
||||
################################################################################
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# bash completion support for task
|
||||
# bash completion support for taskwarrior
|
||||
#
|
||||
# Copyright 2009-2010 Federico Hernandez
|
||||
# Copyright 2009 - 2011 Federico Hernandez
|
||||
# All rights reserved.
|
||||
#
|
||||
# This script is part of the task project.
|
||||
# This script is part of the taskwarrior project.
|
||||
#
|
||||
# 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
|
||||
@@ -117,6 +117,32 @@ _task()
|
||||
COMPREPLY=( $(compgen -W "${config}" -- ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
case "${prev}" in
|
||||
merge)
|
||||
local servers=$(_task_get_config | grep merge | grep uri | sed 's/^merge\.\(.*\)\.uri/\1/')
|
||||
COMPREPLY=( $(compgen -W "${servers}" -- ${cur}) )
|
||||
_known_hosts_real -a "$cur"
|
||||
return 0
|
||||
;;
|
||||
push)
|
||||
local servers=$(_task_get_config | grep push | grep uri | sed 's/^push\.\(.*\)\.uri/\1/')
|
||||
COMPREPLY=( $(compgen -W "${servers}" -- ${cur}) )
|
||||
_known_hosts_real -a "$cur"
|
||||
return 0
|
||||
;;
|
||||
pull)
|
||||
local servers=$(_task_get_config | grep pull | grep uri | sed 's/^pull\.\(.*\)\.uri/\1/')
|
||||
COMPREPLY=( $(compgen -W "${servers}" -- ${cur}) )
|
||||
_known_hosts_real -a "$cur"
|
||||
return 0
|
||||
;;
|
||||
import)
|
||||
COMPREPLY=( $(compgen -o "default" -- ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
138
scripts/fish/task.fish
Normal file
138
scripts/fish/task.fish
Normal file
@@ -0,0 +1,138 @@
|
||||
# Taskwarrior <http://taskwarrior.org> tab completions for the Fish shell
|
||||
# <http://fishshell.org>.
|
||||
#
|
||||
# Copy this script to ~/.config/fish/completions/task.fish, open a new shell,
|
||||
# and enjoy.
|
||||
#
|
||||
# Objects completed:
|
||||
# * Commands
|
||||
# * Projects
|
||||
# * Priorities
|
||||
# * Tags
|
||||
# * Attribute names and modifiers
|
||||
#
|
||||
# License:
|
||||
# Copyright 2009 - 2011 Mick Koch <kchmck@gmail.com>
|
||||
#
|
||||
# This script is free software. It comes without any warranty, to the extent
|
||||
# permitted by applicable law. You can redistribute it and/or modify it under
|
||||
# the terms of the Do What The Fuck You Want To Public License, Version 2, as
|
||||
# published by Sam Hocevar. See http://sam.zoy.org/wtfpl/COPYING for more
|
||||
# details.
|
||||
|
||||
function __fish.task.bare
|
||||
test (count (commandline -c -o)) -eq 1
|
||||
end
|
||||
|
||||
function __fish.task.complete
|
||||
complete -c task -u $argv
|
||||
end
|
||||
|
||||
function __fish.task.head
|
||||
task _ids
|
||||
task _commands
|
||||
end
|
||||
|
||||
function __fish.task.attrs
|
||||
echo project
|
||||
echo priority
|
||||
echo due
|
||||
echo recur
|
||||
echo until
|
||||
echo limit
|
||||
echo wait
|
||||
echo rc
|
||||
end
|
||||
|
||||
function __fish.task.mods
|
||||
echo before
|
||||
echo after
|
||||
echo over
|
||||
echo under
|
||||
echo none
|
||||
echo is
|
||||
echo isnt
|
||||
echo has
|
||||
echo hasnt
|
||||
echo startswith
|
||||
echo endswith
|
||||
echo word
|
||||
echo noword
|
||||
end
|
||||
|
||||
function __fish.task.combos
|
||||
echo $argv[1]:$argv[2]
|
||||
|
||||
for mod in (__fish.task.mods)
|
||||
echo $argv[1].$mod:$argv[2]
|
||||
end
|
||||
end
|
||||
|
||||
function __fish.task.combos.simple
|
||||
__fish.task.combos $argv ""
|
||||
end
|
||||
|
||||
function __fish.task.projects
|
||||
__fish.task.combos.simple project
|
||||
|
||||
for project in (task _projects)
|
||||
__fish.task.combos project $project
|
||||
end
|
||||
end
|
||||
|
||||
function __fish.task.priorities
|
||||
__fish.task.combos.simple priority
|
||||
|
||||
for priority in H M L
|
||||
__fish.task.combos priority $priority
|
||||
end
|
||||
end
|
||||
|
||||
function __fish.task.rc
|
||||
echo rc:
|
||||
|
||||
for value in (task _config)
|
||||
echo rc.$value:
|
||||
end
|
||||
end
|
||||
|
||||
function __fish.task.tags
|
||||
for tag in (task _tags)
|
||||
echo +$tag
|
||||
echo -$tag
|
||||
end
|
||||
end
|
||||
|
||||
function __fish.task.match
|
||||
__fish.task.attrs | grep \^(echo $argv | sed -E "s/(\w+).+/\1/")
|
||||
end
|
||||
|
||||
function __fish.task.attr
|
||||
for attr in (__fish.task.match $argv)
|
||||
switch $attr
|
||||
case project
|
||||
__fish.task.projects
|
||||
case priority
|
||||
__fish.task.priorities
|
||||
case rc
|
||||
__fish.task.rc
|
||||
case "*"
|
||||
__fish.task.combos.simple $attr
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function __fish.task.body
|
||||
set token (commandline -ct)
|
||||
|
||||
if test -n $token
|
||||
__fish.task.attr $token
|
||||
else
|
||||
__fish.task.attrs
|
||||
end
|
||||
|
||||
__fish.task.tags
|
||||
end
|
||||
|
||||
__fish.task.complete -f -n __fish.task.bare -a "(__fish.task.head)"
|
||||
__fish.task.complete -f -n "not __fish.task.bare" -a "(__fish.task.body)"
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
Configure VIM for Syntax Highlighting of Task Data
|
||||
Configure VIM for Syntax Highlighting of Taskwarrior Data
|
||||
|
||||
|
||||
The task data files (pending.data, completed.data and undo.data),
|
||||
@@ -24,12 +24,12 @@ You may prefer instead to read the help online at:
|
||||
http://vimdoc.sourceforge.net/htmldoc/syntax.html#syntax
|
||||
|
||||
|
||||
Configuring VIM to Understand Task Data
|
||||
Configuring VIM to Understand Taskwarrior Data
|
||||
|
||||
Once you have VIM's syntax highlighting enabled and working with other file
|
||||
types properly, configuring it for use with task is simple. You simply need
|
||||
to copy some files that came with task into your home directory so that you
|
||||
have:
|
||||
types properly, configuring it for use with taskwarrior is simple. You simply
|
||||
need to copy some files that came with taskwarrior into your home directory so
|
||||
that you have:
|
||||
|
||||
~/.vim/ftdetect/task.vim
|
||||
~/.vim/syntax/taskdata.vim
|
||||
@@ -53,7 +53,7 @@ You should then be ready to go.
|
||||
---
|
||||
All four above mentioned files are
|
||||
|
||||
Copyright 2009-2010 John Florian
|
||||
Copyright 2009 - 2011 John Florian
|
||||
|
||||
and are available under the GNU Public License version 2 or later.
|
||||
For the full text of this license, see COPYING.
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
" Vim support file to detect Task Warrior data and configuration files and
|
||||
" Vim support file to detect Taskwarrior data and configuration files and
|
||||
" single task edits
|
||||
"
|
||||
" Maintainer: John Florian <jflorian@doubledog.org>
|
||||
" Updated: Thu Dec 10 18:28:26 EST 2009
|
||||
"
|
||||
" Copyright 2009-2010 John Florian
|
||||
" Copyright 2009 - 2011 John Florian
|
||||
"
|
||||
" This file is available under the GNU Public License version 2 or later.
|
||||
" For the full text of this license, see COPYING.
|
||||
|
||||
|
||||
" Task Warrior data files
|
||||
" Taskwarrior data files
|
||||
au BufRead,BufNewFile {pending,completed,undo}.data set filetype=taskdata
|
||||
|
||||
" Task Warrior configuration file
|
||||
" Taskwarrior configuration file
|
||||
au BufRead,BufNewFile .taskrc set filetype=taskrc
|
||||
|
||||
" Task Warrior handling of 'task 42 edit'
|
||||
" Taskwarrior handling of 'task 42 edit'
|
||||
au BufRead,BufNewFile *.task set filetype=taskedit
|
||||
|
||||
" vim:noexpandtab
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
" Vim syntax file
|
||||
" Language: task data
|
||||
" Language: taskwarrior data
|
||||
" Maintainer: John Florian <jflorian@doubledog.org>
|
||||
" Updated: Wed Jul 8 19:46:20 EDT 2009
|
||||
"
|
||||
" Copyright 2009-2010 John Florian
|
||||
" Copyright 2009 - 2011 John Florian
|
||||
"
|
||||
" This file is available under the GNU Public License version 2 or later.
|
||||
" For the full text of this license, see COPYING.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: John Florian <jflorian@doubledog.org>
|
||||
" Updated: Wed Jul 8 19:46:32 EDT 2009
|
||||
"
|
||||
" Copyright 2009-2010 John Florian
|
||||
" Copyright 2009 - 2011 John Florian
|
||||
"
|
||||
" This file is available under the GNU Public License version 2 or later.
|
||||
" For the full text of this license, see COPYING.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
" Vim syntax file
|
||||
" Language: support for editing task configuration file
|
||||
" Language: support for editing taskwarrior configuration file
|
||||
" Maintainer: John Florian <jflorian@doubledog.org>
|
||||
" Updated: Sat Feb 20 14:14:44 EST 2010
|
||||
"
|
||||
" Copyright 2009-2010 John Florian
|
||||
" Copyright 2009 - 2011 John Florian
|
||||
"
|
||||
" This file is available under the GNU Public License version 2 or later.
|
||||
" For the full text of this license, see COPYING.
|
||||
|
||||
@@ -1,17 +1,12 @@
|
||||
#compdef task
|
||||
#
|
||||
# This script is currently unmaintained and was released for an earlier version
|
||||
# of task. We welcome any zsh user that wants to contribute to task to take a
|
||||
# look at this script and either confirm its working status or improve it.
|
||||
# Please contact us at support@taskwarrior.org if you have further questions on
|
||||
# how to contribute to task.
|
||||
#
|
||||
# zsh completion for task
|
||||
# zsh completion for taskwarrior
|
||||
#
|
||||
# Copyright 2010 - 2011 Johannes Schlatow
|
||||
# Copyright 2009 P.C. Shyamshankar
|
||||
# All rights reserved.
|
||||
#
|
||||
# This script is part of the task project.
|
||||
# This script is part of the taskwarrior project.
|
||||
#
|
||||
# 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
|
||||
@@ -32,9 +27,54 @@
|
||||
# 02110-1301
|
||||
# USA
|
||||
#
|
||||
|
||||
typeset -g _task_cmds
|
||||
typeset -g _task_cmds _task_projects _task_tags _task_config _task_modifiers
|
||||
_task_projects=($(task _projects))
|
||||
_task_tags=($(task _tags))
|
||||
_task_ids=($(task _ids))
|
||||
_task_config=($(task _config))
|
||||
_task_modifiers=(
|
||||
'before' \
|
||||
'after' \
|
||||
'none' \
|
||||
'any' \
|
||||
'is' \
|
||||
'isnt' \
|
||||
'has' \
|
||||
'hasnt' \
|
||||
'startswith' \
|
||||
'endswith' \
|
||||
'word' \
|
||||
'noword'
|
||||
)
|
||||
_task_cmds=($(task _commands))
|
||||
_task_zshcmds=( ${(f)"$(task _zshcommands)"} )
|
||||
|
||||
|
||||
_task_idCmds=(
|
||||
'append' \
|
||||
'prepend' \
|
||||
'annotate' \
|
||||
'denotate' \
|
||||
'edit' \
|
||||
'duplicate' \
|
||||
'info' \
|
||||
'start' \
|
||||
'stop' \
|
||||
'done'
|
||||
)
|
||||
|
||||
_task_idCmdsDesc=(
|
||||
'append:Appends more description to an existing task.' \
|
||||
'prepend:Prepends more description to an existing task.' \
|
||||
'annotate:Adds an annotation to an existing task.' \
|
||||
'denotate:Deletes an annotation of an existing task.' \
|
||||
'edit:Launches an editor to let you modify a task directly.' \
|
||||
'duplicate:Duplicates the specified task, and allows modifications.' \
|
||||
'info:Shows all data, metadata for specified task.' \
|
||||
'start:Marks specified task as started.' \
|
||||
'stop:Removes the start time from a task.' \
|
||||
'done:Marks the specified task as completed.'
|
||||
)
|
||||
|
||||
_task() {
|
||||
_arguments -s -S \
|
||||
@@ -42,18 +82,196 @@ _task() {
|
||||
return 0
|
||||
}
|
||||
|
||||
local -a reply args word
|
||||
word=$'[^\0]#\0'
|
||||
|
||||
# priorities
|
||||
local -a task_priorities
|
||||
_regex_words values 'task priorities' \
|
||||
'H:High' \
|
||||
'M:Middle' \
|
||||
'L:Low'
|
||||
task_priorities=("$reply[@]")
|
||||
|
||||
# projects
|
||||
local -a task_projects
|
||||
task_projects=(
|
||||
/"$word"/
|
||||
":values:task projects:compadd -a _task_projects"
|
||||
)
|
||||
|
||||
local -a _task_dates
|
||||
_regex_words values 'task dates' \
|
||||
'tod*ay:Today' \
|
||||
'yes*terday:Yesterday' \
|
||||
'tom*orrow:Tomorrow' \
|
||||
'sow:Start of week' \
|
||||
'soww:Start of work week' \
|
||||
'socw:Start of calendar week' \
|
||||
'som:Start of month' \
|
||||
'soy:Start of year' \
|
||||
'eow:End of week' \
|
||||
'eoww:End of work week' \
|
||||
'eocw:End of calendar week' \
|
||||
'eom:End of month' \
|
||||
'eoy:End of year' \
|
||||
'mon:Monday' \
|
||||
'tue:Tuesday'\
|
||||
'wed:Wednesday' \
|
||||
'thu:Thursday' \
|
||||
'fri:Friday' \
|
||||
'sat:Saturday' \
|
||||
'sun:Sunday'
|
||||
_task_dates=("$reply[@]")
|
||||
|
||||
local -a _task_reldates
|
||||
_regex_words values 'task reldates' \
|
||||
'hrs:n hours' \
|
||||
'day:n days' \
|
||||
'1st:first' \
|
||||
'2nd:second' \
|
||||
'3rd:third' \
|
||||
'th:4th, 5th, etc.' \
|
||||
'wks:weeks'
|
||||
_task_reldates=("$reply[@]")
|
||||
|
||||
task_dates=(
|
||||
\( "$_task_dates[@]" \|
|
||||
\( /$'[0-9][0-9]#'/- \( "$_task_reldates[@]" \) \)
|
||||
\)
|
||||
)
|
||||
|
||||
_regex_words values 'task frequencies' \
|
||||
'daily:Every day' \
|
||||
'day:Every day' \
|
||||
'weekdays:Every day skipping weekend days' \
|
||||
'weekly:Every week' \
|
||||
'biweekly:Every two weeks' \
|
||||
'fortnight:Every two weeks' \
|
||||
'quarterly:Every three months' \
|
||||
'semiannual:Every six months' \
|
||||
'annual:Every year' \
|
||||
'yearly:Every year' \
|
||||
'biannual:Every two years' \
|
||||
'biyearly:Every two years'
|
||||
_task_freqs=("$reply[@]")
|
||||
|
||||
local -a _task_frequencies
|
||||
_regex_words values 'task frequencies' \
|
||||
'd:days' \
|
||||
'w:weeks' \
|
||||
'q:quarters' \
|
||||
'y:years'
|
||||
_task_frequencies=("$reply[@]")
|
||||
|
||||
task_freqs=(
|
||||
\( "$_task_freqs[@]" \|
|
||||
\( /$'[0-9][0-9]#'/- \( "$_task_frequencies[@]" \) \)
|
||||
\)
|
||||
)
|
||||
|
||||
# attributes
|
||||
local -a task_attributes
|
||||
_regex_words -t ':' default 'task attributes' \
|
||||
'pro*ject:Project name:$task_projects' \
|
||||
'du*e:Due date:$task_dates' \
|
||||
'wa*it:Date until task becomes pending:$task_dates' \
|
||||
're*cur:Recurrence frequency:$task_freqs' \
|
||||
'pri*ority:priority:$task_priorities' \
|
||||
'un*til:Recurrence end date:$task_dates' \
|
||||
'fg:Foreground color' \
|
||||
'bg:Background color' \
|
||||
'li*mit:Desired number of rows in report'
|
||||
task_attributes=("$reply[@]")
|
||||
|
||||
args=(
|
||||
\( "$task_attributes[@]" \|
|
||||
\( /'(project|due|wait|recur|priority|until|fg|bg|limit).'/- \( /$'[^:]#:'/ ":default:modifiers:compadd -S ':' -a _task_modifiers" \) \) \|
|
||||
\( /'(rc).'/- \( /$'[^:]#:'/ ":arguments:config:compadd -S ':' -a _task_config" \) \) \|
|
||||
\( /'(+|-)'/- \( /"$word"/ ":values:remove tag:compadd -a _task_tags" \) \) \|
|
||||
\( /"$word"/ \)
|
||||
\) \#
|
||||
)
|
||||
_regex_arguments _task_attributes "${args[@]}"
|
||||
|
||||
## task commands
|
||||
|
||||
# default completion
|
||||
(( $+functions[_task_default] )) ||
|
||||
_task_default() {
|
||||
_task_attributes "$@"
|
||||
}
|
||||
|
||||
# commands expecting an ID
|
||||
(( $+functions[_task_id] )) ||
|
||||
_task_id() {
|
||||
if (( CURRENT < 3 )); then
|
||||
# update IDs
|
||||
_task_zshids=( ${(f)"$(task _zshids)"} )
|
||||
_describe -t values 'task IDs' _task_zshids
|
||||
else
|
||||
_task_attributes "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# merge completion
|
||||
(( $+functions[_task_merge] )) ||
|
||||
_task_merge() {
|
||||
# TODO match URIs in .taskrc
|
||||
_files
|
||||
}
|
||||
|
||||
# push completion
|
||||
(( $+functions[_task_push] )) ||
|
||||
_task_push() {
|
||||
# TODO match URIs in .taskrc
|
||||
_files
|
||||
}
|
||||
|
||||
# pull completion
|
||||
(( $+functions[_task_pull] )) ||
|
||||
_task_pull() {
|
||||
# TODO match URIs in .taskrc
|
||||
_files
|
||||
}
|
||||
|
||||
|
||||
# modify (task [0-9]* ...) completion
|
||||
(( $+functions[_task_modify] )) ||
|
||||
_task_modify() {
|
||||
_describe -t commands 'task command' _task_idCmdsDesc
|
||||
_task_attributes "$@"
|
||||
}
|
||||
|
||||
## first level completion => task sub-command completion
|
||||
(( $+functions[_task_commands] )) ||
|
||||
_task_commands() {
|
||||
local cmd ret=1
|
||||
if (( CURRENT == 1 )); then
|
||||
_describe -t commands 'task command' _task_cmds
|
||||
else
|
||||
local curcontext="${curcontext}"
|
||||
cmd="${_task_cmds[(r)$words[1]:*]%%:*}"
|
||||
if (( CURRENT == 1 )); then
|
||||
# update IDs
|
||||
_task_zshids=( ${(f)"$(task _zshids)"} )
|
||||
|
||||
_describe -t commands 'task command' _task_zshcmds
|
||||
_describe -t values 'task IDs' _task_zshids
|
||||
# TODO match more than one ID
|
||||
elif [[ $words[1] =~ ^[0-9]*$ ]] then
|
||||
_call_function ret _task_modify
|
||||
return ret
|
||||
else
|
||||
# local curcontext="${curcontext}"
|
||||
# cmd="${_task_cmds[(r)$words[1]:*]%%:*}"
|
||||
cmd="${_task_cmds[(r)$words[1]]}"
|
||||
idCmd="${(M)_task_idCmds[@]:#$words[1]}"
|
||||
if (( $#cmd )); then
|
||||
curcontext="${curcontext%:*:*}:task-${cmd}"
|
||||
_call_function ret _task_${cmd} || _message "No command remaining."
|
||||
# curcontext="${curcontext%:*:*}:task-${cmd}"
|
||||
|
||||
if (( $#idCmd )); then
|
||||
_call_function ret _task_id
|
||||
else
|
||||
_call_function ret _task_${cmd} ||
|
||||
_call_function ret _task_default ||
|
||||
_message "No command remaining."
|
||||
fi
|
||||
else
|
||||
_message "Unknown subcommand ${cmd}"
|
||||
fi
|
||||
|
||||
39
src/API.cpp
39
src/API.cpp
@@ -1,7 +1,7 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Task Lua API
|
||||
// Taskwarrior Lua API
|
||||
//
|
||||
// Copyright 2006 - 2010, Paul Beckingham.
|
||||
// Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
// All rights reserved.
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify it under
|
||||
@@ -47,8 +47,8 @@
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <iostream> // TODO Remove
|
||||
#include <algorithm>
|
||||
#include <iostream>
|
||||
#include "Context.h"
|
||||
#include "API.h"
|
||||
|
||||
@@ -58,7 +58,8 @@ Task* the_task = NULL;
|
||||
#ifdef HAVE_LIBLUA
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Returns a string representing the task version number, such as '1.9.0'.
|
||||
// Returns a string representing the taskwarrior version number, such as
|
||||
// '1.9.0'.
|
||||
static int api_task_version (lua_State* L)
|
||||
{
|
||||
lua_pushstring (L, PACKAGE_VERSION);
|
||||
@@ -114,13 +115,6 @@ static int api_task_feature (lua_State* L)
|
||||
#endif
|
||||
}
|
||||
|
||||
else if (name == "ncurses")
|
||||
{
|
||||
#ifdef HAVE_NCURSES
|
||||
value = true;
|
||||
#endif
|
||||
}
|
||||
|
||||
else if (name == "lua")
|
||||
value = true;
|
||||
|
||||
@@ -223,7 +217,8 @@ static int api_task_debug_message (lua_State* L)
|
||||
static int api_task_exit (lua_State* L)
|
||||
{
|
||||
// TODO Is this the correct exception? How does the shell handle this?
|
||||
throw std::string ("Exiting.");
|
||||
std::cout << "Exiting." << std::endl;
|
||||
exit (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -612,14 +607,14 @@ bool API::callProgramHook (
|
||||
|
||||
// Make call.
|
||||
if (lua_pcall (L, 0, 2, 0) != 0)
|
||||
throw std::string ("Error calling '") + function + "' - " + lua_tostring (L, -1);
|
||||
throw std::string ("Error calling '") + function + "' - " + lua_tostring (L, -1) + ".";
|
||||
|
||||
// Call successful - get return values.
|
||||
if (!lua_isnumber (L, -2))
|
||||
throw std::string ("Error: '") + function + "' did not return a success indicator";
|
||||
throw std::string ("Error: '") + function + "' did not return a success indicator.";
|
||||
|
||||
if (!lua_isstring (L, -1) && !lua_isnil (L, -1))
|
||||
throw std::string ("Error: '") + function + "' did not return a message or nil";
|
||||
throw std::string ("Error: '") + function + "' did not return a message or nil.";
|
||||
|
||||
int rc = lua_tointeger (L, -2);
|
||||
const char* message = lua_tostring (L, -1);
|
||||
@@ -684,17 +679,17 @@ bool API::callTaskHook (
|
||||
|
||||
// Make call.
|
||||
if (lua_pcall (L, 1, 2, 0) != 0)
|
||||
throw std::string ("Error calling '") + function + "' - " + lua_tostring (L, -1);
|
||||
throw std::string ("Error calling '") + function + "' - " + lua_tostring (L, -1) + ".";
|
||||
|
||||
// Hide the task.
|
||||
the_task = NULL;
|
||||
|
||||
// Call successful - get return values.
|
||||
if (!lua_isnumber (L, -2))
|
||||
throw std::string ("Error: '") + function + "' did not return a success indicator";
|
||||
throw std::string ("Error: '") + function + "' did not return a success indicator.";
|
||||
|
||||
if (!lua_isstring (L, -1) && !lua_isnil (L, -1))
|
||||
throw std::string ("Error: '") + function + "' did not return a message or nil";
|
||||
throw std::string ("Error: '") + function + "' did not return a message or nil.";
|
||||
|
||||
int rc = lua_tointeger (L, -2);
|
||||
const char* message = lua_tostring (L, -1);
|
||||
@@ -737,17 +732,17 @@ bool API::callFieldHook (
|
||||
|
||||
// Make call.
|
||||
if (lua_pcall (L, 2, 3, 0) != 0)
|
||||
throw std::string ("Error calling '") + function + "' - " + lua_tostring (L, -1);
|
||||
throw std::string ("Error calling '") + function + "' - " + lua_tostring (L, -1) + ".";
|
||||
|
||||
// Call successful - get return values.
|
||||
if (!lua_isstring (L, -3))
|
||||
throw std::string ("Error: '") + function + "' did not return a modified value";
|
||||
throw std::string ("Error: '") + function + "' did not return a modified value.";
|
||||
|
||||
if (!lua_isnumber (L, -2))
|
||||
throw std::string ("Error: '") + function + "' did not return a success indicator";
|
||||
throw std::string ("Error: '") + function + "' did not return a success indicator.";
|
||||
|
||||
if (!lua_isstring (L, -1) && !lua_isnil (L, -1))
|
||||
throw std::string ("Error: '") + function + "' did not return a message or nil";
|
||||
throw std::string ("Error: '") + function + "' did not return a message or nil.";
|
||||
|
||||
const char* new_value = lua_tostring (L, -3);
|
||||
int rc = lua_tointeger (L, -2);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// task - a command line task list manager.
|
||||
// taskwarrior - a command line task list manager.
|
||||
//
|
||||
// Copyright 2006 - 2010, Paul Beckingham.
|
||||
// Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
// All rights reserved.
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify it under
|
||||
@@ -27,7 +27,7 @@
|
||||
#ifndef INCLUDED_API
|
||||
#define INCLUDED_API
|
||||
|
||||
#include "auto.h"
|
||||
#include "../auto.h"
|
||||
#ifdef HAVE_LIBLUA
|
||||
|
||||
#include <vector>
|
||||
|
||||
369
src/Att.cpp
369
src/Att.cpp
@@ -1,7 +1,7 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// task - a command line task list manager.
|
||||
// taskwarrior - a command line task list manager.
|
||||
//
|
||||
// Copyright 2006 - 2010, Paul Beckingham.
|
||||
// Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
// All rights reserved.
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify it under
|
||||
@@ -25,16 +25,19 @@
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <algorithm>
|
||||
#include <sstream>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "text.h"
|
||||
#include "Color.h"
|
||||
#include "util.h"
|
||||
#include "Date.h"
|
||||
#include "Duration.h"
|
||||
#include "Context.h"
|
||||
#include "Att.h"
|
||||
#include <text.h>
|
||||
#include <rx.h>
|
||||
#include <Color.h>
|
||||
#include <util.h>
|
||||
#include <Date.h>
|
||||
#include <Duration.h>
|
||||
#include <Context.h>
|
||||
#include <Att.h>
|
||||
#include <main.h>
|
||||
|
||||
extern Context context;
|
||||
|
||||
@@ -50,6 +53,8 @@ static const char* internalNames[] =
|
||||
"limit",
|
||||
"status",
|
||||
"description",
|
||||
"tags",
|
||||
"urgency",
|
||||
// Note that annotations are not listed.
|
||||
};
|
||||
|
||||
@@ -63,6 +68,7 @@ static const char* modifiableNames[] =
|
||||
"recur",
|
||||
"until",
|
||||
"wait",
|
||||
"depends",
|
||||
};
|
||||
|
||||
// Synonyms on the same line.
|
||||
@@ -86,6 +92,22 @@ static const char* modifierNames[] =
|
||||
#define NUM_MODIFIABLE_NAMES (sizeof (modifiableNames) / sizeof (modifiableNames[0]))
|
||||
#define NUM_MODIFIER_NAMES (sizeof (modifierNames) / sizeof (modifierNames[0]))
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
static inline std::string& str_replace (
|
||||
std::string &str,
|
||||
const std::string& search,
|
||||
const std::string& replacement)
|
||||
{
|
||||
std::string::size_type pos = 0;
|
||||
while ((pos = str.find (search, pos)) != std::string::npos)
|
||||
{
|
||||
str.replace (pos, search.length (), replacement);
|
||||
pos += replacement.length ();
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
Att::Att ()
|
||||
: mName ("")
|
||||
@@ -183,14 +205,18 @@ bool Att::valid (const std::string& input) const
|
||||
if (!n.getUntilOneOf (".:", ignored))
|
||||
return false;
|
||||
|
||||
if (n.skip (':') &&
|
||||
(n.getQuoted ('"', ignored) ||
|
||||
n.getUntil (' ', ignored) ||
|
||||
n.getUntilEOS (ignored) ||
|
||||
n.depleted ()))
|
||||
return true;
|
||||
if (n.skip (':'))
|
||||
{
|
||||
if (input.find ('@') <= n.cursor () ||
|
||||
input.find ('/') <= n.cursor ())
|
||||
return false;
|
||||
|
||||
return false;
|
||||
if (n.getQuoted ('"', ignored) ||
|
||||
n.getUntil (' ', ignored) ||
|
||||
n.getUntilEOS (ignored) ||
|
||||
n.depleted ())
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -252,10 +278,11 @@ bool Att::validNameValue (
|
||||
{
|
||||
std::string error = "Ambiguous attribute '" + name + "' - could be either of "; // TODO i18n
|
||||
|
||||
std::sort (matches.begin (), matches.end ());
|
||||
std::string combined;
|
||||
join (combined, ", ", matches);
|
||||
|
||||
throw error + combined;
|
||||
throw error + combined + ".";
|
||||
}
|
||||
|
||||
name = matches[0];
|
||||
@@ -271,17 +298,18 @@ bool Att::validNameValue (
|
||||
autoComplete (mod, candidates, matches);
|
||||
|
||||
if (matches.size () == 0)
|
||||
throw std::string ("Unrecognized modifier '") + mod + "'";
|
||||
throw std::string ("Unrecognized modifier '") + mod + "'.";
|
||||
|
||||
else if (matches.size () != 1)
|
||||
{
|
||||
std::string error = "Ambiguous modifier '" + mod + "' - could be either of "; // TODO i18n
|
||||
|
||||
std::sort (matches.begin (), matches.end ());
|
||||
std::string combined;
|
||||
join (combined, ", ", matches);
|
||||
error += combined;
|
||||
|
||||
throw error + combined;
|
||||
throw error + combined + ".";
|
||||
}
|
||||
|
||||
mod = matches[0];
|
||||
@@ -334,13 +362,45 @@ bool Att::validNameValue (
|
||||
// modify 'value' here accordingly.
|
||||
}
|
||||
|
||||
// Dates can now be either a date, or a duration that is added as an offset
|
||||
// to the current date.
|
||||
else if (name == "due" ||
|
||||
name == "until" ||
|
||||
name == "wait")
|
||||
{
|
||||
// Validate and convert to epoch.
|
||||
if (value != "")
|
||||
value = Date (value, context.config.get ("dateformat")).toEpochString ();
|
||||
{
|
||||
// Try parsing as a duration. If unsuccessful, try again, as a date.
|
||||
try
|
||||
{
|
||||
Date now;
|
||||
Duration dur (value);
|
||||
|
||||
if (dur.negative ())
|
||||
value = (now - (time_t)dur).toEpochString ();
|
||||
else
|
||||
value = (now + (time_t)dur).toEpochString ();
|
||||
}
|
||||
|
||||
// If the date parsing failed, try parsing as a duration. If successful,
|
||||
// add the duration to the current date. If unsuccessful, propagate the
|
||||
// original date parse error.
|
||||
|
||||
// Try parsing as a date. If unsuccessfull, throw.
|
||||
catch (...)
|
||||
{
|
||||
try
|
||||
{
|
||||
value = Date (value, context.config.get ("dateformat")).toEpochString ();
|
||||
}
|
||||
|
||||
catch (std::string& e)
|
||||
{
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else if (name == "recur")
|
||||
@@ -378,7 +438,7 @@ bool Att::validNameValue (
|
||||
"\" is not a valid status. Use 'pending', 'completed', 'deleted', 'recurring' or 'waiting'.";
|
||||
}
|
||||
|
||||
else if (! validInternalName (name) &&
|
||||
else if (! validInternalName (name) &&
|
||||
! validModifiableName (name))
|
||||
throw std::string ("'") + name + "' is not a recognized attribute.";
|
||||
|
||||
@@ -401,17 +461,18 @@ bool Att::validMod (const std::string& mod)
|
||||
std::string Att::type (const std::string& name) const
|
||||
{
|
||||
if (name == "due" ||
|
||||
name == "wait" ||
|
||||
name == "until" ||
|
||||
name == "start" ||
|
||||
name == "entry" ||
|
||||
name == "end" ||
|
||||
name == "wait")
|
||||
name == "end")
|
||||
return "date";
|
||||
|
||||
else if (name == "recur")
|
||||
return "duration";
|
||||
|
||||
else if (name == "limit")
|
||||
else if (name == "limit" ||
|
||||
name == "urgency")
|
||||
return "number";
|
||||
|
||||
else if (name == "priority")
|
||||
@@ -435,10 +496,12 @@ std::string Att::modType (const std::string& name) const
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// ______________
|
||||
// | |
|
||||
// | v
|
||||
// start --> name --> . --> mod --> : --> " --> value --> " --> end
|
||||
// | ^
|
||||
// |_____________________|
|
||||
// | ^ | ^
|
||||
// |_____________________| |_____________|
|
||||
//
|
||||
void Att::parse (const std::string& input)
|
||||
{
|
||||
@@ -466,27 +529,27 @@ void Att::parse (Nibbler& n)
|
||||
if (validMod (mod))
|
||||
mMod = mod;
|
||||
else
|
||||
throw std::string ("The name '") + mod + "' is not a valid modifier"; // TODO i18n
|
||||
throw std::string ("The name '") + mod + "' is not a valid modifier."; // TODO i18n
|
||||
}
|
||||
else
|
||||
throw std::string ("Missing . or : after modifier"); // TODO i18n
|
||||
throw std::string ("Missing . or : after modifier."); // TODO i18n
|
||||
}
|
||||
|
||||
if (n.skip (':'))
|
||||
{
|
||||
// Both quoted and unquoted Att's are accepted.
|
||||
// Consider removing this for a stricter parse.
|
||||
if (n.getQuoted ('"', mValue) ||
|
||||
n.getUntil (' ', mValue))
|
||||
if (n.getQuoted ('"', mValue) ||
|
||||
n.getUntilEOS (mValue))
|
||||
{
|
||||
decode (mValue);
|
||||
}
|
||||
}
|
||||
else
|
||||
throw std::string ("Missing : after attribute name"); // TODO i18n
|
||||
throw std::string ("Missing : after attribute name."); // TODO i18n
|
||||
}
|
||||
else
|
||||
throw std::string ("Missing : after attribute name"); // TODO i18n
|
||||
throw std::string ("Missing : after attribute name."); // TODO i18n
|
||||
|
||||
/* TODO This might be too slow to include. Test this assumption.
|
||||
validNameValue (mName, mMod, mValue);
|
||||
@@ -496,53 +559,108 @@ void Att::parse (Nibbler& n)
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// "this" is the attribute that has modifiers. "other" is the attribute from a
|
||||
// Record that does not have modifiers, but may have a value.
|
||||
//
|
||||
// In other words, the filter:
|
||||
// task list description.contains:foo
|
||||
//
|
||||
// Is represented with:
|
||||
// this = filter (description.contains:foo)
|
||||
// other = actual task data to be matched
|
||||
//
|
||||
bool Att::match (const Att& other) const
|
||||
{
|
||||
// All matches are assumed to pass, any short-circuit on non-match.
|
||||
bool case_sensitive = context.config.getBoolean ("search.case.sensitive");
|
||||
|
||||
// Are regular expressions being used in place of string comparison?
|
||||
bool regex = context.config.getBoolean ("regex");
|
||||
|
||||
// If there are no mods, just perform a straight compare on value.
|
||||
if (mMod == "")
|
||||
{
|
||||
// Exact matches on dates should only compare m/d/y, not h:m:s. This allows
|
||||
// Comapisons like "task list due:today" (bug #405).
|
||||
// comparisons like "task list due:today" (bug #405).
|
||||
std::string which = type (mName);
|
||||
if (which == "date")
|
||||
{
|
||||
if (other.mValue == "")
|
||||
return false;
|
||||
|
||||
Date left (mValue);
|
||||
Date right (other.mValue);
|
||||
|
||||
if (left.year () != right.year () ||
|
||||
left.month () != right.month () ||
|
||||
left.day () != right.day ())
|
||||
if (! left.sameDay (right))
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef FEATURE_REGEX
|
||||
if (regex)
|
||||
{
|
||||
std::string pattern = "^" + mValue + "$";
|
||||
if (!regexMatch (other.mValue, pattern, case_sensitive))
|
||||
return false;
|
||||
}
|
||||
else if (!compare (mValue, other.mValue, (bool) case_sensitive))
|
||||
return false;
|
||||
#else
|
||||
if (!compare (mValue, other.mValue, (bool) case_sensitive))
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
// has = contains as a substring.
|
||||
else if (mMod == "has" || mMod == "contains") // TODO i18n
|
||||
{
|
||||
#ifdef FEATURE_REGEX
|
||||
if (regex)
|
||||
{
|
||||
if (!regexMatch (other.mValue, mValue, case_sensitive))
|
||||
return false;
|
||||
}
|
||||
else if (find (other.mValue, mValue, (bool) case_sensitive) == std::string::npos)
|
||||
return false;
|
||||
#else
|
||||
if (find (other.mValue, mValue, (bool) case_sensitive) == std::string::npos)
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
// is = equal. Nop.
|
||||
else if (mMod == "is" || mMod == "equals") // TODO i18n
|
||||
{
|
||||
#ifdef FEATURE_REGEX
|
||||
if (regex)
|
||||
{
|
||||
std::string pattern = "^" + mValue + "$";
|
||||
if (!regexMatch (other.mValue, pattern, case_sensitive))
|
||||
return false;
|
||||
}
|
||||
else if (!compare (mValue, other.mValue, (bool) case_sensitive))
|
||||
return false;
|
||||
#else
|
||||
if (!compare (mValue, other.mValue, (bool) case_sensitive))
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
// isnt = not equal.
|
||||
else if (mMod == "isnt" || mMod == "not") // TODO i18n
|
||||
{
|
||||
#ifdef FEATURE_REGEX
|
||||
if (regex)
|
||||
{
|
||||
std::string pattern = "^" + mValue + "$";
|
||||
if (regexMatch (other.mValue, pattern, case_sensitive))
|
||||
return false;
|
||||
}
|
||||
else if (compare (mValue, other.mValue, (bool) case_sensitive))
|
||||
return false;
|
||||
#else
|
||||
if (compare (mValue, other.mValue, (bool) case_sensitive))
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
// any = any value, but not empty value.
|
||||
@@ -562,30 +680,66 @@ bool Att::match (const Att& other) const
|
||||
// startswith = first characters must match.
|
||||
else if (mMod == "startswith" || mMod == "left") // TODO i18n
|
||||
{
|
||||
if (other.mValue.length () < mValue.length ())
|
||||
return false;
|
||||
#ifdef FEATURE_REGEX
|
||||
if (regex)
|
||||
{
|
||||
std::string pattern = "^" + mValue;
|
||||
if (!regexMatch (other.mValue, pattern, case_sensitive))
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
#endif
|
||||
if (other.mValue.length () < mValue.length ())
|
||||
return false;
|
||||
|
||||
if (!compare (mValue, other.mValue.substr (0, mValue.length ()), (bool) case_sensitive))
|
||||
return false;
|
||||
return false;
|
||||
#ifdef FEATURE_REGEX
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// endswith = last characters must match.
|
||||
else if (mMod == "endswith" || mMod == "right") // TODO i18n
|
||||
{
|
||||
if (other.mValue.length () < mValue.length ())
|
||||
return false;
|
||||
#ifdef FEATURE_REGEX
|
||||
if (regex)
|
||||
{
|
||||
std::string pattern = mValue + "$";
|
||||
if (!regexMatch (other.mValue, pattern, case_sensitive))
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
#endif
|
||||
if (other.mValue.length () < mValue.length ())
|
||||
return false;
|
||||
|
||||
if (!compare (mValue, other.mValue.substr (
|
||||
other.mValue.length () - mValue.length (),
|
||||
std::string::npos), (bool) case_sensitive))
|
||||
return false;
|
||||
if (!compare (mValue, other.mValue.substr (
|
||||
other.mValue.length () - mValue.length (),
|
||||
std::string::npos), (bool) case_sensitive))
|
||||
return false;
|
||||
#ifdef FEATURE_REGEX
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// hasnt = does not contain as a substring.
|
||||
else if (mMod == "hasnt") // TODO i18n
|
||||
{
|
||||
#ifdef FEATURE_REGEX
|
||||
if (regex)
|
||||
{
|
||||
if (regexMatch (other.mValue, mValue, case_sensitive))
|
||||
return false;
|
||||
}
|
||||
else if (find (other.mValue, mValue, (bool) case_sensitive) != std::string::npos)
|
||||
return false;
|
||||
#else
|
||||
if (find (other.mValue, mValue, (bool) case_sensitive) != std::string::npos)
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
// before = under = below = <
|
||||
@@ -667,30 +821,66 @@ bool Att::match (const Att& other) const
|
||||
// word = contains as a substring, with word boundaries.
|
||||
else if (mMod == "word") // TODO i18n
|
||||
{
|
||||
// Fail if the substring is not found.
|
||||
std::string::size_type sub = find (other.mValue, mValue, (bool) case_sensitive);
|
||||
if (sub == std::string::npos)
|
||||
return false;
|
||||
#ifdef FEATURE_REGEX
|
||||
if (regex && other.mName != "tags")
|
||||
{
|
||||
std::vector <int> start;
|
||||
std::vector <int> end;
|
||||
if (!regexMatch (start, end, other.mValue, mValue, case_sensitive))
|
||||
return false;
|
||||
|
||||
// Also fail if there is no word boundary at beginning and end.
|
||||
if (!isWordStart (other.mValue, sub))
|
||||
return false;
|
||||
if (!isWordStart (other.mValue, start[0]))
|
||||
return false;
|
||||
|
||||
if (!isWordEnd (other.mValue, sub + mValue.length () - 1))
|
||||
return false;
|
||||
if (!isWordEnd (other.mValue, end[0]))
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
#endif
|
||||
// Fail if the substring is not found.
|
||||
std::string::size_type sub = find (other.mValue, mValue, (bool) case_sensitive);
|
||||
if (sub == std::string::npos)
|
||||
return false;
|
||||
|
||||
// Also fail if there is no word boundary at beginning and end.
|
||||
if (!isWordStart (other.mValue, sub))
|
||||
return false;
|
||||
|
||||
if (!isWordEnd (other.mValue, sub + mValue.length () - 1))
|
||||
return false;
|
||||
#ifdef FEATURE_REGEX
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// noword = does not contain as a substring, with word boundaries.
|
||||
else if (mMod == "noword") // TODO i18n
|
||||
{
|
||||
// Fail if the substring is not found.
|
||||
std::string::size_type sub = find (other.mValue, mValue);
|
||||
if (sub != std::string::npos &&
|
||||
isWordStart (other.mValue, sub) &&
|
||||
isWordEnd (other.mValue, sub + mValue.length () - 1))
|
||||
#ifdef FEATURE_REGEX
|
||||
if (regex && other.mName != "tags")
|
||||
{
|
||||
return false;
|
||||
std::vector <int> start;
|
||||
std::vector <int> end;
|
||||
if (regexMatch (start, end, other.mValue, mValue, case_sensitive) &&
|
||||
isWordStart (other.mValue, start[0]) &&
|
||||
isWordEnd (other.mValue, end[0]))
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
#endif
|
||||
// Fail if the substring is not found.
|
||||
std::string::size_type sub = find (other.mValue, mValue);
|
||||
if (sub != std::string::npos &&
|
||||
isWordStart (other.mValue, sub) &&
|
||||
isWordEnd (other.mValue, sub + mValue.length () - 1))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#ifdef FEATURE_REGEX
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -718,7 +908,7 @@ std::string Att::composeF4 () const
|
||||
void Att::mod (const std::string& input)
|
||||
{
|
||||
if (input != "" && !validMod (input))
|
||||
throw std::string ("The name '") + input + "' is not a valid modifier"; // TODO i18n
|
||||
throw std::string ("The name '") + input + "' is not a valid modifier."; // TODO i18n
|
||||
|
||||
mMod = input;
|
||||
}
|
||||
@@ -793,9 +983,7 @@ void Att::enquote (std::string& value) const
|
||||
// that hand-editing the pending.data file could cause.
|
||||
void Att::dequote (std::string& value) const
|
||||
{
|
||||
std::string::size_type quote;
|
||||
while ((quote = value.find ('"')) != std::string::npos)
|
||||
value.replace (quote, 1, "");
|
||||
str_replace (value, "\"", "");
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -804,21 +992,14 @@ void Att::dequote (std::string& value) const
|
||||
// " -> &dquot;
|
||||
// [ -> &open;
|
||||
// ] -> &close;
|
||||
// \ -> \\ (extra chars to disambiguate multi-line comment)
|
||||
void Att::encode (std::string& value) const
|
||||
{
|
||||
std::string::size_type i;
|
||||
|
||||
while ((i = value.find ('\t')) != std::string::npos)
|
||||
value.replace (i, 1, "&tab;"); // no i18n
|
||||
|
||||
while ((i = value.find ('"')) != std::string::npos)
|
||||
value.replace (i, 1, "&dquot;"); // no i18n
|
||||
|
||||
while ((i = value.find ('[')) != std::string::npos)
|
||||
value.replace (i, 1, "&open;"); // no i18n
|
||||
|
||||
while ((i = value.find (']')) != std::string::npos)
|
||||
value.replace (i, 1, "&close;"); // no i18n
|
||||
str_replace (value, "\t", "&tab;");
|
||||
str_replace (value, "\"", "&dquot;");
|
||||
str_replace (value, "[", "&open;");
|
||||
str_replace (value, "]", "&close;");
|
||||
str_replace (value, "\\", "\\\\");
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -832,35 +1013,19 @@ void Att::encode (std::string& value) const
|
||||
// : <- :
|
||||
void Att::decode (std::string& value) const
|
||||
{
|
||||
std::string::size_type i;
|
||||
|
||||
// Supported encodings.
|
||||
while ((i = value.find ("&tab;")) != std::string::npos)
|
||||
value.replace (i, 5, "\t");
|
||||
|
||||
while ((i = value.find ("&dquot;")) != std::string::npos)
|
||||
value.replace (i, 7, "\"");
|
||||
|
||||
while ((i = value.find (""")) != std::string::npos)
|
||||
value.replace (i, 6, "\"");
|
||||
|
||||
while ((i = value.find ("&open;")) != std::string::npos)
|
||||
value.replace (i, 6, "[");
|
||||
|
||||
while ((i = value.find ("&close;")) != std::string::npos)
|
||||
value.replace (i, 7, "]");
|
||||
str_replace (value, "&tab;", "\t");
|
||||
str_replace (value, "&dquot;", "\"");
|
||||
str_replace (value, """, "'");
|
||||
str_replace (value, "&open;", "[");
|
||||
str_replace (value, "&close;", "]");
|
||||
|
||||
// Support for deprecated encodings. These cannot be removed or old files
|
||||
// will not be parsable. Not just old files - completed.data can contain
|
||||
// tasks formatted/encoded using these.
|
||||
while ((i = value.find ("&squot;")) != std::string::npos)
|
||||
value.replace (i, 7, "'");
|
||||
|
||||
while ((i = value.find (",")) != std::string::npos)
|
||||
value.replace (i, 7, ",");
|
||||
|
||||
while ((i = value.find (":")) != std::string::npos)
|
||||
value.replace (i, 7, ":");
|
||||
str_replace (value, "&squot;", "'");
|
||||
str_replace (value, ",", ",");
|
||||
str_replace (value, ":", ":");
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// task - a command line task list manager.
|
||||
// taskwarrior - a command line task list manager.
|
||||
//
|
||||
// Copyright 2006 - 2010, Paul Beckingham.
|
||||
// Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
// All rights reserved.
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify it under
|
||||
|
||||
31
src/CMakeLists.txt
Normal file
31
src/CMakeLists.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
include_directories (${CMAKE_SOURCE_DIR}/src
|
||||
${TASK_INCLUDE_DIRS})
|
||||
|
||||
set (task_SRCS API.cpp API.h Att.cpp Att.h Cmd.cpp Cmd.h Color.cpp Color.h
|
||||
Config.cpp Config.h Context.cpp Context.h Date.cpp Date.h
|
||||
Directory.cpp Directory.h Duration.cpp Duration.h File.cpp
|
||||
File.h Filter.cpp Filter.h Grid.cpp Grid.h Hooks.cpp Hooks.h
|
||||
JSON.cpp JSON.h Keymap.cpp Keymap.h Lisp.cpp Lisp.h Location.cpp
|
||||
Location.h Nibbler.cpp Nibbler.h Path.cpp Path.h Permission.cpp
|
||||
Permission.h Record.cpp Record.h Rectangle.cpp Rectangle.h
|
||||
Sensor.cpp Sensor.h Sequence.cpp Sequence.h StringTable.cpp
|
||||
StringTable.h Subst.cpp Subst.h TDB.cpp TDB.h Table.cpp Table.h
|
||||
Task.cpp Task.h Taskmod.cpp Taskmod.h Thread.cpp Thread.h
|
||||
Timer.cpp Timer.h Transport.cpp Transport.h TransportSSH.cpp
|
||||
TransportSSH.h TransportRSYNC.cpp TransportRSYNC.h
|
||||
TransportCurl.cpp TransportCurl.h Tree.cpp Tree.h burndown.cpp
|
||||
command.cpp custom.cpp dependency.cpp diag.cpp edit.cpp
|
||||
export.cpp history.cpp i18n.h import.cpp interactive.cpp
|
||||
recur.cpp report.cpp rules.cpp rx.cpp rx.h text.cpp text.h
|
||||
utf8.cpp utf8.h util.cpp util.h Uri.cpp Uri.h)
|
||||
|
||||
add_library (task STATIC ${task_SRCS})
|
||||
add_executable (task_executable main.cpp)
|
||||
target_link_libraries (task_executable task ${TASK_LIBRARIES})
|
||||
set_property (TARGET task_executable PROPERTY OUTPUT_NAME "task")
|
||||
|
||||
install (TARGETS task_executable DESTINATION ${TASK_BINDIR})
|
||||
|
||||
set (CMAKE_BUILD_TYPE debug)
|
||||
set (CMAKE_C_FLAGS_DEBUG "-ggdb3")
|
||||
set (CMAKE_C_FLAGS_RELEASE "-O3")
|
||||
192
src/Cmd.cpp
192
src/Cmd.cpp
@@ -1,7 +1,7 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// task - a command line task list manager.
|
||||
// taskwarrior - a command line task list manager.
|
||||
//
|
||||
// Copyright 2006 - 2010, Paul Beckingham.
|
||||
// Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
// All rights reserved.
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify it under
|
||||
@@ -26,12 +26,12 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <algorithm>
|
||||
#include "Cmd.h"
|
||||
#include "Context.h"
|
||||
#include "util.h"
|
||||
#include "text.h"
|
||||
#include "i18n.h"
|
||||
#include "main.h"
|
||||
#include <Cmd.h>
|
||||
#include <Context.h>
|
||||
#include <util.h>
|
||||
#include <text.h>
|
||||
#include <i18n.h>
|
||||
#include <main.h>
|
||||
|
||||
extern Context context;
|
||||
|
||||
@@ -55,45 +55,67 @@ Cmd::~Cmd ()
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Determines whether the string represents a unique command name or custom
|
||||
// report name.
|
||||
//
|
||||
// To be a valid command:
|
||||
// 1. 'input' should autocomplete to one of 'commands'.
|
||||
bool Cmd::valid (const std::string& input)
|
||||
{
|
||||
load ();
|
||||
|
||||
std::vector <std::string> matches;
|
||||
autoComplete (lowerCase (context.canonicalize (input)), commands, matches);
|
||||
return matches.size () == 1 ? true : false;
|
||||
autoComplete (lowerCase (input), commands, matches);
|
||||
if (matches.size () == 1)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Determines whether the string represents a valid custom report name.
|
||||
//
|
||||
// To be a valid custom command:
|
||||
// 1. 'input' should autocomplete to one of 'commands'.
|
||||
// 2. the result, canonicalized, should autocomplete to one of
|
||||
// 'customreports'.
|
||||
bool Cmd::validCustom (const std::string& input)
|
||||
{
|
||||
load ();
|
||||
|
||||
std::vector <std::string> matches;
|
||||
autoComplete (lowerCase (context.canonicalize (input)), customReports, matches);
|
||||
return matches.size () == 1 ? true : false;
|
||||
autoComplete (lowerCase (input), commands, matches);
|
||||
if (matches.size () == 1)
|
||||
{
|
||||
std::string canonical = context.canonicalize (matches[0]);
|
||||
matches.clear ();
|
||||
autoComplete (canonical, customReports, matches);
|
||||
if (matches.size () == 1)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// To be a valid custom command:
|
||||
// 1. 'input' should autocomplete to one of 'commands'.
|
||||
// 2. the result may then canonicalize to another command.
|
||||
void Cmd::parse (const std::string& input)
|
||||
{
|
||||
load ();
|
||||
|
||||
std::string candidate = lowerCase (context.canonicalize (input));
|
||||
|
||||
std::vector <std::string> matches;
|
||||
autoComplete (candidate, commands, matches);
|
||||
autoComplete (input, commands, matches);
|
||||
if (1 == matches.size ())
|
||||
command = matches[0];
|
||||
command = context.canonicalize (matches[0]);
|
||||
|
||||
else if (0 == matches.size ())
|
||||
command = "";
|
||||
|
||||
else
|
||||
{
|
||||
std::string error = "Ambiguous command '" + candidate + "' - could be either of "; // TODO i18n
|
||||
std::string error = "Ambiguous command '" + input + "' - could be either of "; // TODO i18n
|
||||
|
||||
std::sort (matches.begin (), matches.end ());
|
||||
std::string combined;
|
||||
join (combined, ", ", matches);
|
||||
throw error + combined;
|
||||
@@ -112,44 +134,56 @@ void Cmd::load ()
|
||||
commands.push_back ("_ids");
|
||||
commands.push_back ("_config");
|
||||
commands.push_back ("_version");
|
||||
commands.push_back ("_merge");
|
||||
commands.push_back ("_urgency");
|
||||
commands.push_back ("_query");
|
||||
commands.push_back ("_zshcommands");
|
||||
commands.push_back ("_zshids");
|
||||
commands.push_back ("export.csv");
|
||||
commands.push_back ("export.ical");
|
||||
commands.push_back ("export.yaml");
|
||||
commands.push_back ("history.monthly");
|
||||
commands.push_back ("history.annual");
|
||||
commands.push_back ("ghistory.monthly");
|
||||
commands.push_back ("ghistory.annual");
|
||||
commands.push_back ("burndown.daily");
|
||||
commands.push_back ("burndown.weekly");
|
||||
commands.push_back ("burndown.monthly");
|
||||
commands.push_back ("count");
|
||||
|
||||
// Commands whose names are localized.
|
||||
commands.push_back (context.stringtable.get (CMD_ADD, "add"));
|
||||
commands.push_back (context.stringtable.get (CMD_APPEND, "append"));
|
||||
commands.push_back (context.stringtable.get (CMD_ANNOTATE, "annotate"));
|
||||
commands.push_back (context.stringtable.get (CMD_DENOTATE, "denotate"));
|
||||
commands.push_back (context.stringtable.get (CMD_CALENDAR, "calendar"));
|
||||
commands.push_back (context.stringtable.get (CMD_COLORS, "colors"));
|
||||
commands.push_back (context.stringtable.get (CMD_CONFIG, "config"));
|
||||
commands.push_back (context.stringtable.get (CMD_SHOW, "show"));
|
||||
commands.push_back (context.stringtable.get (CMD_DELETE, "delete"));
|
||||
commands.push_back (context.stringtable.get (CMD_DONE, "done"));
|
||||
commands.push_back (context.stringtable.get (CMD_DUPLICATE, "duplicate"));
|
||||
commands.push_back (context.stringtable.get (CMD_EDIT, "edit"));
|
||||
commands.push_back (context.stringtable.get (CMD_HELP, "help"));
|
||||
commands.push_back (context.stringtable.get (CMD_IMPORT, "import"));
|
||||
commands.push_back (context.stringtable.get (CMD_INFO, "info"));
|
||||
commands.push_back (context.stringtable.get (CMD_LOG, "log"));
|
||||
commands.push_back (context.stringtable.get (CMD_PREPEND, "prepend"));
|
||||
commands.push_back (context.stringtable.get (CMD_PROJECTS, "projects"));
|
||||
commands.push_back (context.stringtable.get (CMD_ADD, "add"));
|
||||
commands.push_back (context.stringtable.get (CMD_APPEND, "append"));
|
||||
commands.push_back (context.stringtable.get (CMD_ANNOTATE, "annotate"));
|
||||
commands.push_back (context.stringtable.get (CMD_DENOTATE, "denotate"));
|
||||
commands.push_back (context.stringtable.get (CMD_CALENDAR, "calendar"));
|
||||
commands.push_back (context.stringtable.get (CMD_COLORS, "colors"));
|
||||
commands.push_back (context.stringtable.get (CMD_CONFIG, "config"));
|
||||
commands.push_back (context.stringtable.get (CMD_SHOW, "show"));
|
||||
commands.push_back (context.stringtable.get (CMD_DELETE, "delete"));
|
||||
commands.push_back (context.stringtable.get (CMD_DIAGNOSTICS, "diagnostics"));
|
||||
commands.push_back (context.stringtable.get (CMD_DONE, "done"));
|
||||
commands.push_back (context.stringtable.get (CMD_DUPLICATE, "duplicate"));
|
||||
commands.push_back (context.stringtable.get (CMD_EDIT, "edit"));
|
||||
commands.push_back (context.stringtable.get (CMD_HELP, "help"));
|
||||
commands.push_back (context.stringtable.get (CMD_IMPORT, "import"));
|
||||
commands.push_back (context.stringtable.get (CMD_INFO, "info"));
|
||||
commands.push_back (context.stringtable.get (CMD_LOG, "log"));
|
||||
commands.push_back (context.stringtable.get (CMD_PREPEND, "prepend"));
|
||||
commands.push_back (context.stringtable.get (CMD_PROJECTS, "projects"));
|
||||
#ifdef FEATURE_SHELL
|
||||
commands.push_back (context.stringtable.get (CMD_SHELL, "shell"));
|
||||
commands.push_back (context.stringtable.get (CMD_SHELL, "shell"));
|
||||
#endif
|
||||
commands.push_back (context.stringtable.get (CMD_START, "start"));
|
||||
commands.push_back (context.stringtable.get (CMD_STATS, "stats"));
|
||||
commands.push_back (context.stringtable.get (CMD_STOP, "stop"));
|
||||
commands.push_back (context.stringtable.get (CMD_SUMMARY, "summary"));
|
||||
commands.push_back (context.stringtable.get (CMD_TAGS, "tags"));
|
||||
commands.push_back (context.stringtable.get (CMD_TIMESHEET, "timesheet"));
|
||||
commands.push_back (context.stringtable.get (CMD_UNDO, "undo"));
|
||||
commands.push_back (context.stringtable.get (CMD_VERSION, "version"));
|
||||
commands.push_back (context.stringtable.get (CMD_START, "start"));
|
||||
commands.push_back (context.stringtable.get (CMD_STATS, "stats"));
|
||||
commands.push_back (context.stringtable.get (CMD_STOP, "stop"));
|
||||
commands.push_back (context.stringtable.get (CMD_SUMMARY, "summary"));
|
||||
commands.push_back (context.stringtable.get (CMD_TAGS, "tags"));
|
||||
commands.push_back (context.stringtable.get (CMD_TIMESHEET, "timesheet"));
|
||||
commands.push_back (context.stringtable.get (CMD_UNDO, "undo"));
|
||||
commands.push_back (context.stringtable.get (CMD_VERSION, "version"));
|
||||
commands.push_back (context.stringtable.get (CMD_MERGE, "merge"));
|
||||
commands.push_back (context.stringtable.get (CMD_PUSH, "push"));
|
||||
commands.push_back (context.stringtable.get (CMD_PULL, "pull"));
|
||||
|
||||
// Now load the custom reports.
|
||||
std::vector <std::string> all;
|
||||
@@ -177,6 +211,10 @@ void Cmd::load ()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Now load the aliases.
|
||||
foreach (i, context.aliases)
|
||||
commands.push_back (i->first);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,31 +237,42 @@ void Cmd::allCommands (std::vector <std::string>& all) const
|
||||
// Commands that do not directly modify the data files.
|
||||
bool Cmd::isReadOnlyCommand ()
|
||||
{
|
||||
if (command == "_projects" ||
|
||||
command == "_tags" ||
|
||||
command == "_commands" ||
|
||||
command == "_ids" ||
|
||||
command == "_config" ||
|
||||
command == "_version" ||
|
||||
command == "export.csv" ||
|
||||
command == "export.ical" ||
|
||||
command == "history.monthly" ||
|
||||
command == "history.annual" ||
|
||||
command == "ghistory.monthly" ||
|
||||
command == "ghistory.annual" ||
|
||||
command == context.stringtable.get (CMD_CALENDAR, "calendar") ||
|
||||
command == context.stringtable.get (CMD_COLORS, "colors") ||
|
||||
command == context.stringtable.get (CMD_CONFIG, "config") ||
|
||||
command == context.stringtable.get (CMD_SHOW, "show") ||
|
||||
command == context.stringtable.get (CMD_HELP, "help") ||
|
||||
command == context.stringtable.get (CMD_INFO, "info") ||
|
||||
command == context.stringtable.get (CMD_PROJECTS, "projects") ||
|
||||
command == context.stringtable.get (CMD_SHELL, "shell") ||
|
||||
command == context.stringtable.get (CMD_STATS, "stats") ||
|
||||
command == context.stringtable.get (CMD_SUMMARY, "summary") ||
|
||||
command == context.stringtable.get (CMD_TAGS, "tags") ||
|
||||
command == context.stringtable.get (CMD_TIMESHEET, "timesheet") ||
|
||||
command == context.stringtable.get (CMD_VERSION, "version") ||
|
||||
if (command == "_projects" ||
|
||||
command == "_tags" ||
|
||||
command == "_commands" ||
|
||||
command == "_ids" ||
|
||||
command == "_config" ||
|
||||
command == "_version" ||
|
||||
command == "_urgency" ||
|
||||
command == "_query" ||
|
||||
command == "_zshcommands" ||
|
||||
command == "_zshids" ||
|
||||
command == "export.csv" ||
|
||||
command == "export.ical" ||
|
||||
command == "export.yaml" ||
|
||||
command == "history.monthly" ||
|
||||
command == "history.annual" ||
|
||||
command == "ghistory.monthly" ||
|
||||
command == "ghistory.annual" ||
|
||||
command == "burndown.daily" ||
|
||||
command == "burndown.weekly" ||
|
||||
command == "burndown.monthly" ||
|
||||
command == "count" ||
|
||||
command == context.stringtable.get (CMD_CALENDAR, "calendar") ||
|
||||
command == context.stringtable.get (CMD_COLORS, "colors") ||
|
||||
command == context.stringtable.get (CMD_DIAGNOSTICS, "diagnostics") ||
|
||||
command == context.stringtable.get (CMD_CONFIG, "config") ||
|
||||
command == context.stringtable.get (CMD_SHOW, "show") ||
|
||||
command == context.stringtable.get (CMD_HELP, "help") ||
|
||||
command == context.stringtable.get (CMD_INFO, "info") ||
|
||||
command == context.stringtable.get (CMD_PROJECTS, "projects") ||
|
||||
command == context.stringtable.get (CMD_PUSH, "push") ||
|
||||
command == context.stringtable.get (CMD_SHELL, "shell") ||
|
||||
command == context.stringtable.get (CMD_STATS, "stats") ||
|
||||
command == context.stringtable.get (CMD_SUMMARY, "summary") ||
|
||||
command == context.stringtable.get (CMD_TAGS, "tags") ||
|
||||
command == context.stringtable.get (CMD_TIMESHEET, "timesheet") ||
|
||||
command == context.stringtable.get (CMD_VERSION, "version") ||
|
||||
validCustom (command))
|
||||
return true;
|
||||
|
||||
@@ -234,7 +283,7 @@ bool Cmd::isReadOnlyCommand ()
|
||||
// Commands that directly modify the data files.
|
||||
bool Cmd::isWriteCommand ()
|
||||
{
|
||||
if (command == "_merge" ||
|
||||
if (command == context.stringtable.get (CMD_MERGE, "merge") ||
|
||||
command == context.stringtable.get (CMD_ADD, "add") ||
|
||||
command == context.stringtable.get (CMD_APPEND, "append") ||
|
||||
command == context.stringtable.get (CMD_ANNOTATE, "annotate") ||
|
||||
@@ -246,6 +295,7 @@ bool Cmd::isWriteCommand ()
|
||||
command == context.stringtable.get (CMD_IMPORT, "import") ||
|
||||
command == context.stringtable.get (CMD_LOG, "log") ||
|
||||
command == context.stringtable.get (CMD_PREPEND, "prepend") ||
|
||||
command == context.stringtable.get (CMD_PULL, "pull") ||
|
||||
command == context.stringtable.get (CMD_START, "start") ||
|
||||
command == context.stringtable.get (CMD_STOP, "stop") ||
|
||||
command == context.stringtable.get (CMD_UNDO, "undo"))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// task - a command line task list manager.
|
||||
// taskwarrior - a command line task list manager.
|
||||
//
|
||||
// Copyright 2006 - 2010, Paul Beckingham.
|
||||
// Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
// All rights reserved.
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify it under
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// task - a command line task list manager.
|
||||
// taskwarrior - a command line task list manager.
|
||||
//
|
||||
// Copyright 2006 - 2010, Paul Beckingham.
|
||||
// Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||
// All rights reserved.
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify it under
|
||||
@@ -127,15 +127,18 @@ Color::Color (const std::string& spec)
|
||||
// X where X is one of black, red, blue ...
|
||||
else if ((index = find (word)) != -1)
|
||||
{
|
||||
if (bg)
|
||||
if (index)
|
||||
{
|
||||
bg_value |= _COLOR_HASBG;
|
||||
bg_value |= index << 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
fg_value |= _COLOR_HASFG;
|
||||
fg_value |= index;
|
||||
if (bg)
|
||||
{
|
||||
bg_value |= _COLOR_HASBG;
|
||||
bg_value |= index << 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
fg_value |= _COLOR_HASFG;
|
||||
fg_value |= index;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -349,24 +352,26 @@ void Color::blend (const Color& other)
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Upgrade either color, if necessary.
|
||||
if (!(value & _COLOR_256)) upgrade ();
|
||||
if (!(c.value & _COLOR_256)) c.upgrade ();
|
||||
|
||||
// 256 <-- 256.
|
||||
if (c.value & _COLOR_HASFG)
|
||||
else
|
||||
{
|
||||
value |= _COLOR_HASFG; // There is now a color.
|
||||
value &= ~_COLOR_FG; // Remove previous color.
|
||||
value |= (c.value & _COLOR_FG); // Apply other color.
|
||||
}
|
||||
// Upgrade either color, if necessary.
|
||||
if (!(value & _COLOR_256)) upgrade ();
|
||||
if (!(c.value & _COLOR_256)) c.upgrade ();
|
||||
|
||||
if (c.value & _COLOR_HASBG)
|
||||
{
|
||||
value |= _COLOR_HASBG; // There is now a color.
|
||||
value &= ~_COLOR_BG; // Remove previous color.
|
||||
value |= (c.value & _COLOR_BG); // Apply other color.
|
||||
// 256 <-- 256.
|
||||
if (c.value & _COLOR_HASFG)
|
||||
{
|
||||
value |= _COLOR_HASFG; // There is now a color.
|
||||
value &= ~_COLOR_FG; // Remove previous color.
|
||||
value |= (c.value & _COLOR_FG); // Apply other color.
|
||||
}
|
||||
|
||||
if (c.value & _COLOR_HASBG)
|
||||
{
|
||||
value |= _COLOR_HASBG; // There is now a color.
|
||||
value &= ~_COLOR_BG; // Remove previous color.
|
||||
value |= (c.value & _COLOR_BG); // Apply other color.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user