Commit Graph

648 Commits

Author SHA1 Message Date
Matthias Beyer 3cb7372b67 Provide LockedOutputProxy which holds locked variants of Stdout/Stderr 2018-03-04 15:42:00 +01:00
Matthias Beyer 0b593d6635 Let the OutputProxy hold Stdout/Stderr objects, so we do not have to aquire them each write!() 2018-03-04 15:41:32 +01:00
Matthias Beyer 19e9dfe33c Implement proxy object where runtime configures output
This is another approach for providing access to stdin/out/err via
libimagrt::runtime::Runtime.

The Runtime object does configure which output gets returned (stdout if
stdout is a tty, else stderr).

With this we can change libimagrt to read/write the store from/to
stdin/stdout without the user noticing that she does not write to stdout
but stderr.
Reading from stdin is not possible then, though.
2018-03-04 13:57:44 +01:00
Matthias Beyer c18c0bbbe4 Provide stdin/out/err resources via Runtime object
This way we can control whether "out" output goes to stdout or stderr
without the user of the functionality knowing.

This is useful for later when we use libimagrt to automatically
read and write the store from and to stdout/in depending on whether we
are talking to a TTY or a pipe.
2018-03-04 13:57:02 +01:00
Matthias Beyer 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
Matthias Beyer c9af23f663
Merge pull request #1314 from matthiasbeyer/imag/do-not-instantiate-runtime
Change "imag" impl to not instantiate Runtime object
2018-03-02 23:28:10 +01:00
Matthias Beyer ee5a17790f Fix multi-line reading
Reading entries with multiple entries caused all lines to be read as one
line.

This bug is fixed with this patch.
2018-03-02 21:48:17 +01:00
Matthias Beyer 87d6f1221f Add testcase for reading multiple lines 2018-03-02 21:48:13 +01:00
Matthias Beyer 8c37fb865a Rebuild DiaryEntryIterator to be based on StoreIdIterator
This patch rebuilds DiaryEntryIterator to be a wrapper around
StoreIdIterator and thus `Diary::entries()` to use `Store::entries` and
not `Store::retrieve_for_module()`.

The `Store::retrieve_for_module()` function is somehow buggy and loads
contents of the files into memory and _somehow_ causes the entries to be
rewritten without newlines.

This bug is fixed by moving away from `Store::retrieve_for_module()`.
2018-03-02 21:25:48 +01:00
Matthias Beyer 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
Dylan DPC e7a5e73d25 Update Cargo.toml 2018-02-26 17:04:53 +05:30
Matthias Beyer 6055520519 Provide unlink() to remove all links 2018-02-25 18:59:02 +01:00
Matthias Beyer 1521005e79
Merge pull request #1307 from matthiasbeyer/libimagstore/entry-parse-fix
Rewrite entry parsing algorithm
2018-02-20 22:03:00 +01:00
Matthias Beyer 9fb5f453fe Rewrite entry parsing algorithm
Rewrite without regex crate.

The regex approach was broken. If the following _content_ was provided
in the entry:

    foo

    ---

    bar

The regex approach parsed the header until the "---" in the content.
This is, of course, not the way to do that.

Now, the parsing is implemented by hand. Should be faster as well,
though I don't care about this.

This fixes a severe bug.
2018-02-20 21:06:36 +01:00
Matthias Beyer 732fc32b75 Fix trace count space width
Was five here, but should be four.
2018-02-20 20:24:27 +01:00
Matthias Beyer b2048b3dcf
Merge pull request #1306 from matthiasbeyer/minor
Minor patches
2018-02-20 20:23:41 +01:00
Matthias Beyer 00b86709b6 Use writeln!() instead of write!() 2018-02-20 19:24:34 +01:00
Matthias Beyer 461bebe60a
Merge pull request #1302 from matthiasbeyer/libimagdiary/fix-set-isflag
libimagdiary: Add "isflag" support
2018-02-20 18:37:48 +01:00
Matthias Beyer 404e9deed2 Add some debug output 2018-02-20 17:29:03 +01:00
Matthias Beyer 585261d468 Add "isflag" support 2018-02-20 17:18:46 +01:00
Matthias Beyer 5773e8a6c8 Remove libimagentrylist 2018-02-20 15:02:46 +01:00
Matthias Beyer 027c4b3287 Remove usage of libimagentrylist 2018-02-20 15:02:46 +01:00
Matthias Beyer 2c0c8347e9
Merge pull request #1285 from matthiasbeyer/libimagentryref/refactor
libimagentryref: Rewrite
2018-02-19 14:18:17 +01:00
Matthias Beyer 7653a040da
Merge pull request #1294 from matthiasbeyer/libimagstore/store-debug-fix
Simplify Store debug impl
2018-02-19 12:27:37 +01:00
Matthias Beyer 88ffe8084c Merge branch 'libimagentrymarkdown/refactor-libimagref-api-usage' into libimagentryref/refactor 2018-02-19 12:17:53 +01:00
Matthias Beyer b9b15957fc Merge branch 'libimagmail/rewrite-libimagref-api-usage' into libimagentryref/refactor 2018-02-19 12:17:48 +01:00
Matthias Beyer 672873c2f1 Make UniqueContactPathGenerator pub 2018-02-19 12:15:39 +01:00
Matthias Beyer 719daf952b Refactor libimagcontact for new libimagentryref API 2018-02-19 12:15:39 +01:00
Matthias Beyer c36250e42f Adapt to new libimagentryref API 2018-02-19 12:15:31 +01:00
Matthias Beyer 30ad7d89b1 Reimplement libimagmail for new libimagentryref interface 2018-02-19 12:15:22 +01:00
Matthias Beyer 1153fb180b Add function to delete a reference header entry 2018-02-19 12:14:32 +01:00
Matthias Beyer fd6a7f877a Remove private macro 2018-02-19 12:14:32 +01:00
Matthias Beyer a1a85f40d0 Add default generators 2018-02-19 12:14:32 +01:00
Matthias Beyer 2328c8b2b0 Take AsRef<str> rather than &String 2018-02-19 12:14:32 +01:00
Matthias Beyer cbb47cffcb Implement Ref functions 2018-02-19 12:14:32 +01:00
Matthias Beyer ed69fd4b35 Enrich error types 2018-02-19 12:14:32 +01:00
Matthias Beyer 81a8826740 Add impl for RefStore::{get,create,retrieve}_ref() 2018-02-19 12:14:32 +01:00
Matthias Beyer 1014f58cfc Rewrite interface 2018-02-19 12:14:32 +01:00
Matthias Beyer 73af121882 Remove old concepts 2018-02-19 12:14:32 +01:00
Matthias Beyer 5f99018807 Simplify store debug print 2018-02-19 11:51:21 +01:00
Matthias Beyer c2dfb2ef52 Refactor timetrack subcommands output for broken pipe errors 2018-02-19 11:14:18 +01:00
Matthias Beyer 6a341d3723 Abstract exit code as a type 2018-02-19 11:14:18 +01:00
Matthias Beyer 256bc47222 Refactor into two independent extensions 2018-02-19 10:40:26 +01:00
Matthias Beyer 39107c5296 Add result extension for translating io errors to exit codes 2018-02-19 10:40:26 +01:00
Matthias Beyer 841d3ffb60 Remove OnErr extension which is not used 2018-02-18 20:04:22 +01:00
Matthias Beyer 2b26db70ed Make HabitBuilder derive Debug 2018-02-18 20:03:50 +01:00
Matthias Beyer 3341e3640c
Merge pull request #1224 from matthiasbeyer/git-version-in-version
Git version in version
2018-02-18 20:03:09 +01:00
Matthias Beyer 3bd8822f4f Use version string from git, if present 2018-02-13 11:53:51 +01:00
Matthias Beyer f5f4fbc397 Add buildscript and infrastructure to include git information in version 2018-02-13 11:38:34 +01:00
Matthias Beyer 5b07baddf8 Add error convenience extension 2018-02-12 21:22:39 +01:00
Matthias Beyer 50b0ffa6ae Remove calls to trace_error_exit() 2018-02-12 21:19:48 +01:00
Matthias Beyer 074f9826fd Implement own displaying implementation for the chain 2018-02-12 21:19:48 +01:00
Matthias Beyer 503b042690 Adapt libimagrt to new error handling 2018-02-12 21:19:47 +01:00
Matthias Beyer 6dd24f3da3 Keep trace_error{,_dbg} for backwards compatibility 2018-02-12 21:19:47 +01:00
Matthias Beyer e481dbfd12 Rewrite libimagerror to be thin layer over error-chain 2018-02-12 21:19:47 +01:00
Matthias Beyer 4a4e528aed Refactor error handling
Refactor error handling so we do chain the error with the `?`
operator rather than wrapping it with own types.

Links to other error chains are created with error chain. All unneeded
error kinds were removed.

No API changes.
2018-02-11 23:44:27 +01:00
Matthias Beyer 77be32d80f Remove "get" iterator, store provides this now 2018-02-11 23:44:27 +01:00
Matthias Beyer 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
Matthias Beyer 2e4c29dd07
Merge pull request #1277 from matthiasbeyer/libimagstore/store-debug-output-prettify
Prettify Store debug output implementation
2018-02-11 15:19:13 +01:00
Matthias Beyer 30d2c28a22 Update version string: 0.6.0 -> 0.7.0 2018-02-11 14:22:24 +01:00
Matthias Beyer 8fcd2a6c8c Prettify Store debug output implementation 2018-02-11 13:36:37 +01:00
Matthias Beyer fa8af0c053
Merge pull request #1275 from matthiasbeyer/clap-features
Clap features
2018-02-11 13:29:17 +01:00
Matthias Beyer 863b52c2f0 Add TraceIterator::trace_unwrap_exit()
* Exits on the first Err(_)
* Introduces new Iterator type for iterating with unwrap and exit on
  error
2018-02-10 16:41:06 +01:00
Matthias Beyer 8656a38c50 Update dependency: clap: 2.17 -> 2.29 2018-02-10 16:40:34 +01:00
Matthias Beyer 9d2900a7dc Compile clap with suggestions and color support 2018-02-10 16:40:34 +01:00
Matthias Beyer 3b710e082d Add missing Cargo.toml metadata 2018-02-10 14:11:46 +01:00
Matthias Beyer d5a9e4930d Update dates in license header
And add missing header in one file
2018-02-07 02:48:53 +01:00
Matthias Beyer 29e88c5de0 Fix: Header entry setting
The header was not set properly. This fixes this bug.
2018-02-06 20:42:43 +01:00
Matthias Beyer 346e5a9444 Add link to toml_query error types 2018-02-06 20:42:43 +01:00
Matthias Beyer e2e3b4f6e2 Update kairos dependency: 0.1.0-beta-2 -> 0.1.0 2018-02-05 16:20:05 +01:00
Matthias Beyer de613c9ebd
Merge pull request #1227 from matthiasbeyer/libimagentryutil/filtered-iterators
libimagentryutil: filtered iterators
2018-02-01 20:22:12 +01:00
Matthias Beyer 3aa2e6edec Add iterator helper for filtering 2018-02-01 16:46:57 +01:00
Matthias Beyer 06cb8d50fb Make StoreId::is_in_collection() generic over AsRef<str> 2018-02-01 16:46:57 +01:00
Matthias Beyer eb6ab8f029 Add IsInCollection helper type 2018-02-01 16:46:57 +01:00
Matthias Beyer da0c1fa594 Rewrite From<> implementations for habit iterators
to be generic over all iterators over StoreIds, so they can be build
directly from them.
2018-02-01 16:46:38 +01:00
Matthias Beyer 3c1a0a51c9 Transform iterator to forget Store reference here 2018-02-01 16:46:38 +01:00
Matthias Beyer b3f546129a Add StoreIdIteratorWithStore::without_store() 2018-02-01 16:46:38 +01:00
Matthias Beyer 8e931cd79f Change calls to into_get_iter() to not take argument 2018-02-01 16:46:38 +01:00
Matthias Beyer 3b01a9eb2f Add API in StoreIdIteratorWithStore to get acting iterators
This patch adds API functions in the StoreIdIteratorWithStore iterator
type to transform it into a iterator which _does_ something (as in the
`libimagstore::iter` API).

It mimics the API which is offered by `libimagstore::iter`.
2018-02-01 15:47:39 +01:00
Matthias Beyer 030e32e44f Provide StoreId Iterator which has a ref to the Store
This change is needed so we can refactor the "get" iterator to not take
an argument (the store) later, which improves the API.
2018-02-01 15:47:39 +01:00
Matthias Beyer da4b823048
Merge pull request #1219 from matthiasbeyer/minor
Minor patches
2018-02-01 13:18:31 +01:00
Matthias Beyer 92c04c606c Refactor to use AsRef<str> 2018-02-01 09:26:33 +01:00
Matthias Beyer 7e53ad9f78 Add datetime <-> string conversion utility 2018-02-01 09:26:33 +01:00
Matthias Beyer 4d94791b1f Move date <-> string conversion utility to libimagutil 2018-02-01 09:26:33 +01:00
Matthias Beyer 7ecaad830c Refactor to use Iterator::fold() 2018-01-29 09:38:32 +01:00
Matthias Beyer 164b6b7f10 Move documentation to appropriate place 2018-01-29 09:38:32 +01:00
Matthias Beyer 7731b88c97 Remove map_err_trace_exit() calls in favour of map_err_trace_exit_unwrap() 2018-01-29 09:38:32 +01:00
Matthias Beyer 4bd156fdb3 Remove unecessary String instantiation 2018-01-29 09:38:32 +01:00
Matthias Beyer fcfc397fc8 env_logger: 0.5.0-rc.2 -> 0.5 2018-01-18 14:15:40 +01:00
Matthias Beyer 8d9c7dce4f env_logger: 0.5.0-rc.1 -> 0.5.0-rc.2 2018-01-15 11:22:09 +01:00
Matthias Beyer 635d000344 log: 0.4.0-rc.1 -> 0.4.0 2018-01-15 11:21:52 +01:00
Matthias Beyer c45130ddd0 env_logger: 0.4.* -> 0.5.0-rc.1 2018-01-15 11:20:27 +01:00
Matthias Beyer 0aba7d2939 Adapt libimagrt for new log setup 2018-01-15 11:20:07 +01:00
Matthias Beyer f209e12410 Update dependency: log: 0.3.* -> 0.4.0-rc.1 2018-01-15 11:20:07 +01:00
Matthias Beyer 68fedfb13a libimagentryutil: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer a34cae03e5 libimagentryref: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer e9ae81a2ce libimagentrylink: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer 18a6e9b64e libimagentryfilter: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer 6c36c97895 libimagentrydatetime: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer 7176c130ff libimagentrycategory: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer 163bf249ff libimagentryannotation: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer 13ff09d8c6 libimagtodo: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer 397f79b238 libimagtimetrack: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer cb0cb21220 libimagnotes: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer 014b54ad4e libimaglog: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer f2b72f4738 libimaghabit: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer 46774d765b libimagdiary: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer 3ef5fcfab6 libimagstore: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer febecd85e5 libimagrt: Replace read with typed read 2018-01-13 01:14:03 +01:00
Matthias Beyer 0c4be78223 Update dependency: toml-query -> 0.6 2018-01-13 01:14:03 +01:00
Matthias Beyer bfc35e0517 Remove dependency "version"
Because the "version" crate is licensed as GPL, which would us require
to release imag as GPL, we remove the crate now.
2018-01-12 13:33:40 +01:00
Matthias Beyer 9a9701fce5 Add flag settings/Contact::is_contact in libimagcontact 2018-01-08 23:46:36 +01:00
Matthias Beyer 7fb13acf15 Add Ref::is_ref() 2018-01-08 23:46:36 +01:00
Matthias Beyer 1f133eac3b Use libimagentryutil::isa::Is in libimaghabit 2018-01-08 23:31:10 +01:00
Matthias Beyer 00d09e618e Use libimagentryutil::isa::Is in libimagentryannotation 2018-01-08 23:31:10 +01:00
Matthias Beyer a7c8fa1212 Add Is::set_isflag() helper function 2018-01-08 23:31:10 +01:00
Matthias Beyer a246144c26 Add Is helper trait 2018-01-08 23:31:10 +01:00
Matthias Beyer 2d83796ef2 Initial import: libimagentryutil 2018-01-08 23:31:10 +01:00
Matthias Beyer 7cf60d5bec
Merge pull request #1208 from matthiasbeyer/libimagdiary-bookmarkcollection-nonwrapping
libimagdiary: Do not wrap store types
2018-01-08 23:11:54 +01:00
Matthias Beyer 689310edfe Rename `Store::retrieve_copy` to `Store::get_copy`
The function was named falsely and nobody noticed. So nobody uses this
function yet - hopefully - as this change is a breaking API change.
2018-01-08 15:16:41 +01:00
Matthias Beyer 80c460dac9 Transform BookmarkCollection into two traits
One trait is implemented on the Store, it retrieves BookmarkCollection
objects.
The other is implemented on `libimagstore::store::Entry` which then
represents a BookmarkCollection.
2018-01-08 15:16:14 +01:00
Matthias Beyer c0f4a20367
Merge pull request #1200 from matthiasbeyer/refactor-matching-into-command-chaining
Refactor matching into command chaining
2018-01-05 15:19:32 +01:00
Matthias Beyer 2c0f35e1a4
Merge pull request #1195 from matthiasbeyer/libimagdiary/support-seconds
Add second-support in libimagdiary
2018-01-05 13:54:12 +01:00
Matthias Beyer 824f88e4fd Refactoring: Use function chaining rather than matching 2018-01-05 13:32:31 +01:00
Matthias Beyer 66b0611103 Refactoring: Use function chaining rather than matching 2018-01-05 11:37:09 +01:00
Matthias Beyer dac817f318 Refactor: Use function chaining and new error type link 2018-01-05 11:37:09 +01:00
Matthias Beyer 1e2ac14d3b Refactoring: Use function chaining rather than matching 2018-01-05 11:37:09 +01:00
Matthias Beyer c92e459e3a Refactoring: Use function chaining rather than matching 2018-01-05 11:37:09 +01:00
Matthias Beyer 5db3d0c278 Refactor: Use function chaining rather than matching
And use a helper function for common functionality
2018-01-05 11:37:09 +01:00
Matthias Beyer feaa32196b Refactoring: Use function chaining rather than matching
Also introduce error links for this.
2018-01-05 11:37:09 +01:00
Matthias Beyer 3294a77346 Refactoring: Use function chaining rather than matching 2018-01-05 11:37:09 +01:00
Matthias Beyer 40490c10d6 Refactoring: Use function chaining rather than matching 2018-01-05 11:37:09 +01:00
Matthias Beyer dd66936e48 Refactoring: Use function chaining rather than matching 2018-01-05 11:37:09 +01:00
Matthias Beyer a386d50df3 Refactoring: Use function chaining rather than matching 2018-01-05 11:37:09 +01:00
Matthias Beyer e7d5e9ebc2 Refactoring: Use function chaining rather than matching 2018-01-05 11:37:09 +01:00
Matthias Beyer 4bb0d0f073 Refactor: Use function chaining instead of matching 2018-01-05 11:37:09 +01:00
Matthias Beyer d5ce99b170 Refactor toml destructure matching.
Use accessor functionality and function chaining now.
2018-01-05 11:37:09 +01:00
Matthias Beyer 4184a1e5d0 Replace matching with function chaining 2018-01-05 11:37:09 +01:00
Matthias Beyer fa8ac03701 Replace matching with function chaining 2018-01-05 11:37:09 +01:00
Matthias Beyer dbd9a2faaf Replace matching with function chaining 2018-01-05 11:37:09 +01:00
Matthias Beyer c1ff2b14f0 Replace matching with function chaining 2018-01-05 11:37:09 +01:00
Matthias Beyer a9135a80fb Replace matching with command chaining 2018-01-05 11:37:09 +01:00
Matthias Beyer 7d1d41884c Replace matching with function chaining 2018-01-05 11:37:09 +01:00
Matthias Beyer 57cf5003bd Move common functionality to utility module 2018-01-05 11:37:09 +01:00
Matthias Beyer 0640bdeb73 Add second-support in libimagdiary 2018-01-04 19:39:07 +01:00
Matthias Beyer 01bd020419 Remove unused imports 2018-01-04 19:35:35 +01:00
Matthias Beyer 02f38fb209 Fix comments: Use two instead of three slashes 2018-01-04 19:34:55 +01:00
Matthias Beyer e518598351 Remove unneeded "mut" 2018-01-04 19:34:43 +01:00
Matthias Beyer af819f0fca Remove unneeded "mut" 2018-01-04 19:34:21 +01:00
Matthias Beyer 0c9c9e26c1
Merge pull request #1183 from matthiasbeyer/libimaglog/init
libimaglog: init
2018-01-01 21:18:22 +01:00
Matthias Beyer 529f3f83da
Merge pull request #1187 from matthiasbeyer/libimagerror/display-fix
Improve error output
2018-01-01 20:47:24 +01:00
Matthias Beyer 774933ae4a
Merge pull request #1163 from matthiasbeyer/libimagstore/mighty-iters
libimagstore: More powerful iterator extensions
2017-12-25 22:02:56 +01:00
Matthias Beyer 198e304be9 Initial import of libimaglog implementation 2017-12-25 21:55:04 +01:00
Matthias Beyer 92d4a0237e Initial import: libimaglog 2017-12-25 21:46:04 +01:00
Matthias Beyer 9890371652
Merge pull request #1185 from matthiasbeyer/bump-version-strings
Update version strings: 0.5.0 -> 0.6.0
2017-12-25 21:06:14 +01:00
Matthias Beyer 0ae7b6b387 Do not call description() when displaying the error 2017-12-25 19:44:29 +01:00
Matthias Beyer 46a8d373b3 Allow dead code in whole module 2017-12-25 19:23:41 +01:00
Matthias Beyer 7d67b67440 Update version strings in tests 2017-12-25 19:17:07 +01:00
Matthias Beyer 3c8dd19d11 Update version strings: 0.5.0 -> 0.6.0 2017-12-25 19:17:07 +01:00
Matthias Beyer 9128d04866 Remove test
This test is not applicable anymore because it tests (and tested) the
wrong thing.

It was to check whether the function failed because the "imag" key
contained the wrong type, but this is not tested by that function. The
function only checks whether the "imag" key is present.
2017-12-25 17:59:50 +01:00
Matthias Beyer 35410aaa2e Refactor: Remove unneccessary functions 2017-12-25 17:59:50 +01:00
Matthias Beyer 20a552f527 Refactor header checking to use toml-query 2017-12-25 17:59:50 +01:00
Matthias Beyer 2bf91fab09 Enhance error types 2017-12-25 17:59:50 +01:00
Matthias Beyer 986dbad2fd
Merge pull request #1176 from matthiasbeyer/libimagstore/remove-config
libimagstore: remove config
2017-12-25 17:58:16 +01:00
Matthias Beyer 0870665668 Add iterator extension for iterators over Result<T, E> 2017-12-24 13:52:50 +01:00
Matthias Beyer 67410b3ad2 Implement iter extension for all iterators over StoreId 2017-12-24 13:52:50 +01:00
Matthias Beyer 0ed636bb06 Refactor libimagrt+libimagstore to pass whole configuration object
Before we extracted the store configuration from the configuration
toml::Value object and passed it to the store.

This is unecessary overhead.

Now we pass the whole configuration object and let the store extract the
required values.
2017-12-24 13:52:18 +01:00
Matthias Beyer 174d8d76e9 Remove configuration member, reduce configuration
We only need the configuration to check whether creating the store
directory is actually allowed.
2017-12-24 13:52:13 +01:00
Matthias Beyer 38b56df406 Add new dependency: toml-query 2017-12-24 13:52:13 +01:00
Matthias Beyer cf5b4239c4 Update version string
Holy crap this should really not happen. We accidentially released this
crate as 0.4.0 instead of 0.5.0.
2017-12-24 13:31:59 +01:00
Matthias Beyer 9ecd1849d7 Fix README path 2017-12-24 13:31:59 +01:00
Matthias Beyer f0ae628687 Transform to use error-chain 2017-12-23 14:20:46 +01:00
Matthias Beyer 7bdaaf35fc Initial import 2017-12-23 14:20:46 +01:00
Matthias Beyer 840bc86c90
Merge pull request #1178 from matthiasbeyer/libimaghabit/fix-until
Fix: Until date is still optional
2017-12-22 14:39:41 +01:00
Matthias Beyer 6246d25c9d Fix: Until date is still optional 2017-12-22 13:20:11 +01:00
Matthias Beyer 09c9eb6090
Merge pull request #1175 from matthiasbeyer/libimaghabit/remove-unused
libimaghabit: Remove unused things
2017-12-22 12:29:50 +01:00
Matthias Beyer 9bf4b9604b Remove unused variables 2017-12-22 11:03:42 +01:00
Matthias Beyer 90ed0c0e10 Remove unused macro import 2017-12-22 11:02:55 +01:00
Matthias Beyer 96b51280ab Remove unused imports 2017-12-22 11:01:35 +01:00
Matthias Beyer cd8f0beae8 Add until-date support 2017-12-22 10:59:27 +01:00
Matthias Beyer ddf703eaa0 Add HabitTemplate::next_instance_date_after()
Rewrite HabitTemplate::next_instance_date() to use the new function
2017-12-19 19:13:12 +01:00
Matthias Beyer 6f244a52ff Add function to instantiate with a given date
Use that function in the `create_instance()` function which was renamed
to `create_instance_today()`.
2017-12-19 19:13:04 +01:00
Matthias Beyer 13e9ee3ffa Add Habit::next_instance_date() 2017-12-08 14:54:49 +01:00
Matthias Beyer f81faa3f6a Make "util" pub 2017-12-08 14:54:49 +01:00
Matthias Beyer 999bdf8d0d Add HabitTemplate::linked_instances() function 2017-12-08 14:54:49 +01:00
Matthias Beyer 3b319fd4f0 Add HabitInstanceStoreIdIterator::new 2017-12-08 14:54:49 +01:00
Matthias Beyer 30e05d21f9 Add debugging output 2017-12-08 14:54:49 +01:00
Matthias Beyer 90a4139ede Make builder consuming 2017-12-08 14:54:49 +01:00
Matthias Beyer dc7a315176 Getter for all instances 2017-12-08 14:54:45 +01:00
Matthias Beyer b181b488a2 Add extension to check whether an Entry or a StoreId points to a habit instance/template 2017-12-08 14:54:45 +01:00
Matthias Beyer 9af2f34b58 Outsource instance id creation to helper fn 2017-12-08 14:54:45 +01:00
Matthias Beyer 6a13567efc dependency: kairos: beta-1 -> beta-2 2017-12-08 14:54:45 +01:00
Matthias Beyer 0ffbb2ef1a Add kairos error chain integration 2017-12-08 14:54:45 +01:00
Matthias Beyer 2c655daa39 Add IsValidHabitObj helper trait 2017-12-08 14:54:45 +01:00
Matthias Beyer 6b33fc9e6f Update kairos: master -> 0.1.0-beta-1 2017-12-08 14:54:45 +01:00
Matthias Beyer a6a36455f5 Add recur spec with kairos support 2017-12-08 14:54:41 +01:00
Matthias Beyer 42cabffa64 Implement HabitInstance for Entry 2017-12-08 14:54:41 +01:00
Matthias Beyer 533d97532b Move date-string conversion utils to util module 2017-12-08 14:54:40 +01:00
Matthias Beyer a71c9281ec Initial import 2017-12-08 14:54:40 +01:00
Matthias Beyer 167511afec Fix formatting and adjust module/lib documentation
Also add symlink in module implementation to lib-documentation.
2017-12-08 14:54:40 +01:00
Matthias Beyer 3fa2995c5f
Merge pull request #1168 from matthiasbeyer/libimagentrylist/print-empty-list
Add flag and check whether to print empty table
2017-12-07 22:08:47 +01:00
Matthias Beyer 13768322d2 Add flag and check whether to print empty table 2017-12-06 20:31:18 +01:00
Matthias Beyer af67ff51c8 Remove accidentially slipped-in println!() 2017-12-06 19:51:02 +01:00
Matthias Beyer b17772041f TableLister: If configured with index, also print index row 2017-12-03 21:20:23 +01:00
Matthias Beyer 77f93e77f0 Fix syntax 2017-11-18 12:28:20 +01:00
Matthias Beyer 04d5af8d50 Switch to upstream rust-vobject 2017-11-09 11:21:17 +01:00
Matthias Beyer dfbc69400a Let ContactData be unpacked and derefd 2017-10-31 19:10:11 +01:00
Matthias Beyer 4fa41faa59 Add iterator for contacts 2017-10-31 19:10:11 +01:00
Matthias Beyer b05c8c6f6d Replace search_contact() with all_contacts()
We can then use filters to filter out the non relevant ones.
2017-10-31 19:10:11 +01:00
Matthias Beyer f3d75e97b6 Rely on own clone of rust-vobject 2017-10-31 19:10:10 +01:00
Matthias Beyer 12e8657eb9 Add Contact::is_contact() 2017-10-31 19:09:43 +01:00
Matthias Beyer f2bd241a59 Add error for header type error 2017-10-31 19:09:43 +01:00
Matthias Beyer aae19221b6 Impl Contact::get_contact_data() 2017-10-31 19:09:43 +01:00
Matthias Beyer ce5e7f5252 Impl Store::create_from_path() 2017-10-31 19:09:43 +01:00
Matthias Beyer c14c19483c Add lib internal utilities 2017-10-31 19:09:43 +01:00
Matthias Beyer 577f8d313a Add more error links 2017-10-31 19:09:43 +01:00
Matthias Beyer 04182f5cb6 Add initial layout of code 2017-10-31 19:09:43 +01:00
Matthias Beyer eaa9ad5993 Add basic documentation on how the lib works 2017-10-31 19:09:43 +01:00
Matthias Beyer 434505f1f0 Initial import of libimagcontact 2017-10-31 19:09:41 +01:00
Matthias Beyer 23820e322e
Merge pull request #1157 from matthiasbeyer/imag-location-from-env
Try to get RTP from IMAG_RTP
2017-10-31 16:24:51 +01:00
Matthias Beyer dc26f8c20c
Merge pull request #1156 from matthiasbeyer/store-verify-from-cli-app
Move verify implementation from Store to CLI interface
2017-10-31 15:47:57 +01:00
Matthias Beyer 4250241f18 Try to get RTP from IMAG_RTP 2017-10-31 15:30:29 +01:00
Matthias Beyer f82ad2b6d1 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
Matthias Beyer 29c9ad71b5 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
Matthias Beyer a44d79093c Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
Matthias Beyer e758a28c9e Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
Matthias Beyer d5f537dc4d Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
Matthias Beyer 078936191b Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
Matthias Beyer 81ceb50f4a Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
Matthias Beyer d60f7d72e6 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
Matthias Beyer da391954cc Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
Matthias Beyer ec3daa1f41 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
Matthias Beyer 14bacaf01f Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
Matthias Beyer 51a7429283 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
Matthias Beyer 85ccc482d2 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
Matthias Beyer d4031758d6 Use ? operator instead of try!() macro 2017-10-31 15:04:50 +01:00
Matthias Beyer 26d7fd4eb7 Use ? operator instead of try!() macro 2017-10-31 15:04:07 +01:00
Matthias Beyer 82c30edcee Simplify matching 2017-10-31 15:04:07 +01:00
Matthias Beyer 131881cd01 Use ? operator instead of try!() macro 2017-10-31 15:04:07 +01:00
Matthias Beyer a20871eb5e Add badges in Cargo.toml of all crates 2017-10-31 15:03:30 +01:00
Matthias Beyer 5d76e7bafa Use ? operator instead of try!() macro 2017-10-31 15:03:30 +01:00
Matthias Beyer ea618ee3c7 Remove unused variable 2017-10-31 15:03:30 +01:00
Matthias Beyer 2855a89e24 Move verify implementation from Store to CLI interface 2017-10-31 13:11:34 +01:00
Matthias Beyer b237adfe19 Fix calls to Runtime::config() to use direct result 2017-10-31 09:25:14 +01:00
Matthias Beyer eca7219039 Rewrite configuration providing in runtime
Before the configuration object (the raw TOML object) was provided via a
wrapper object `Configuration`. This was ugly and not very nice to use.

Now, we only have the `toml::Value` object we lend out from
`Runtime::config()`.

The changes included libimagrt internal rewrites, which are not visible
to the user. Anyways, this change changes the API for config-fetching
from the runtime, so fixes for all other crates may follow.

The changes also removed the support for reading the "editor" setting
from the configuration file, which was not used anyways (in the example
imagrc.toml file).
The CLI-reading and ENV-reading are still supported, though.
2017-10-31 09:25:14 +01:00
Matthias Beyer e7aa5af9be Merge pull request #1149 from matthiasbeyer/libimagrt/remove-logging-format-overrides
Remove override functionality for logging formats
2017-10-16 10:11:28 +02:00
Matthias Beyer e5d93f5ff3 Remove override functionality for logging formats 2017-10-16 00:47:42 +02:00
Matthias Beyer e43b524420 Merge pull request #1150 from matthiasbeyer/libimagrt/override-logging-with-debug-flag
Fix: Overide logging with --debug
2017-10-15 23:28:10 +02:00
Matthias Beyer 32de2821d2 Merge pull request #1151 from matthiasbeyer/libimagstore/remove-accidental-println
Remove accidentially slipped-in println
2017-10-15 23:28:00 +02:00
Matthias Beyer 16b5652fdd Remove accidentially slipped-in println 2017-10-15 19:49:06 +02:00