Commit graph

360 commits

Author SHA1 Message Date
dc7a315176 Getter for all instances 2017-12-08 14:54:45 +01:00
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
9af2f34b58 Outsource instance id creation to helper fn 2017-12-08 14:54:45 +01:00
6a13567efc dependency: kairos: beta-1 -> beta-2 2017-12-08 14:54:45 +01:00
0ffbb2ef1a Add kairos error chain integration 2017-12-08 14:54:45 +01:00
2c655daa39 Add IsValidHabitObj helper trait 2017-12-08 14:54:45 +01:00
6b33fc9e6f Update kairos: master -> 0.1.0-beta-1 2017-12-08 14:54:45 +01:00
a6a36455f5 Add recur spec with kairos support 2017-12-08 14:54:41 +01:00
42cabffa64 Implement HabitInstance for Entry 2017-12-08 14:54:41 +01:00
533d97532b Move date-string conversion utils to util module 2017-12-08 14:54:40 +01:00
a71c9281ec Initial import 2017-12-08 14:54:40 +01:00
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
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
13768322d2 Add flag and check whether to print empty table 2017-12-06 20:31:18 +01:00
af67ff51c8 Remove accidentially slipped-in println!() 2017-12-06 19:51:02 +01:00
b17772041f TableLister: If configured with index, also print index row 2017-12-03 21:20:23 +01:00
77f93e77f0 Fix syntax 2017-11-18 12:28:20 +01:00
04d5af8d50 Switch to upstream rust-vobject 2017-11-09 11:21:17 +01:00
dfbc69400a Let ContactData be unpacked and derefd 2017-10-31 19:10:11 +01:00
4fa41faa59 Add iterator for contacts 2017-10-31 19:10:11 +01:00
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
f3d75e97b6 Rely on own clone of rust-vobject 2017-10-31 19:10:10 +01:00
12e8657eb9 Add Contact::is_contact() 2017-10-31 19:09:43 +01:00
f2bd241a59 Add error for header type error 2017-10-31 19:09:43 +01:00
aae19221b6 Impl Contact::get_contact_data() 2017-10-31 19:09:43 +01:00
ce5e7f5252 Impl Store::create_from_path() 2017-10-31 19:09:43 +01:00
c14c19483c Add lib internal utilities 2017-10-31 19:09:43 +01:00
577f8d313a Add more error links 2017-10-31 19:09:43 +01:00
04182f5cb6 Add initial layout of code 2017-10-31 19:09:43 +01:00
eaa9ad5993 Add basic documentation on how the lib works 2017-10-31 19:09:43 +01:00
434505f1f0 Initial import of libimagcontact 2017-10-31 19:09:41 +01:00
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
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
4250241f18 Try to get RTP from IMAG_RTP 2017-10-31 15:30:29 +01:00
f82ad2b6d1 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
29c9ad71b5 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
a44d79093c Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
e758a28c9e Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
d5f537dc4d Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
078936191b Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
81ceb50f4a Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
d60f7d72e6 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
da391954cc Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
ec3daa1f41 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
14bacaf01f Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
51a7429283 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
85ccc482d2 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
d4031758d6 Use ? operator instead of try!() macro 2017-10-31 15:04:50 +01:00
26d7fd4eb7 Use ? operator instead of try!() macro 2017-10-31 15:04:07 +01:00
82c30edcee Simplify matching 2017-10-31 15:04:07 +01:00
131881cd01 Use ? operator instead of try!() macro 2017-10-31 15:04:07 +01:00
a20871eb5e Add badges in Cargo.toml of all crates 2017-10-31 15:03:30 +01:00
5d76e7bafa Use ? operator instead of try!() macro 2017-10-31 15:03:30 +01:00
ea618ee3c7 Remove unused variable 2017-10-31 15:03:30 +01:00
2855a89e24 Move verify implementation from Store to CLI interface 2017-10-31 13:11:34 +01:00
b237adfe19 Fix calls to Runtime::config() to use direct result 2017-10-31 09:25:14 +01:00
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
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
e5d93f5ff3 Remove override functionality for logging formats 2017-10-16 00:47:42 +02:00
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
32de2821d2 Merge pull request #1151 from matthiasbeyer/libimagstore/remove-accidental-println
Remove accidentially slipped-in println
2017-10-15 23:28:00 +02:00
16b5652fdd Remove accidentially slipped-in println 2017-10-15 19:49:06 +02:00
817933c99f Fix: Overide logging with --debug
Formerly, the --debug flag was ignores. This change overrides the
logging with the CLI specified logging if it was provided.

If --debug was provided, the logging is set to debugging, if --verbose
was provided info logging is used.
2017-10-15 19:48:06 +02:00
d37de44c94 Add RefStore::find_storeid_by_partial_hash() helper 2017-10-14 14:05:56 +02:00
6c387e893c Add RefStore::get_by_partial_hash() 2017-10-14 13:36:04 +02:00
e74745c9fc Remove RefStore::get() which was simply a wrapper to Store::get() 2017-10-14 13:08:37 +02:00
41374fb620 Add more helpers for handlebars 2017-10-14 11:02:30 +02:00
704c01b2c9 Merge pull request #1130 from matthiasbeyer/imag-annotate/init
Imag annotate/init
2017-10-13 16:20:57 +02:00
797b764027 Fix: Return annotation object when found
Before we did not return the annotation object after unlinking it. This
patch fixes this.
2017-10-13 14:53:57 +02:00
23f4d7948f Fix Store::entries() to not yield directories
Before the iterator did also yield storeids for directories, which was a
bug.

This change introduces a new if_file() function in the store-internal
backend, which is needed to check whether a path actually points to a
File, be it inmemory or on the real filesystem.

That's because tests might fail if they check via PathBuf::is_file() as
in tests, the entries only exist inmemory.
2017-10-13 14:26:06 +02:00
a24baca779 Merge pull request #1129 from matthiasbeyer/libimagentryannotation/not-based-on-libimagnotes
Libimagentryannotation/not based on libimagnotes
2017-10-12 23:47:15 +02:00
7978e71bde Rewrite API 2017-10-12 22:15:13 +02:00
ec855fefc7 Remove dependency on libimagnotes 2017-10-12 22:15:13 +02:00
758166637b Update toml-query: 0.3.* -> 0.4
This update is needed for the error-chain update, as the toml-query
0.4.0 release also bumps this dependency.
2017-10-12 22:13:04 +02:00
663242db7e Update dependency: error-chain: 0.10 -> 0.11 2017-10-12 22:12:27 +02:00
3ed9c1fcc8 Merge pull request #1131 from matthiasbeyer/libimagerror/trace-and-unwrap-helper
Add helper for tracing error and exit or unwrap the value
2017-10-12 22:08:48 +02:00
013e82f04f Update dependency: filters: 0.1 -> 0.2 2017-10-12 19:48:01 +02:00
67a127f700 Update dependency: itertools: 0.6 -> 0.7 2017-10-12 19:45:50 +02:00
bb26d1c895 Update dependency: ansi_term: 0.9 -> 0.10 2017-10-12 19:44:33 +02:00
eb4681bf65 Add helper for tracing error and exit or unwrap the value 2017-10-12 19:02:37 +02:00
d044e7a928 Add helper functions to register all helpers 2017-10-12 18:46:58 +02:00
eb07bce1d0 Move handlebars custom helpers to libimaginteraction 2017-10-12 18:46:58 +02:00
f266791142 Add multi-destination logging to logger
The logger was not able to handle multiple destinations before. Now it
is possible for the logger.

The file must be held behind an Arc<Mutex<_>> so we can use the logging
from multiple threads but also because we need to borrow mutably, so
that bit changes whith this commit.
2017-10-08 18:08:51 +02:00
b587bbbdc1 Fix: Create directory before renaming file 2017-10-01 01:59:41 +02:00
24210c0068 Add some debug output 2017-10-01 01:59:13 +02:00
169107d569 Remove FoldResult 2017-09-30 10:45:10 +02:00
643db0df3a Remove libimagcounter / imag-counter 2017-09-28 22:41:23 +02:00
db64c06409 Add RefStore::all_references() 2017-09-28 17:52:27 +02:00
046eb5eca3 Merge pull request #1108 from matthiasbeyer/libimagentryref/refactor-errors
Refactor errors to use error-chain linking functionality
2017-09-24 15:23:04 +02:00
2ce75251d9 Adjust for new error linking setup in libimagentryref 2017-09-24 13:05:16 +02:00
cac7697054 Refactor errors to use error-chain linking functionality 2017-09-24 13:05:16 +02:00
73f6016221 Update version strings: 0.4.0 -> 0.5.0 2017-09-24 13:05:01 +02:00
e9bf46c247 Fix README location 2017-09-24 11:36:38 +02:00
1f28328476 Merge pull request #1107 from matthiasbeyer/libimagentrylink/error-refactoring
Use error chain link functionality to remove link-conversion boilerplate
2017-09-23 19:50:16 +02:00
5894c27e44 Use error chain link functionality to remove link-conversion boilerplate 2017-09-23 18:32:23 +02:00
aa1f58cfff Add test for testing annotation 2017-09-23 14:13:16 +02:00
441e59753a Merge pull request #1105 from matthiasbeyer/minor
Minor
2017-09-22 16:06:23 +02:00
f8d6789dd9 Merge pull request #1104 from matthiasbeyer/imag-gps/init
imag-gps: init
2017-09-22 15:20:29 +02:00
0c461e126b Fix impl of GPSEntry::remove_coordinates() 2017-09-22 14:37:03 +02:00
dfd1d7b96e Remove unused imports 2017-09-22 14:25:44 +02:00
42599d4132 Merge pull request #1102 from matthiasbeyer/libimagentrylink/consistency-check-fix
libimagentrylink: consistency check fix
2017-09-21 19:30:25 +02:00
3884e4232c Merge pull request #1103 from matthiasbeyer/libimagentrygps/more-functionality
libimagentrygps: More functionality
2017-09-21 19:01:12 +02:00
eb118c2b17 Reimplement aggregating functionality
Which fixes the bug that a dead link was not found.
2017-09-21 17:30:20 +02:00
e18c68d5cb Add output of aggregated linking-network 2017-09-21 17:30:20 +02:00
7ece32f7c3 Merge pull request #1101 from matthiasbeyer/libimagstore/fs-backend/fix-walkdir-depth
Libimagstore: fs backend: Fix walkdir depth
2017-09-21 17:29:47 +02:00
f5d5e3c9c3 Add getters 2017-09-21 17:28:13 +02:00
0efffdbea3 Impl Display for {GPSValue, Coordinates} 2017-09-21 17:26:46 +02:00
a34a9239a7 Add GPSEntry::remove_coordinates() 2017-09-21 17:26:41 +02:00
555c0bb1df Fix Walkdir depth
From the documentation of Walkdir::min_depth():

    Set the minimum depth of entries yielded by the iterator.

    The smallest depth is 0 and always corresponds to the path given to
    the new function on this type. Its direct descendents have depth 1,
    and their descendents have depth 2, and so on.

This means that when we started with "/tmp/store", we end up yielding
that exact path in the first iteration. This is exactly what we do _not_
want.

Setting the minimal depth to 1 fixes this bug.
2017-09-21 16:31:25 +02:00
74a7208757 Fix: critical typo 2017-09-21 12:23:32 +02:00
5a868015e6 Merge pull request #1098 from matthiasbeyer/libimagstore/glob-iter-early-error
Return glob errors instead of tracing internally
2017-09-21 09:29:34 +02:00
c6e94dfd3c Return glob errors instead of tracing internally
This changes the internal GlobStoreIdIterator to return Result<StoreId>,
which gives us the possibility to aggregate errors in the
Store::retrieve_for_module() function and return them instead of tracing
them from the store.

The changes the internals to actually fetch the whole list of storeids,
which is unfortunate of course, but changing the interface is not an
option here, in my opinion.

At least we're only aggregating pathes, so the memory usage is pretty
low here.
2017-09-20 22:42:11 +02:00
8bbaeeef45 Fix: Store::delete() should check FS as well
This patch fixes a problem where the Store::delete() function only
checked the store-internal cache whether an entry exists, but not the
Filesystem. After this patch is applied, the Store::delete() function
also checks the filesystem whether the entry exists.
2017-09-20 22:24:59 +02:00
e2bf6c48ef Merge pull request #1096 from matthiasbeyer/fix-log-output
Register the no-escape escape functionality in handlebars
2017-09-20 22:00:53 +02:00
87ad85ab3d Merge pull request #1094 from matthiasbeyer/libimagdiary/is_in_diary
Base IsInDiary::is_in_diary() on StoreId::is_in_collection()
2017-09-20 22:00:41 +02:00
9b2ceb31cc Merge pull request #1093 from matthiasbeyer/libimagentrylist/rip-out-cli-mod
libimagentrylist: Remove unused module
2017-09-20 22:00:34 +02:00
a73111458e Merge pull request #1091 from matthiasbeyer/libimagstore/toml-pretty
Serialize TOML pretty
2017-09-20 22:00:27 +02:00
b431d0ee49 Merge pull request #1092 from matthiasbeyer/minor
Minor things
2017-09-20 19:24:44 +02:00
de69d31a58 Register the no-escape escape functionality in handlebars
Before, handlebars automatically applied html escaping, which resulted
in <>'& beeing escaped. But we don't need to escape for terminal output.
2017-09-20 19:12:08 +02:00
da4d670cbc Base IsInDiary::is_in_diary() on StoreId::is_in_collection(), which is tested 2017-09-20 18:48:55 +02:00
19c3bc829a Remove unused module 2017-09-20 18:41:54 +02:00
79b6c26502 Serialize TOML pretty 2017-09-20 18:38:31 +02:00
c558addbd6 Add debug/trace output in Store 2017-09-20 12:05:44 +02:00
5ce6cb2aa5 Switch from .set() to .insert() 2017-09-20 12:05:44 +02:00
8ddb0f6c24 Do not use "imag" namespace in header
This change switches the header location for the tagging information
from "imag.tags" to "tag.values". "tags" is not used because non-tables
are not allowed at the top level of the header.

Tests are adapted.
2017-09-20 09:24:46 +02:00
8904694b2a Remove plain-text default entry 2017-09-19 22:31:23 +02:00
75bc1b0511 Fix README symlink 2017-09-19 18:34:56 +02:00
ec0c58d360 Fix README symlink 2017-09-19 18:32:34 +02:00
162b36d6ee Update dependency specs
Most notably:

* env_logger: 0.4 -> 0.5
* hoedown: 5.0.0 -> 6.0.0
* itertools: 0.5 -> 0.6
* lazy_static: 0.1.15 -> 0.2
* regex: 0.1 -> 0.2
* semver: 0.5 -> 0.8
* url: 1.2 -> 1.5
* uuid: 0.3 -> 0.5

(This list is most surely not complete)
2017-09-19 17:16:19 +02:00
a01a2c18f8 Check in Store::move_by_id() whether target exists, not only in cache but also on FS 2017-09-17 15:44:19 +02:00
29e1107d3e Add file abstraction function to check whether path exists 2017-09-17 15:43:57 +02:00
22b9f8ecdd Do not insert the links array in the core header 2017-09-16 19:44:09 +02:00
6228de1066 Query-path fixed 2017-09-15 23:01:45 +02:00
324110cb76 Add more debugging/tracing output 2017-09-15 23:01:26 +02:00
2c1d322a1c Add test to test external linking 2017-09-15 22:49:40 +02:00
29e9fffd03 Move env_logger dep to dev-dependencies 2017-09-15 22:49:24 +02:00
be8a3d1242 Merge pull request #1065 from matthiasbeyer/libimagnotes/do-not-wrap
libimagnotes: Do not wrap store types.
2017-09-15 21:00:24 +02:00
5271255ae3 Fix libimagentryannotation for changes in libimagnotes 2017-09-15 13:53:30 +02:00
94855fb722 Refactor libimagdiary
To not wrap types anymore, but rather use extension traits for extending
all the things.
2017-09-15 13:53:16 +02:00
8b8e4e9c6e Minify iterator helper implementation 2017-09-15 13:17:12 +02:00
fce5df48c8 Add simple iterator helpers for StoreIdIterator -> CRUD Iterator 2017-09-15 13:07:49 +02:00
53c7d602eb Merge pull request #1062 from matthiasbeyer/libimagstore/error-opt
libimagstore: Optimize errors
2017-09-10 11:45:59 +02:00
785e17a4a3 Add param to StoreIdHasNoBaseError 2017-09-10 10:48:51 +02:00
a670172880 Add param to StoreIdLocalPartAbsoluteError 2017-09-10 10:48:50 +02:00
b772908697 Add params to EntryRenameError 2017-09-10 10:48:50 +02:00
2ce2ba54da Replace GlobError with link to ::glob::PatternError 2017-09-10 10:48:50 +02:00
6aa695974c Add param to EntryAlreadyExists error 2017-09-10 10:48:50 +02:00
126aa75a2c Add param to ConfigTypeError 2017-09-09 22:24:58 +02:00
307165d1b2 Remove ConfigReadError because ::toml_query::error::Error is now linked in 2017-09-09 22:15:18 +02:00
a015b07f6a Remove TomlReadError by linking in ::toml_query::error::Error 2017-09-09 22:09:36 +02:00