Commit graph

903 commits

Author SHA1 Message Date
5dc6829354 Rename module: linker -> linkable
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-06-21 23:22:48 +02:00
ef17930c29 Rename interface
With this patch, the libimagentrylink library interface gets renamed.

The trait gets renamed to the more descriptive name "Linkable", the
functions get renamed to not contain any notion of "internal" anymore.

This patch also adapts the whole source tree for the new libimagentrylink
interface, also renaming variables to not contain "_internal_" anymore.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-06-21 23:22:47 +02:00
f21b6e53a2 Merge branch 'libimagentrylink-split' into master 2019-06-15 16:48:50 +02:00
901502b67e Split "internal" module into several submodules
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-31 12:48:00 +02:00
d2a5e8fb59 Rename functions: *_external_link -> *_url
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-31 12:48:00 +02:00
14ea375ca4 Fix imag-link for new url library 2019-05-31 12:48:00 +02:00
c33c29e8e2 Fix import for new libimagentryurl lib
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-31 12:48:00 +02:00
bb4f0ace6b Fix imag-diary to ignore broken pipes
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-30 11:12:47 +02:00
a157b23258 Fix imag-view to ignore broken pipes
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-30 11:12:46 +02:00
cee7689e77 Replace deprecated functioncall
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-30 10:09:45 +02:00
a7d53e47d1 Update toml-query to 0.9.0
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-29 18:39:25 +02:00
1482f70320 Update dependency: toml: 0.4 -> 0.5
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-29 18:39:25 +02:00
Leon Schuermann
ed457495c8 Introduce proper error handling in IdPathProvider
Prior to this change, the IdPathProvider implementation would be
responsible for exiting the process on insufficient / wrong arguments.
However, such error handling should be performed together with the
business logic and not in CLI-parsing related code.

This change introduces a clear separation: both parsing errors and
insufficient id path arguments can now be return from inside the
`get_ids`-method, and get passed up to the application logic to be
handled.

This change is reflected in all instances of IdPathProvider and their
surrounding code.

Signed-off-by: Leon Schuermann <leon.git@is.currently.online>
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-24 21:03:34 +02:00
911133818c Fix: Negation error
We have to check whether the configuration is _not_ a String type.
Dump fail.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-23 17:13:10 +02:00
b7d91f0905 Remove buildscripts
When installing (a subcrate) from crates.io, it fails because it cannot
find the buildscript. This is the quickfix, simply remove the
buildscript itself and the setup of the buildscript in all Cargo.toml
files.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-22 22:18:57 +02:00
5fa6b07b9e Fix: Delete links to bookmark collection entry before deleting collection
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-18 02:36:02 +02:00
49c7c81ff3 Remove unimplemented argument
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-18 01:59:39 +02:00
c4aa8dd5d5 Make "urls" positional argument
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-18 01:58:39 +02:00
1d89844613 Run 'cargo fix' for rust-2018
With this patch we move the codebase to Rust-2018.

The diff was generated by executing

    cargo fix --all --all-features --edition

on the codebase.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-18 00:20:59 +02:00
51daf28509 Merge branch 'imag-timetrack-duration' into master 2019-05-18 00:20:55 +02:00
3884d7319c Add duration listing in imag-timetrack
This patch adds the -d / --show-duration feature to the "list"
subcommand, which makes imag-timetrack list the duration of the
timetracking in the output.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-17 22:28:42 +02:00
df62e6f1b3 Add support to only list links
This patch adds support in imag-markdown to only list links that are
found in the markdown.

The list format includes the link title, which I consider convenient in
this case, but still easily scriptable.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-17 21:59:15 +02:00
632062caed Add imag-markdown
This patch adds a tool to process one or more entries as markdown and
print them as html.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-17 21:54:43 +02:00
fad684daf2 Merge branch 'imag-contact-edit-retry' into master-ff 2019-05-11 13:29:37 +02:00
aa23a51a2f Remove unused constant
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-11 12:26:50 +02:00
8b0f187f7d Add support for looping over edit
This patch adds a imag-contact feature where we loop as long as we
cannot parse the vcard. If the `--no-retry` flag is passed, we fail immediately.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-05-11 12:25:41 +02:00
0ec080fc7d Merge branch 'imag-ref-list-dead-refs' into master 2019-04-27 02:04:59 +02:00
989624cc5e Merge branch 'minor' into master 2019-04-27 02:00:49 +02:00
a7f2826bb9 Fix: Do only check entries which are a ref
We should not try to check entries that are not refs because this will
always fail. And because we fail _hard_, the execution of the command
fails on the first non-ref-entry and exits the program. Not good for a
filter... :-)

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-04-27 01:57:40 +02:00
9c467d0462 Add debug output
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-04-27 01:33:04 +02:00
37d8ae7430 Add contact editing.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-04-22 16:50:07 +02:00
9945cb38b7 Refactor: Move contact-by-hash finding to utils
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-04-22 16:50:07 +02:00
485779a176 Implement list-dead subcommand
This patch implements a helper in imag-ref to list all dead references
either by store id or by path which is referenced.

Suggested-by: Leon Schürmann <leon@is.currently.online>
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-04-22 15:02:34 +02:00
dc60942111 Add CLI interface for listing dead refs
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-04-22 15:02:34 +02:00
26664a5aec Merge branch 'libimagentryref-override-base' into master 2019-04-22 14:40:30 +02:00
0d5229be10 Refactor error handling
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-04-22 14:40:07 +02:00
9424661393 Add setting to override basepath setting
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-04-22 14:40:07 +02:00
41e981fa48 Add force-override option to "imag-contact import"
This patch adds the option to force-override the ref data in the
imported entries. This is necessary when importing contact data which is
already in the store, but where the reference data has changed (for
example if the hash of the file has changed, this might come in handy at
some point).

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-04-22 14:37:43 +02:00
d561bef939 Merge branch 'imag-ignore-dotd-binaries' into master 2019-04-22 14:28:40 +02:00
9b7edfc6c1 Rewrite imag-contact to handle reference storing
This patch rewrites the imag-contact binary to be able to work with the
new libimagcontact interface, which now uses libimagentryref for storing
references to the actual vcard files.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-04-22 14:26:56 +02:00
fd980299a5 Ignore ".d" binaries in debug build
The comment in the patch should be self-explanatory.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-04-22 14:24:46 +02:00
de522ec0f2 Fix for rust beta compiler
The beta compiler reports duplicated input:

error: the item `IntoValues` is imported redundantly
   --> lib/entry/libimagentrylink/src/internal.rs:398:13
    |
36  | use self::iter::IntoValues;
    |     ---------------------- the item `IntoValues` is already imported here
...
398 |         use internal::iter::IntoValues;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
    |

so we fix this here.

Other imports were fixed as well.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-04-13 22:06:53 +02:00
dfc02a5679 Move helper function to libimagentref::util
This moves the helper function for getting the `Config` object from the
configuration file via the runtime.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-20 16:22:52 +01:00
a959167b15 Rewrite imag-mail
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-20 16:22:52 +01:00
198c59f717 Revert "Remove imag-mail"
This reverts commit f9a980c344.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-20 16:22:52 +01:00
27c0a30494 Add config fetching function for Ref::get_path() parameter
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-20 14:43:42 +01:00
6681f9fcfd Remove unused code
Because the store is more efficient when reading and writing entries to
disk, we do not need to flush the cache anymore.

Hence, remove the flushing.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-18 16:02:49 +01:00
f9a980c344 Remove imag-mail
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-17 11:09:49 +01:00
49df7f54a9 Rewrite imag-ref 2019-02-17 11:09:48 +01:00
a6ad19a14f Merge branch 'redefine-storeid'
Finally merging the redefine of the StoreId implementation, which allows
easier handling of StoreId objects.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-15 22:15:58 +01:00
08b7a46c74 Use StoreId::local_display_string() for less errorhandling here
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-15 22:15:06 +01:00
aa5ea533c7 Add imag-header
imag-header is a tool for querying information of an entry in a defined
format.

imag-header is intended for scripting with imag commands.
The output format is not stable yet, though.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-15 20:54:52 +01:00
0888e4345c Use StoreId::local_display_string() for less errorhandling here
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-15 20:53:29 +01:00
f558556b3a Fix for new all_annotations() interface
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-15 20:53:29 +01:00
444ca2d424 Adapt to new all_contacts() return type
because we return `libimagstore::iter::Entries` here now, we do not have
to pass the store anymore.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-15 20:53:29 +01:00
1bbd2173b7 Fix for new StoreId::new() interface
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-15 20:53:29 +01:00
5fe139e02b Adapt StoreId::new() calls
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-15 20:53:29 +01:00
39d638daee Adapt for new StoreId API
When printing the storepath with the ID (when requested by the user), we
have to ask the store for its path.

This is a rather naive implementation which could be improved by only
checking for a boolean in the last iteration and then use a prepared
variable, rather than making the storepath part of the iterator.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-15 20:53:29 +01:00
642702b724 Rewrite: StoreId::new_baseless() -> StoreId::new()
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-15 20:53:28 +01:00
2611583839 Fix: Also print if runtime ignores IDs
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-15 19:13:29 +01:00
86dca4887d Fix negation error
We Iterator::filter here, so we have to negate - because we list
everything where _no_ instance exists yet.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-11 03:52:04 +01:00
334e9e3954 Add debug output
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-11 03:52:04 +01:00
fe9409a5dc Do not print table if table is empty anyways
When listing timetrackings, we do not want to print an empty table if
there aren't any timetrackings.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-11 03:52:04 +01:00
81912ac5cd Add wrapping functionality for imag-log
This patch adds a wrapping functionality to imag-log.
The commandline parameter `-w` or `--wrap` can not be used to wrap the
output at N characters, defaulting to 80 characters.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-11 03:52:04 +01:00
0ba19daa57 Strip whitespace on the right when printing
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-11 03:52:04 +01:00
90eaeb642a Remove magic constants in trace_unwrap_exit/map_err_trace_exit_unwrap calls
This patch removes the magic constant we used when calling
`trace_unwrap_exit()` or `map_err_trace_exit_unwrap()`.
We used to call it with `1` as parameter, where the number was the exit
code to use. Now the implementation of the function does it
automatically (using 1 (one) as exit code).

All calls of these functions were fixed. Thanks to vim this was easy.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-11 03:52:04 +01:00
c8e74193b3 Optimize: Do not attempt to print if output is a pipe
This is a small optimization so that we do not print the information if
the output is a pipe anyways.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-11 03:22:56 +01:00
f1a639ea8c Change id reporting API to return ExitCode
Because this API only errors when write!() errors occur, we can return
the exit code as an error here.

This way the user of the API can immediately exit if there was an IO
error, but the API automatically takes care of the right return value,
returning (exiting) with zero (0) if there was an "Broken pipe" error
and with one (1) otherwise, which is the expected behaviour here.

All calls to that API were changed accordingly.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-11 03:22:56 +01:00
03e0864268 Merge branch 'unnamed-annotations' into master-ff
This merge adds several patches to improve libimagannotation and
imag-annotate.
2019-02-10 17:07:35 +01:00
53022443ab Rewrite iteration
This patch rewrites how imag-annotate iterates over the ids to process
to be more easily to understand.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-10 01:00:38 +01:00
d8cd10a384 Remove iterator types
With this patch, libimagentryannotation does not have special iterator
types anymore. This makes the whole thing more comfortable to use.

In imag-annotate, the parameter for the functioncall was removed.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-10 01:00:33 +01:00
c84258da3d Add flag to not print name of annotation
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-10 00:58:21 +01:00
ab5078f111 Rewrite "add annotation" command
Because before we created a new annotation for each ID to be annotated,
which is not the expected behaviour.

Now we create one annotation object and then link it to all IDs which
are provided on the commandline.

Also, the annotation name is printed.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-10 00:58:21 +01:00
0f32471a03 Merge branch 'runtime-io-features' into master-ff 2019-02-09 23:42:09 +01:00
84aef82258 Fix: "status" subcommand might not be present
If we call 'imag-habit' without a subcommand, we assume "today". Thus it
might occur that the "status" subcommand match is not present, hence we
have to assume `false` here as default value.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-09 01:03:34 +01:00
e25cf17a8a Fix: We go to the next month, not to the current one
The filter filters from now to the first second of the next month, not
the first second of the current month. Hence we have to add one here.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-09 01:03:32 +01:00
340dab18f0 Fix: 'start-time' cannot be None
The UI is configured to require the 'start-time' parameter, so we do not
need to check for None here.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-09 01:03:32 +01:00
e4ef6f0649 Remove log-destination-override features
This removes the feature to be able to override log destinations from
the commandline.

This feature is removed because the --override-config feature from the
runtime already contains this functionality. It is a little more complex
to use, though this is a feature hardly used at all, so I rather go for
less code (less complexity) here than feature bloat.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-05 01:03:39 +01:00
4c0baa58f4 Add argument forwarding for --ignore-ids
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-05 00:59:30 +01:00
9185abcfa5 Update copyright years
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-01-03 18:41:36 +01:00
9fca66aa89 Forbid unsafe code in all crates 2018-11-11 13:05:55 +01:00
4e516ee19d Update version strings
...for the next release, which will be imag 0.10.0!

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-10 11:56:37 +01:00
17d4123898 Update dependencies from git versions to proper versions.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-09 22:14:11 +01:00
35291d68ad Make code more idomatic
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-09 21:48:26 +01:00
a2eae99a39 Rewrite debug calls with DebugOption extension 2018-11-09 21:48:26 +01:00
c767e6239e Remove unused parameter
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-09 21:48:26 +01:00
8d0ae1058e Make code more functional by more function chaining
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-07 13:51:42 +01:00
07cbecc1ba Make code more functional by more function chaining.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-07 13:51:28 +01:00
d8a6e9ca9a Rewrite iteration without collecting inbetween
Because why not?

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-07 12:48:35 +01:00
8e1768b424 Refactor code to be more idomatic
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-07 11:52:31 +01:00
345970d36b Import new dependencies
Because of the changes in the "src/ui.rs" files in the binary
implementations, we have new dependencies we need to import into the
build-script of the "imag" command, so that it can build the
commandline.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-06 20:35:18 +01:00
f6483f54db Add ID reporting in imag-timetrack 2018-11-06 20:35:18 +01:00
be56f9fe75 Add ID reporting in imag-mail 2018-11-06 20:35:18 +01:00
f20298cbe8 Add ID reporting in imag-store 2018-11-06 20:35:18 +01:00
c616a5cfaf Add ID reporting in imag-ref 2018-11-06 20:35:18 +01:00
502cdf5721 Add ID reporting in imag-habit 2018-11-06 20:35:18 +01:00
96ad41ea4c Add ID reporting in imag-mv 2018-11-06 20:35:18 +01:00
f3a03efd5d Add ID reporting in imag-wiki
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-06 20:35:18 +01:00
860c58cbdf Add ID reporting in imag-log 2018-11-06 20:35:18 +01:00
eceae358f8 Add ID reporting in imag-notes 2018-11-06 20:35:18 +01:00
2ca6be8322 Add id reporting in imag-diary 2018-11-06 20:35:18 +01:00
8523ae2120 Add id reporting in imag-contact 2018-11-06 20:34:46 +01:00
344aae5f92 Add ID reporting in imag-bookmark 2018-11-06 20:33:30 +01:00
1e6d58bf4c Add ID reporting in imag-view 2018-11-06 20:33:30 +01:00
d3400167df Add ID reporting in imag-tag 2018-11-06 20:33:30 +01:00
aef969f8bb Add ID reporting in imag-link 2018-11-06 20:33:30 +01:00
4e5315b0e5 Add ID reporting in imag-grep 2018-11-06 20:33:30 +01:00
ff809a3750 Add ID reporting in imag-gps 2018-11-06 20:33:30 +01:00
3a6443b3ef Add ID reporting in imag-ids
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-06 20:33:30 +01:00
274811243f Move imag-view to ID provider infrastructure 2018-11-06 20:33:30 +01:00
f83d72033f Move imag-tag to ID provider infrastructure 2018-11-06 20:33:30 +01:00
527e0310ae Move imag-link to ID provider infrastructure 2018-11-06 20:33:30 +01:00
4856541f5a Move imag-gps to ID provider infrastructure 2018-11-06 20:33:30 +01:00
70014e04b1 Move imag-ids to ID provider infrastructure 2018-11-06 20:33:30 +01:00
a805db2a88 Move imag-edit to ID provider infrastructure 2018-11-06 20:33:30 +01:00
30036d5628 Move imag-category to ID provider infrastructure 2018-11-06 20:33:30 +01:00
01de94a387 Move imag-annotate to ID provider infrastructure 2018-11-06 20:33:30 +01:00
17913ae3fd Optimize implementation: Less matches
This patch simplifies the code to be not three nested matches but rather
one match and then some function chaining.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-06 14:48:49 +01:00
1321f49428 Optimize implementation
Code-wise, the functionality was not changed. The changes only make the
code much more pretty.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-06 14:48:49 +01:00
d004c667fd Optimize implementation
Code-wise, the functionality was not changed. The changes only make the
code much more pretty.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-06 14:48:49 +01:00
5210985bf4 Optimize implementation
This does optimize the implementation of the list command implementation
(code-structure wise, not performance wise).

Functionality not altered.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-06 14:48:49 +01:00
1347784898 Merge branch 'safe-output'
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-01 21:22:26 +01:00
3bf3a8890b Add debugging output in test via logger 2018-11-01 20:36:46 +01:00
089d5b98cb Use error output from runtime to print error 2018-11-01 20:36:34 +01:00
afeb4031ac Use runtime provided error stream
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-01 20:34:58 +01:00
8223f846b4 Use new "ask" function interface with input/output stream params
In the imag-contact crate we had to rewrite the ask_continue!{} macro
as a function for less headache, but besides that this is a rather
straight-forward patch for adapting to the new interface.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-01 20:33:24 +01:00
32f38945f0 Fix tests: Do not pass "internal", subcommand does not exist anymore 2018-11-01 13:15:19 +01:00
e39bd7fc72 Merge branch 'fix-flag-forwarding'
Conflicts were handled manually.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-01 00:09:54 +01:00
25ee6f2ce4 Fix: Forward flags as well
This is a bugfix. The old implementation did not forward simple
commandline flags (as in `--debug`, arguments with no value) because it
only used `ArgMatches::value_of()`. But if there is no value, the method
returns `None` and the flag is not forwarded.

This patch fixes that issue.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-31 23:12:35 +01:00
c4c52e43a6 Add some debugging output 2018-10-31 23:11:06 +01:00
e4ffeddf85 Use libimagrt logging
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-31 23:10:26 +01:00
21927d4225 imag build script: Update available commands 2018-10-31 17:15:29 +01:00
aff5059652 imag-todo: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
5821a55c14 imag-mail: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
fd2367b849 imag-timetrack: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
d7eda6c451 imag-log: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
62eb711409 imag-wiki: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
1362a3f9ea imag-bookmark: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
3ac30c0944 imag-contact: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
4486abed84 imag-diary: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
8fb35b5fe1 imag-habit: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
c1bc5d4bf6 imag-view: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
73362c6de3 imag-link: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
11abf55a0f imag-annotate: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
6d8bac314c imag-tag: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
e3911d97d9 imag-store: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
3272dbfd74 imag-mv: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
8114c5976c imag-diagnostics: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
279751b99c imag-ids: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
3cfe5f217c imag-gps: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
12644f22d9 imag-category: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
79b996f0ad imag: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
52c5300ec8 Update about-text in imag-wiki
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-17 11:37:24 +02:00
f970fc987f Update about-text in imag-tag
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-17 11:37:24 +02:00
5b4715b311 Update about-text in imag-link
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-17 11:37:24 +02:00
0d103653ea Update about-text in imag-ids
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-17 11:37:24 +02:00
325c5ddbd0 Fix: URL in imag helptext
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-17 11:37:24 +02:00
8e232523b2 Fix: We dont have a subcommand "internal" anymore
This subcommand was passed but it does not exist. Unfortunately, the
tests did not fail...

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-09 17:37:56 +02:00
e96fb53677 Fix: Use "retrieve" instead of "create" when importing
This fixes a bug where a re-import of the contacts directory failed
because some entries already exist.
With this change, one can import the contact directory after things
changed in there and the imag database is updated accordingly, but not
altered. So links and notes are persisting.

For completeness: before, the workflow was to
`cd $IMAG_RTP && git rm store/contacts -r && imag contact import /path/to/contacts`
which is of course not optimal.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-07 10:56:56 +02:00
029b83042d Fix detecting of external links
Checking whether we have a file (on the FS) here is not enough for
either case (external link/internal link).

Thus, we should check whether a store entry with that ID exists. If it
does, we link internally, else externally by trying to parse the string
as URL.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-06 12:58:54 +02:00
f768c068e3 Update dependency: regex: 0.2 -> 1 2018-10-06 12:22:15 +02:00
0d6b345741 Update dependency: prettytable: 0.6 -> 0.8 2018-10-06 12:22:15 +02:00
f65824db22 Update dependency: prettytable: 0.6 -> 0.8 2018-10-06 12:22:15 +02:00
ab3b36ebcf Update dependencies
walkdir: 1 -> 2
uuid: 0.6 -> 0.7
2018-10-06 12:22:15 +02:00
51730eed89 Update dependency: tempfile: 2 -> 3 2018-10-06 12:21:20 +02:00
502889b9a2 Update dependency: prettytable: 0.6 -> 0.8 2018-10-06 12:21:20 +02:00
f2de746293 Update dependency: regex: 0.2 -> 1 2018-10-06 12:21:20 +02:00
2077980f22 Update dependencies: log: 0.3 -> 0.4 2018-10-06 12:21:20 +02:00
3e4fcb19bb Update dependencies: log: 0.3 -> 0.4, version: 2 -> 3 2018-10-06 12:21:20 +02:00
3b0b9c8d7b Update dependency: walkdir 1 -> 2 2018-09-30 15:04:29 +02:00
89059bb7da Fix: Use VcardBuilder instead of Vcard itself
The current implementation does not panic on VcardBuilder::build(), so
we unwrap() that directly.

Should be fixed in future versions of either rust-vobject or here, so
that we error appropriately.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-09-27 15:05:45 +02:00
d9e4eaad3c Update kairos to master branch
Because of the new error-chain version which kairos can depend on, for
which kairos is not yet released.
2018-09-27 15:05:45 +02:00
e838f0d0e7 Update dependency: handlebars: 0.29.0 -> 1.0 2018-09-27 15:05:45 +02:00
f97d9e0d96 Temporarily set vobject to custom fork until we have a new release 2018-09-27 15:05:45 +02:00
946d9891e4 Update dependency: vobject: 0.{4,5} -> 0.6 2018-09-27 15:05:45 +02:00
61738ac9ee Revert "Update dependency: handlebars: 0.29.0 -> 1.0"
This reverts commit a1f0872486995b80216e8a08a2176debdef3752a.

As updating handlebars needs some more involvement, we roll back to the
version we use currently and schedule the update for later.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-09-27 15:05:45 +02:00
c65e73acc8 Update dependency: kairos: 0.1 -> 0.2 2018-09-27 15:05:45 +02:00
abf6a3c384 Update dependency: handlebars: 0.29.0 -> 1.0 2018-09-27 15:05:45 +02:00
764a019817 Update dependency: log: 0.3 -> 0.4 2018-09-27 15:05:45 +02:00
3d12998603 Update dependency: toml-query: 0.6 -> 0.7 2018-09-27 15:05:44 +02:00
0a7afee454 Update dependency: error-chain: 0.11 -> 0.12 2018-09-27 15:05:25 +02:00
c791977aab
Merge pull request #1506 from matthiasbeyer/minor
Minor
2018-09-27 09:53:31 +02:00
6bf49aa6b5 Fix: 'imag-contact show' should increase output counter 2018-09-27 08:09:39 +02:00
6f768fe4ad Add a progressbar to the command
Note: characters in config have to be escaped.
2018-09-27 07:40:10 +02:00
430186799b Remove store flush caching as it is not necessary anymore 2018-09-27 07:31:47 +02:00
dc49b2265c Fix: Binary name
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-08-26 04:24:57 +02:00
d2bf1751ac Fix: Binary name
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-08-26 04:24:57 +02:00
9507db6d8e Fix: Binary name
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-08-26 04:24:57 +02:00
ab32f21333 Fix: Binary name
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-08-26 04:24:57 +02:00
6e56f469ae More verbose erroring in test 2018-08-26 04:24:57 +02:00
acdc1e84bc
Merge pull request #1495 from matthiasbeyer/imag-diary/fix-missing-header
Imag diary/fix missing header
2018-07-27 20:10:59 +02:00
b896bc2657 Fix: Do not create entries with Store::retrieve()
This patch fixes a bug where entries where created with
`Store::retrieve()` rather than with the API from libimagdiary.
This caused headers to be missing.

Now, the CLI is parsed for the values passed and a NaiveDateTime object
is crafted from that, which is then passed to libimagdiary.
2018-07-20 01:37:36 +02:00
22d63f0946 Add functionality to create entry at a certain time 2018-07-20 01:37:36 +02:00
f6a7345b4a Simplify: Move header verification from Value extension to Entry type 2018-07-19 20:58:27 +02:00
8d86af5f15 Fix: Use unused result 2018-06-27 00:43:36 +02:00
eb682d76e8 Prettify error messages 2018-06-15 22:07:13 +02:00
3b97db5c25 Fix: Duplicated printing of entries with "show --all"
The problem was that the used `Diary::diary_names()` iterator does not
call `unique()` on its output.
That decision was made because the return type would get more
complicated with that feature.

Now that rustc 1.26 with Impl Trait is out, we can refactor the return
types of these functions (so also with `Diary::diary_names()`) to
automatically do this.
2018-05-11 15:45:50 +02:00
664edc7943 Update version string: 0.8.0 -> 0.9.0 2018-05-09 11:39:33 +02:00
61d0136c26 imag-category: Initial import 2018-05-04 11:09:20 +02:00
9c36fc8ac0
Merge pull request #1468 from matthiasbeyer/imag-ids/filters
imag-ids: filters
2018-05-03 10:22:20 +02:00
846de028cf Add trace output in filtering process 2018-05-02 20:42:56 +02:00
191f049ea8 Add language documentation in commandline help 2018-05-02 20:42:56 +02:00
f618026305 Add store cache flushing after each 100st entry 2018-05-02 20:42:56 +02:00
c27349e94f Implement header filter language 2018-05-02 20:42:56 +02:00
f4e1c0864c Implement 'where' subcommand 2018-05-02 20:42:56 +02:00
d518322401 Add notes how the filter language should look like 2018-05-02 20:42:56 +02:00
74c982984c Move collection filter to new module 2018-05-02 20:42:56 +02:00
f85dc02db6 Revert "Deny non-absolut import pathes"
This reverts commit b90abfb868.

Because `libimagcontact` is not based on `libimagentryref` anymore (as
of 2b10ab0b36), and thus does not put
pathes into the header, we can allow non-absolute pathes here.
2018-05-02 19:42:38 +02:00
eb20a9d881
Merge pull request #1477 from matthiasbeyer/libimagstore/remove-walk
Remove Store::walk()
2018-05-02 18:39:11 +02:00
0dbef993c1 Adapt "imag store verify" implementation for removed Store::walk() 2018-05-02 17:46:45 +02:00
be62843608 Fix description 2018-05-01 22:29:46 +02:00
b86ed2ffa9 Refactor imag-wiki to new store iterator interface 2018-05-01 17:44:20 +02:00
7aca84dd5e Refactor imag-mail to new store iterator interface 2018-05-01 17:44:17 +02:00
519b6f7ef2 Refactor imag-habit to new store iterator interface 2018-05-01 17:44:14 +02:00
11f9a9027e Refactor imag-diary to new store iterator interface 2018-05-01 17:44:09 +02:00
829e425c12 Refactor imag-view to new store iterator interface 2018-05-01 17:44:05 +02:00
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