Commit Graph

378 Commits

Author SHA1 Message Date
John Sirois 8ef7b4e0c6 Cleanup `HookError` tracing logic.
Use `Result::or_else` instead of matching and no-oping the `Ok` case
manually and extract a helper to centralize repeated trace logic.
2016-07-14 20:37:16 -06:00
John Sirois 7f57e5e234 Move from a helper function to a typeclass.
This introduces the `FoldResut` trait to move from `func(receiver, ...)`
style to `receiver.func(...)` style. Also add a means to pass the
default result explicitly.
2016-07-14 07:28:54 -06:00
John Sirois 2c40b8734e Add a `fold_ok` utility.
Add a utility that folds an iterator into a result and uses it to reduce
boilerplate in the codebase.
2016-07-13 12:43:04 -06:00
Matthias Beyer c6f9d91599 Merge pull request #513 from matthiasbeyer/libimagstore/hooks/optionally-deny-mutable-hooks
Libimagstore/hooks/optionally deny mutable hooks
2016-07-07 21:52:08 +02:00
Matthias Beyer 7818b523b9 Deny mutable access for hooks if the config says so 2016-07-07 20:29:24 +02:00
Matthias Beyer eb31da70d1 Remove import: trace_error() function 2016-07-07 17:03:20 +02:00
Matthias Beyer 7f14639c1e Add configuration parsing/getter for denying of mutable hooks 2016-07-06 19:10:17 +02:00
Matthias Beyer b4b719b753 Add error kind for denied hooks 2016-07-06 19:09:58 +02:00
Matthias Beyer d18766b4b4 Remove checking for aborting errors
As the Aspect execution catches the aborting hooks and returns them, we
cannot have a non-aborting error here, so there is no point in checking
for aborting errors.
2016-07-06 18:01:00 +02:00
Matthias Beyer 580ea28877 Fix Display impl for StoreId by using lossy string rep if PathBuf::to_str() fails 2016-07-05 13:47:58 +02:00
Matthias Beyer d7f22020e6 Merge pull request #489 from matthiasbeyer/libimagstore/storify-id
Libimagstore/storify
2016-07-04 19:26:42 +02:00
Matthias Beyer 9605d6daa6 Ensure that StoreId::storified() does not alter already storified StoreId objects 2016-07-04 12:49:12 +02:00
Matthias Beyer a706680fd5 Revert "Store::create() Make outgoing storeid object unstorified"
This reverts commit 41d7d1c213.
2016-07-04 12:46:06 +02:00
Matthias Beyer 31d5dac63d Revert "Add StoreId::unstorified()"
This reverts commit 37380c84b9.

We do not want such a feature in the store, actually.
StoreId objects are either storified or not, but you cannot unstorify
them.
2016-07-04 12:45:17 +02:00
Matthias Beyer 41d7d1c213 Store::create() Make outgoing storeid object unstorified 2016-07-04 12:44:58 +02:00
Matthias Beyer 9f213ddc31 Add error kind for storeid handling errors 2016-07-04 12:44:58 +02:00
Matthias Beyer 37380c84b9 Add StoreId::unstorified() 2016-07-04 12:44:58 +02:00
Matthias Beyer 12b8f8f331 Move storification of StoreId object to new StoreId::storified() func 2016-07-02 17:52:12 +02:00
Matthias Beyer ea4487a481 Impl Display for StoreId 2016-06-30 11:02:58 +02:00
Matthias Beyer 45a24de853 store.rs: Replace error boxing and wrapping with result helper from libimagerror 2016-06-27 18:16:43 +02:00
Matthias Beyer 484520842a lazyfile.rs: Replace error boxing and creation by call to new helper function 2016-06-27 18:00:12 +02:00
Matthias Beyer 0a05b9825c call helper generator macros in error module 2016-06-27 17:59:46 +02:00
Matthias Beyer 55e6c29275 Add another level of error enclosure 2016-06-08 15:11:53 +02:00
Matthias Beyer e75b524e53 Add error kinds for Move functions 2016-06-08 15:11:53 +02:00
Matthias Beyer 84a0778a5b Refactor: Use helper function for equal codelines 2016-06-08 15:08:06 +02:00
Matthias Beyer 3c40df1ae7 Add Store::save_to() to create a copy of an entry 2016-06-08 15:08:06 +02:00
Matthias Beyer 2ce84a3dbf Add {Pre, Post}Move hooks 2016-06-08 15:08:00 +02:00
Matthias Beyer 12cac663d0 Implement save_as() 2016-06-08 14:03:17 +02:00
Matthias Beyer f885e6c80b Implement move_by_id() 2016-06-08 14:03:17 +02:00
Matthias Beyer 5b16771f4f Add (unimplemented) functions for moving store entries 2016-06-08 14:02:52 +02:00
Matthias Beyer 88e89d7927 Merge pull request #456 from matthiasbeyer/libimagstore/errors-to-identify-store-api-call
Add a set of error kinds to identify the store call the error came from
2016-06-06 18:28:48 +02:00
Matthias Beyer ea5319812d Merge pull request #439 from matthiasbeyer/libimagstore/fle-and-entry-have-storeid
Remove duplicated StoreId member in FileLockEntry, use member from Entry
2016-05-29 02:15:26 +02:00
Matthias Beyer 9d37ffef91 Merge pull request #454 from matthiasbeyer/libimagstore/hook-exec-error-fix
Libimagstore/hook exec error fix
2016-05-29 01:31:17 +02:00
Matthias Beyer 55e5255293 Remove duplicated StoreId member in FileLockEntry, use member from Entry 2016-05-29 00:01:05 +02:00
Matthias Beyer ce12a22ef5 Merge pull request #440 from matthiasbeyer/libimagstore/load-unload-hooks
Libimagstore/load unload hooks
2016-05-28 23:59:32 +02:00
Matthias Beyer 64e28f3c31 Fix C/P fail
The store executed the wrong hooks here, because of a C/P failure.

This fixes this bug.
2016-05-28 23:47:26 +02:00
Matthias Beyer 812379c46d Hook data accessors should implement Debug 2016-05-28 23:47:13 +02:00
Matthias Beyer d85f747066 Add a set of error kinds to identify the store call the error came from 2016-05-28 23:30:50 +02:00
Matthias Beyer a42b6a10db Add error tracing support in Aspect implementation
This removes the parallelization feature from the Aspect codebase as
std::error::Error does not implement Send, so we cannot send the error
from a child thread to a parent thread.

This is clearly not an optimal implementation now, but we have hook
non-aborting-error tracing support, which is more important than
parallelization support, at least in this early stage of development.

An issue has to be opened for re-implementing parallelization of hooks.
2016-05-28 21:08:55 +02:00
Matthias Beyer 6c7d6c29ea Rewrite pre-hook execution 2016-05-28 21:08:55 +02:00
Matthias Beyer eb80714402 HookError: Add optional non-aborting mode 2016-05-28 21:08:07 +02:00
Matthias Beyer 42289a085e Fix glob() pattern 2016-05-28 17:28:38 +02:00
Matthias Beyer a6200b67c0 Merge pull request #446 from matthiasbeyer/libimagstore/fix-get
Fix Store::get()
2016-05-28 10:35:42 +02:00
Matthias Beyer 19aec6327f Fix Store::get() 2016-05-27 23:58:37 +02:00
Matthias Beyer 3d9d5795e4 Rewrite hook error module with error macros 2016-05-27 10:15:29 +02:00
Matthias Beyer cb87b4b5d8 Remove old error code which is unused 2016-05-27 10:13:03 +02:00
Matthias Beyer 183c46a7dd Use Into implementations to convert error kinds into error types 2016-05-27 10:11:51 +02:00
Matthias Beyer e91eb2f55d Use error.into() instead of building full type 2016-05-26 22:19:29 +02:00
Matthias Beyer 5e98bd76b1 Shorten type names in import 2016-05-26 22:19:08 +02:00
Matthias Beyer 25c4bea818 Shorten type names in import 2016-05-26 22:17:08 +02:00