Commit graph

637 commits

Author SHA1 Message Date
a9d0f3d53a Refactor imag-edit to new store iterator interface 2018-05-01 17:44:01 +02:00
dd453659ed Refactor imag-mv to fit new store iterator interface 2018-05-01 17:44:01 +02:00
e6244d7e9e Refactor imag-todo to fit new store iterator interface 2018-05-01 17:44:01 +02:00
eaf8148cda Refactor imag-ids to fit new store iterator interface 2018-05-01 17:44:01 +02:00
40a04376ed Refactor imag-link to fit new store iterator interface 2018-05-01 17:44:01 +02:00
d45eef299e
Merge pull request #1476 from matthiasbeyer/imag-diagnostics/refactor
Minify code with helper macro
2018-04-30 21:49:24 +02:00
424a060cc8
Merge pull request #1475 from matthiasbeyer/imag-diagnostics/flush-cache
imag-diagnostics: flush cache
2018-04-30 21:07:56 +02:00
004faaa905 Performe cache flushing during aggregation 2018-04-30 18:40:19 +02:00
b713718693 Minify code with helper macro 2018-04-30 14:15:34 +02:00
58a6eea573 Remove the edit command
The edit command of imag-diary gets removed by this patch.

The rationale is that imag-edit is way more powerful and thus, not every
other imag module should implement an edit command. Chaining
`imag-diary list` and `imag edit -I` is encouraged.

We still need the edit functionality in imag-diary, as `imag diary
create` shall spawn an editor, still. We only remove the ability for
editing of existing entries with this patch.
2018-04-30 14:04:16 +02:00
6d21d8eb49 Update dependency: filters: 0.2 -> 0.3 2018-04-29 10:46:36 +02:00
0976cab014
Merge pull request #1464 from matthiasbeyer/libimagentrygps/32-bit-gps-values
libimagentrygps: 32 bit gps values
2018-04-29 00:35:21 +02:00
dbb39475d9 Upgrade variables to 64 bit 2018-04-28 23:27:12 +02:00
f493b4b8c3 Fix: Allow second to be missing 2018-04-28 23:18:02 +02:00
713621337f Adapt for new libimagcontact interface 2018-04-27 16:57:48 +02:00
932ba3e7d4 Set extension or warn if none there
In case of auto-generating the file name, we should add an extension.
If we do not auto-generate the file name, we should warn that the
extension for the file is missing.
2018-04-27 13:58:46 +02:00
493fa0226c
Merge pull request #1453 from matthiasbeyer/imag-contact/create-uid
Fix: Generate UID when creating a contact
2018-04-26 16:16:33 +02:00
ad9eb62376 Fix: Generate UID when creating a contact 2018-04-26 14:43:21 +02:00
07e804a7c8 Fix: Make most fields optional 2018-04-26 14:01:53 +02:00
d6f8751f6e Reimplement imag-contact 2018-04-25 13:45:00 +02:00
a83d10fb1e Remove feature usage 2018-04-25 13:45:00 +02:00
b90abfb868 Deny non-absolut import pathes 2018-04-25 10:33:12 +02:00
0e567e2358
Merge pull request #1445 from matthiasbeyer/imag-view/seperator
imag-view argument to put seperator between shown entries
2018-04-25 10:01:36 +02:00
95a4816604 Implement imag-view argument to put seperator between shown entries 2018-04-24 22:49:53 +02:00
be74afd031 Remove "dump" subcommand 2018-04-24 22:16:40 +02:00
c2fd3fa94e Add support for formatted markdown output
This patch also removes the (unused) "compile" subcommand and replaces
it with a flag "-c" / "--compile" which prints the output in formatted
to the terminal.

Compiling the output from markdown to HTML and showing in the browser is
not yet possible.
2018-04-24 18:06:45 +02:00
279f7ef2aa Fix: Pass output stream to view_entries() 2018-04-24 16:46:23 +02:00
653db333e6 Fix imag-view for new view_entry() interface 2018-04-24 16:46:23 +02:00
726e4c515f
Merge pull request #1422 from matthiasbeyer/imag-git/init
imag-git: init
2018-04-24 15:26:19 +02:00
8a5abb22f4 Generate completion for imag-git 2018-04-24 13:56:11 +02:00
055a55c9f0 Add imag-git command 2018-04-24 13:56:11 +02:00
09d34783cb Fix imag-mail to list from appropriate collection 2018-04-24 13:40:42 +02:00
22fb26dc12 Replace Store::retrieve_for_module() with own iterator type 2018-04-24 13:40:42 +02:00
7d3224a258
Merge pull request #1437 from matthiasbeyer/imag/fix-doubled-output
Fix: Do not inherit stdout here
2018-04-22 16:12:32 +02:00
9303a72a28
Merge pull request #1436 from matthiasbeyer/imag-log/show-ordered
Fix: imag-log show should order by datetime
2018-04-22 15:55:25 +02:00
c3fe934119
Merge pull request #1435 from matthiasbeyer/imag-view/fix-autowrapping
Fix: Do not automatically wrap text
2018-04-22 15:55:19 +02:00
909240fc24 Fix: Do not inherit stdout here
This caused us to print funny output. But we want to catch the output
and print a nice list ourselves here.
2018-04-22 14:37:56 +02:00
ee75d2309c Fix: imag-log show should order by datetime 2018-04-22 14:33:53 +02:00
10b71864f6 Fix: Do not automatically wrap text
We must use `ArgMatches::occurrences_of` here to check whether the
argument was actually passed.

If it was not passed, we do not wrap at all.
2018-04-22 14:17:12 +02:00
a343a2ab90 Do not use version crate in build script 2018-04-22 11:09:31 +02:00
d742e15763 Do not depend on "version" crate
We should not depend on the version crate, as it is GPL licensed.

We removed the usage of this crate before, but it was still in the
Cargo.toml files (despite being used in the source).
2018-04-22 11:09:31 +02:00
ca5e150f3a
Merge pull request #1421 from matthiasbeyer/imag-view/wrapping
imag-view: wrapping
2018-04-20 09:24:14 +02:00
e0decb7294
Merge pull request #1419 from matthiasbeyer/imag-diary/list-diaries
Add functionality to list diaries
2018-04-20 09:24:07 +02:00
e820f8bfb2 Add functionality to read storeids from stdin 2018-04-19 22:08:34 +02:00
36bc517524 Add support for tagging/untagging multiple entries with one call 2018-04-19 22:08:34 +02:00
e80bf7b57d Add feature for wrapping output 2018-04-19 21:55:27 +02:00
6e80f603d6 Add functionality to list diaries 2018-04-19 21:36:22 +02:00
d2dceb6640 Update version numbers: 0.7.0 -> 0.8.0 2018-04-19 10:05:53 +02:00
0d31ee7efd Update dependencies: Add version 2018-04-19 09:57:36 +02:00
b690925e01 Fix: Use fill storeid when listing 2018-04-18 18:32:11 +02:00
e29bbdb98d Fix: Make error message more explanatory 2018-04-18 17:41:34 +02:00
4568b1f625
Merge pull request #1380 from matthiasbeyer/minor
Minor patches
2018-04-18 16:46:41 +02:00
962b5fffd8 Remove unused imports/code 2018-04-18 14:32:23 +02:00
2a0bf1cd51 Remove CLI for mainpage setting 2018-04-18 14:32:23 +02:00
8ea3f62fbc Add autolinking 2018-04-18 14:32:23 +02:00
e1ffa4b107 Add name filtering in show command 2018-04-18 14:32:23 +02:00
4450f22c5e Add show subcommand 2018-04-18 14:32:23 +02:00
cc9e7c89d0 Remove grep functionality 2018-04-18 14:32:23 +02:00
caf0e63b35 Rename "create" command to "create-wiki", introduce "create" for creating entries 2018-04-18 14:32:23 +02:00
2c07ad9a3a Implement grep command 2018-04-18 14:32:23 +02:00
2ee6dde75e Add implementation for delete functionality 2018-04-18 14:32:23 +02:00
28f882e6c7 Add implementation for create subcommand 2018-04-18 14:32:23 +02:00
8dd3a57114 Initial import 2018-04-18 14:32:23 +02:00
98f8366e4c Fix documentation in crate metadata 2018-04-17 15:55:08 +02:00
90593e2d93 Update dependency: toml-query: 0.4 -> 0.6 2018-04-15 09:15:24 +02:00
fb4917d050 Remove feature to generate commandline completion scripts 2018-04-14 14:35:28 +02:00
Mario Krehl
9a316d1268 Add license header to build.rs script 2018-04-14 14:19:28 +02:00
Mario Krehl
f463565770 Change target directory of completions to target/ 2018-04-14 14:19:28 +02:00
Mario Krehl
38b4151b84 Fix: macro call build_subcommand 2018-04-14 14:19:28 +02:00
Mario Krehl
7e9c25fd63 Refactor: use App in the build_ui function of imag-init 2018-04-14 14:19:28 +02:00
Mario Krehl
84e1cffbe3 Fix: use mod ui and remove unused imports 2018-04-14 14:19:28 +02:00
Mario Krehl
d4c7019fc7 move target directory of the shell completions to target/shell-completions.d/ 2018-04-14 14:19:28 +02:00
Mario Krehl
264a07239f move the build_ui function of imag-ids into its own file 2018-04-14 14:19:28 +02:00
Mario Krehl
1d6e993ee8 fix copypasta fails 2018-04-14 14:19:28 +02:00
Mario Krehl
a7959a2e67 add all current imag binaries to the shell-completion script 2018-04-14 14:19:28 +02:00
Mario Krehl
a104d53919 build script for shell completion works again 2018-04-14 14:19:28 +02:00
Mario Krehl
de9ef077c3 add build.rs again 2018-04-14 14:19:28 +02:00
mario
ec2b8984bb Add comment for &version!()[..] 2018-04-14 14:19:28 +02:00
mario
0f22941cd0 Add comments about functionality,
increase verbosity of some variables
2018-04-14 14:19:27 +02:00
mario
85cd326818 Add build_subcommand! macro 2018-04-14 14:19:27 +02:00
mario
a825f4aba6 Add additional dependencies 2018-04-14 14:19:27 +02:00
mario
d93b93fece Change from types implementing build_ui to a mod for every binary.
Works with all available binaries.
Code cleanup
2018-04-14 14:19:27 +02:00
51b9b5c0db Fix: Use qualification 2018-04-14 00:58:40 +02:00
1511d70fa3 Add lints 2018-04-14 00:39:43 +02:00
561008bd7f Add lints 2018-04-14 00:39:43 +02:00
f92163f6d0 Add lints 2018-04-14 00:39:43 +02:00
e71019a2f2 Add lints 2018-04-14 00:39:43 +02:00
ad3269bbcc Add lints 2018-04-14 00:39:43 +02:00
f6f1c23456 Add lints 2018-04-14 00:39:43 +02:00
461d59fcb0 Add lints 2018-04-14 00:39:43 +02:00
76c8443e50
Merge pull request #1395 from matthiasbeyer/clap-text-wrap
Clap text wrap
2018-04-13 22:46:09 +02:00
aeec10bf76 Use clap with wrap_help feature 2018-04-13 16:19:10 +02:00
b59c234588 Use clap "^2.29" instead of ">=2.29" 2018-04-13 16:17:43 +02:00
a53f130557
Merge pull request #1393 from matthiasbeyer/imag-diary/list-ids-sorted
Fix: List ids sorted
2018-04-13 15:54:32 +02:00
17ff619ca5
Merge pull request #1391 from matthiasbeyer/imag-grep/fix-count
Fix missing counting
2018-04-13 15:54:18 +02:00
532de484f2 Fix: List ids sorted 2018-04-13 13:51:56 +02:00
02985e5a0d Fix missing counting 2018-04-13 13:27:08 +02:00
89cf979b13 Add functionality to filter for a collection 2018-04-13 11:25:59 +02:00
dce7c1b820 Update copyright years 2018-04-11 16:54:26 +02:00
2f47becef4
Merge pull request #1378 from matthiasbeyer/imag-view/ids-from-stdin
imag-view: Add support for piping entry ids into command
2018-04-07 10:51:10 +02:00
a14ab7b635
Merge pull request #1377 from matthiasbeyer/imag-contact/find-id
imag-contact: Add functionality to find contacts and print the storeid/file path
2018-04-07 10:51:02 +02:00
5061faaa74 Add support for piping entry ids into command 2018-04-06 16:16:22 +02:00
1d5171d770
Merge pull request #1376 from matthiasbeyer/imag-view/multiple-ids
imag-view: Add support for viewing multiple entries
2018-04-06 16:15:32 +02:00
3dfb17aabd Add functionality to find contacts and print the storeid/file path 2018-04-06 15:42:15 +02:00
2cee4ba90f
Merge pull request #1375 from matthiasbeyer/imag-contact/find-format
imag-contact: Add format argument
2018-04-06 15:32:15 +02:00
f1cdb21430 Add support for viewing multiple entries 2018-04-06 15:30:12 +02:00
c6d0e37629 Fix formatted output, use seperator for lists
The formatted output should use ", " as seperator for lists of values
2018-04-06 14:26:46 +02:00
14fc6c7c7f Add format argument 2018-04-06 14:24:30 +02:00
8c1b4124c0 Handle unknown subcommands in binaries with Runtime::handle_unknown_subcommand 2018-04-04 19:34:13 +02:00
e61ccc9561 Fix: Entry::to_str() should return Result<_>
Because serializing might fail.

Also fixes all usages of the API.
2018-03-26 14:24:42 +02:00
7907ed96c7
Merge pull request #1368 from matthiasbeyer/imag-link/list-output-table
imag-link: Do table output by default
2018-03-23 19:37:13 +01:00
f627d22057 Add header editing support 2018-03-23 17:16:40 +01:00
9c13c276fb Do table output by default 2018-03-23 15:58:45 +01:00
fd91662ed9
Merge pull request #1363 from matthiasbeyer/imag-init/create-store-dir
Fix: Create store directory as well
2018-03-23 13:41:10 +01:00
8f1d3c4ffb Fix: Create store directory as well 2018-03-23 10:12:39 +01:00
127681498f Add debug output in tests 2018-03-23 10:05:58 +01:00
bcdfe3ceea Use variable mutable, so we can create an instance 2018-03-22 21:32:58 +01:00
00d485c3d3 Add parameter to show done habits 2018-03-22 14:36:51 +01:00
64c8aee7fb Add functionality to include store path (defaults to no) 2018-03-16 23:51:41 +01:00
dc76729bea
Merge pull request #1345 from matthiasbeyer/imag/inherit-stdio
Inherit stdio to child process
2018-03-12 23:22:17 +01:00
ee72e61b44
Merge pull request #1343 from matthiasbeyer/imag-tag/rewrite-cli
imag-tag: rewrite cli
2018-03-12 23:07:06 +01:00
45be292dd3 Inherit stdio to child process 2018-03-12 22:43:26 +01:00
fbc3bda54b Rewrite CLI for more positional args
Also removed some non-working "+<tag>" and "-<tag>" handling.
2018-03-12 22:16:47 +01:00
8ae6e735e7 Allow reading store ids from stdin 2018-03-12 19:58:27 +01:00
e755bfd9de Add JSON output support 2018-03-12 17:46:06 +01:00
6ec509709d
Merge pull request #1336 from matthiasbeyer/imag-contact/find-show
imag-contact: Add "find" command
2018-03-12 17:07:11 +01:00
cbe30fa9c2 Add "find" command
This patch adds a "find" command to imag-contact which can either list
or show the found contacts (defaults to "list").
2018-03-12 15:23:37 +01:00
af4fadf104 Join mails with comma 2018-03-12 14:46:24 +01:00
579c00b62a Replace hard coded version strings with compiletime env 2018-03-06 12:45:41 +01:00
ee6e766c8d Use generate_runtime_setup() to create Runtime object 2018-03-04 13:57:44 +01:00
50461b839a Use output stream from Runtime::stdout() 2018-03-04 13:57:44 +01:00
f88884c321
Merge pull request #1321 from matthiasbeyer/libimagdiary/not-on-retrieve-for-module
libimagdiary: Do not rely on Store::retrieve_for_module
2018-03-03 13:53:18 +01:00
590a2e8f1d
Merge pull request #1317 from matthiasbeyer/imag-diary/daily
imag diary: "daily" support + Fixes for other timed entries
2018-03-03 13:29:10 +01:00
eccb52a85c Fix imag-log for new Diary::entries() interface 2018-03-02 23:27:20 +01:00
cedbaf1b5c Add "daily" support 2018-03-02 23:10:53 +01:00
776e1dac91 Fix: Hourly/Minutely should set minute/second to zero 2018-03-02 23:10:53 +01:00
affd15a890 Rewrite imag-diary for new Diary::entries() interface 2018-03-02 21:28:40 +01:00
78fe9b8cc5 Change "imag" impl to not instantiate Runtime object
Adapt libimagrt interface to export the functions we need to do this.
This is not that nice, but the best approach without rewriting large
parts of libimagrt.
2018-02-26 22:10:23 +01:00
35ac7ba927 Provide unlink() CLI interface 2018-02-25 18:59:02 +01:00
b2048b3dcf
Merge pull request #1306 from matthiasbeyer/minor
Minor patches
2018-02-20 20:23:41 +01:00
f38a4eb723
Merge pull request #1304 from matthiasbeyer/imag-init/imag-version-generator
Use the make_imag_version!() helper
2018-02-20 19:21:08 +01:00
c2b754dbec
Merge pull request #1303 from matthiasbeyer/imag-diary/fix-list-diary-name-passing
Fix order of evaluation
2018-02-20 18:37:55 +01:00
c4b33005fd Increase gap size 2018-02-20 17:46:50 +01:00
59ea31a077 Use the make_imag_version!() helper 2018-02-20 17:45:14 +01:00
0cde88d661 Fix order of evaluation
We need to evaluate the commandline argument first and if there is none,
we use the default.

This patch fixes that bug.
2018-02-20 17:27:42 +01:00
027c4b3287 Remove usage of libimagentrylist 2018-02-20 15:02:46 +01:00
f5df7cf332 Revert "Dump all StoreIds"
This reverts commit 1f84643486.
2018-02-20 13:40:52 +01:00
dd8d4e6fa4 Add imag-ids core command 2018-02-20 13:37:10 +01:00
2dc23c8101 Merge branch 'imag-ref/rewrite-libimagref-api-usage' into libimagentryref/refactor 2018-02-19 12:17:58 +01:00
9ced9008b5 Refactor imag-contact for new libimagentryref API 2018-02-19 12:15:40 +01:00
d3d6b80b8b Redesign of the CLI 2018-02-19 12:15:13 +01:00
b9d04730db Fix for broken pipe panics 2018-02-19 11:14:19 +01:00
e8f8969ded Fix broke pipe panics 2018-02-19 11:14:19 +01:00
36e511d39b Fix broken pipe panics 2018-02-19 11:14:19 +01:00
380aeccdc7 Fix broken pipe panics 2018-02-19 11:14:19 +01:00
125eebe1ce Fix broken pipe panic 2018-02-19 11:14:19 +01:00
fc0610b77f Fix broken pipe panic 2018-02-19 11:14:19 +01:00
872b300b9c Fix broken pipe panics 2018-02-19 11:14:19 +01:00
632d68e0e0 Fix broken pipe panic 2018-02-19 11:14:19 +01:00
09da5cc21e Fix for broken pipe panic 2018-02-19 11:14:19 +01:00
427ad89e55 Fix broken pipe panics 2018-02-19 11:14:19 +01:00
849229eec6 Fix broken pipe panics 2018-02-19 11:14:19 +01:00
e501f66dac Fix broken pipe panics 2018-02-19 11:14:19 +01:00
23e0f720e5 Fix broken pipe errors 2018-02-19 11:14:18 +01:00
876c1cb9af Fix broken pipe panics 2018-02-19 11:14:18 +01:00
5e78a43242 Fix for broken pipe panics 2018-02-19 11:14:18 +01:00
c2dfb2ef52 Refactor timetrack subcommands output for broken pipe errors 2018-02-19 11:14:18 +01:00
6a341d3723 Abstract exit code as a type 2018-02-19 11:14:18 +01:00
eb2f6fbbe2 Fix for broken pipe errors 2018-02-19 10:40:26 +01:00
013fc75d85 Fix output for broken pipe errors 2018-02-19 10:40:26 +01:00
88d21375b9 Refactor "imag store ids" command to not panic on broken pipe 2018-02-19 10:40:26 +01:00
2decc904aa Fix binary name 2018-02-18 20:04:22 +01:00
b586e13a98 Add timewarrior import script 2018-02-18 20:03:50 +01:00
10e7a82a45 Refactor imag-diary 2018-02-18 20:03:50 +01:00
b61547c2d1 Add debug output what is about to be done 2018-02-18 20:03:50 +01:00
3341e3640c
Merge pull request #1224 from matthiasbeyer/git-version-in-version
Git version in version
2018-02-18 20:03:09 +01:00
9469693763 Use new make_imag_version!() macro for building version string 2018-02-13 11:38:34 +01:00
94cad804e1 Use ErrFromStr convenience extension 2018-02-12 21:25:51 +01:00
6b0930adec Use ErrFromStr convenience extension 2018-02-12 21:25:33 +01:00
efdfb2a308 Fix imag-view for new error interface 2018-02-12 21:19:48 +01:00
63f2c70bed Fix imag-notes for new error interface 2018-02-12 21:19:48 +01:00
8128d3ade9 Fix imag-mail for new error interface 2018-02-12 21:19:48 +01:00
ee23f432de Fix imag-contact for new error interface 2018-02-12 21:19:48 +01:00
86abfb88a4 Fix imag-bookmark error handling 2018-02-12 21:19:48 +01:00
c0000b6410 Rewrite .map_err_trace_exit_unwrap()
Necessary because error types changed
2018-02-12 21:19:48 +01:00
50b0ffa6ae Remove calls to trace_error_exit() 2018-02-12 21:19:48 +01:00
3845399fb8 Simplify implementation for new libimagerror interface 2018-02-12 21:19:48 +01:00
ba1c6c06fa Add error chaining for compatibility with new libimagerror interface 2018-02-12 21:19:48 +01:00
1f4c0cafe4 Remove calls to trace_error_exit 2018-02-12 21:19:48 +01:00
a43232230b Fix error handling for new API 2018-02-12 21:19:48 +01:00
7892782675 Refactor error handling 2018-02-12 21:19:48 +01:00
b9800e19e9 Refactor imag-diary to use new error handling interface 2018-02-12 21:19:48 +01:00
77be32d80f Remove "get" iterator, store provides this now 2018-02-11 23:44:27 +01:00
cf0f93104d Add kairos support in "list" subcommand
This patch adds kairos support in the "list" subcommand for the "-f" and
"-t" parameters which limit the entries to show.

Something like

    imag timetrack list --from yesterday

is now possible.
2018-02-11 21:27:15 +01:00
4c95625def
Merge pull request #1278 from matthiasbeyer/imag-init/fix-release-build-include-string-path
imag-init: fix release build include string path
2018-02-11 17:55:27 +01:00
9e3c966d84
Merge pull request #1273 from matthiasbeyer/update-version-numbers
Update version string: 0.6.0 -> 0.7.0
2018-02-11 17:50:52 +01:00
938601f4fd
Merge pull request #1267 from matthiasbeyer/imag-link/do-not-link-entry-with-itself
Do not allow linking with entry itself
2018-02-11 16:07:36 +01:00
8a3f2602e0 Fix include_str!() in imag-init
Fixed by symlinking the imagrc.toml file to the crate directory of
imag-init.
2018-02-11 14:43:35 +01:00
30d2c28a22 Update version string: 0.6.0 -> 0.7.0 2018-02-11 14:22:24 +01:00
5e43773158 Do not allow linking with entry itself
Without this check, linking an entry with itself yields the following
error:

    ERROR[   1]: Entry is already borrowed: StoreId { base: Some("/home/m/.imag/store"), id: "notes/test" }
    ERROR[   2]: Error when calling retrieve() -- caused:
    ERROR[   3]: Error when calling get()

Which is semantically correct, but the user may get confused by that.

Instead, we print a nice error message that the entry cannot be linked
to itself.

This is not fixed in libimagentrylink itself, because libimagentrylink
cannot be called for the same entry.
If this would be possible, we would pass two `Entry` objects
mutably to the link functionality routines. This is not possible with
Rusts borrow semantics and therefor yields above error.

We compare strings to check whether the user accidentially linked an
entry with itself because we cannot get StoreIds from Entries because we
cannot get the Entry two times from the store in the first place. So
this is the best we have.
2018-02-11 13:41:16 +01:00