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
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
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
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
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
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
7d1d41884c
Replace matching with function chaining
2018-01-05 11:37:09 +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
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
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
af67ff51c8
Remove accidentially slipped-in println!()
2017-12-06 19:51:02 +01:00
Matthias Beyer
77f93e77f0
Fix syntax
2017-11-18 12:28:20 +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
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
2855a89e24
Move verify implementation from Store to CLI interface
2017-10-31 13:11:34 +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
16b5652fdd
Remove accidentially slipped-in println
2017-10-15 19:49:06 +02:00
Matthias Beyer
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
Matthias Beyer
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
Matthias Beyer
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
Matthias Beyer
663242db7e
Update dependency: error-chain: 0.10 -> 0.11
2017-10-12 22:12:27 +02:00
Matthias Beyer
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
Matthias Beyer
67a127f700
Update dependency: itertools: 0.6 -> 0.7
2017-10-12 19:45:50 +02:00
Matthias Beyer
bb26d1c895
Update dependency: ansi_term: 0.9 -> 0.10
2017-10-12 19:44:33 +02:00
Matthias Beyer
eb4681bf65
Add helper for tracing error and exit or unwrap the value
2017-10-12 19:02:37 +02:00
Matthias Beyer
d044e7a928
Add helper functions to register all helpers
2017-10-12 18:46:58 +02:00
Matthias Beyer
eb07bce1d0
Move handlebars custom helpers to libimaginteraction
2017-10-12 18:46:58 +02:00
Matthias Beyer
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
Matthias Beyer
b587bbbdc1
Fix: Create directory before renaming file
2017-10-01 01:59:41 +02:00
Matthias Beyer
24210c0068
Add some debug output
2017-10-01 01:59:13 +02:00
Matthias Beyer
169107d569
Remove FoldResult
2017-09-30 10:45:10 +02:00
Matthias Beyer
73f6016221
Update version strings: 0.4.0 -> 0.5.0
2017-09-24 13:05:01 +02:00
Matthias Beyer
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
Matthias Beyer
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
Matthias Beyer
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
Matthias Beyer
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
Matthias Beyer
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
Matthias Beyer
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
Matthias Beyer
79b6c26502
Serialize TOML pretty
2017-09-20 18:38:31 +02:00
Matthias Beyer
c558addbd6
Add debug/trace output in Store
2017-09-20 12:05:44 +02:00
Matthias Beyer
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
Matthias Beyer
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
Matthias Beyer
29e1107d3e
Add file abstraction function to check whether path exists
2017-09-17 15:43:57 +02:00
Matthias Beyer
22b9f8ecdd
Do not insert the links array in the core header
2017-09-16 19:44:09 +02:00
Matthias Beyer
8b8e4e9c6e
Minify iterator helper implementation
2017-09-15 13:17:12 +02:00
Matthias Beyer
fce5df48c8
Add simple iterator helpers for StoreIdIterator -> CRUD Iterator
2017-09-15 13:07:49 +02:00
Matthias Beyer
53c7d602eb
Merge pull request #1062 from matthiasbeyer/libimagstore/error-opt
...
libimagstore: Optimize errors
2017-09-10 11:45:59 +02:00
Matthias Beyer
785e17a4a3
Add param to StoreIdHasNoBaseError
2017-09-10 10:48:51 +02:00
Matthias Beyer
a670172880
Add param to StoreIdLocalPartAbsoluteError
2017-09-10 10:48:50 +02:00
Matthias Beyer
b772908697
Add params to EntryRenameError
2017-09-10 10:48:50 +02:00
Matthias Beyer
2ce2ba54da
Replace GlobError with link to ::glob::PatternError
2017-09-10 10:48:50 +02:00
Matthias Beyer
6aa695974c
Add param to EntryAlreadyExists error
2017-09-10 10:48:50 +02:00
Matthias Beyer
126aa75a2c
Add param to ConfigTypeError
2017-09-09 22:24:58 +02:00
Matthias Beyer
307165d1b2
Remove ConfigReadError because ::toml_query::error::Error is now linked in
2017-09-09 22:15:18 +02:00
Matthias Beyer
a015b07f6a
Remove TomlReadError by linking in ::toml_query::error::Error
2017-09-09 22:09:36 +02:00
Matthias Beyer
4849cc4822
Remove TemplateStringRegistrationError by linking in handlebars error type
2017-09-09 22:04:32 +02:00
Matthias Beyer
83f9350d98
Add param to EntryAlreadyBorrowed error
2017-09-09 21:59:36 +02:00
Matthias Beyer
a28613b889
Add param to StorePathCreate
2017-09-09 21:59:36 +02:00
Matthias Beyer
ff8569809b
Add parameter to StorePathExists error
2017-09-09 21:59:36 +02:00
Matthias Beyer
78db822917
Remove unused error type
2017-09-09 21:59:36 +02:00
Matthias Beyer
ca9123c740
Add parameter to IdNotFound error
2017-09-09 21:27:10 +02:00
Matthias Beyer
b682e7f8db
Remove warning which is printed by the store
2017-09-09 21:14:08 +02:00
Matthias Beyer
21440d58aa
Remove outdated comment
2017-09-09 21:13:38 +02:00
Matthias Beyer
3d8f75300d
Remove unecessary error chaining
2017-09-09 21:13:21 +02:00
Matthias Beyer
976f280511
Update toml-query: 0.3.* -> ^0.3.1
...
This release contains a bugfix for a critical bug in the
`TomlValueInsertExt::insert()` algorithm which was triggered by an
edgecase.
2017-09-06 19:30:32 +02:00
Matthias Beyer
b10d63c134
Rewrite Store::entries() implementation
...
As we rely on the filesystem in Store::entries(), which is a bug and
shouldn't be done, we rewrite this function and use the file_abstraction
framework.
2017-09-06 16:11:19 +02:00
Matthias Beyer
c115215fa4
Merge branch 'master' into libimagerror/integration
...
This merge solved a _LOT_ of conflicts and was a rather complicated one,
as parts of the conflict-resolution involved rewriting of half the
stuff.
This merge commit fixes all the things so a `cargo check --all`
succeeds, but I did not yet check whether tests run without failure.
2017-09-04 23:02:45 +02:00
Matthias Beyer
7ce44e8090
Remove "IntoError" trait, use error_chain functionality
2017-09-03 21:34:07 +02:00
Matthias Beyer
28d7085b2d
Remove error_chain dependency, not needed
2017-09-03 21:33:55 +02:00
Matthias Beyer
b6909a2c86
libimagrt: Rewrite error handling
2017-09-03 21:33:54 +02:00
Matthias Beyer
2df99524e7
libimagstore: rewrite error handling code
2017-09-03 21:33:54 +02:00
Matthias Beyer
603808a9fa
Impl IntoError for error kinds
2017-09-03 15:42:06 +02:00
Matthias Beyer
9713a4632c
Remove error_gen module entirely
2017-09-03 15:42:06 +02:00
Matthias Beyer
a309fdb280
Add recursion limits to crates
2017-09-03 15:42:06 +02:00
Matthias Beyer
11d881d3a9
Add dependency to crates: error_chain = 0.10
2017-09-03 15:42:06 +02:00
Matthias Beyer
e77d353c52
Rewrite macros to do error-chain behind the scenes
2017-09-03 15:42:03 +02:00
Matthias Beyer
4908cc6aaa
Add more helpers
2017-09-03 13:48:05 +02:00
Matthias Beyer
0683bf198b
Fix recursion problem
2017-09-03 13:48:05 +02:00
Matthias Beyer
93444be412
Light code cleanup
2017-09-03 13:48:05 +02:00
Matthias Beyer
64f96092cd
Fix aggregation
2017-09-03 13:48:05 +02:00
Matthias Beyer
482377abb9
Actually print error here (as logging isnt initialized at this point)
2017-09-03 13:48:05 +02:00
Matthias Beyer
5ec1cd48a0
Implement format-fetching from config/cli
2017-09-03 13:48:05 +02:00
Matthias Beyer
ae24954020
Implement templating
2017-09-03 13:48:05 +02:00
Matthias Beyer
2c66dcdf37
Rewrite logging: Types
...
This is the first part of a series of patches that reimplements the
logging backend to be more powerful and configurable.
This first patch adds types and infrastructure to be able to implement a
powerful logging abstraction.
It does not implement much functionality, except for a check whether a
module is enabled or not when logging (if configured in the config
file).
2017-09-03 13:48:05 +02:00
Matthias Beyer
ab06263507
Add store extraction to Runtime
...
This is necessary to be able to re-build a Runtime object with an new
set of "commandline arguments". For example if a test wants to test two
calls to imag, for example a "add" operation followed by a "remove" operation.
These functions are feature-gated therefor and should only be used in
tests.
2017-09-02 10:42:11 +02:00
Matthias Beyer
048517a3c2
Fix readme links in cargo metadata
2017-09-01 18:48:02 +02:00
Matthias Beyer
a710a5b72b
Remove unused variable
2017-08-31 10:57:19 +02:00
Matthias Beyer
ac804bd839
Remove unused keyword "mut" where not needed
2017-08-31 10:57:11 +02:00
Matthias Beyer
ae5255c7c7
Remove unused crate imports
...
This patch removes unused crate imports reported by newer rust versions.
Some crates were only required for tests, some only for tests with
macro_import - these things were fixed with feature gates.
2017-08-31 10:56:15 +02:00
Matthias Beyer
c987130cc1
Merge pull request #1018 from matthiasbeyer/remove-toml-ext
...
Remove toml ext
2017-08-28 14:10:40 +02:00
Matthias Beyer
c0c62bd1b5
Change crates to use toml-query crate
2017-08-28 12:22:37 +02:00
Matthias Beyer
3024fefcb9
Remove toml_ext module
2017-08-28 12:22:13 +02:00
Matthias Beyer
43ca0b43b1
Move "Header" trait for toml::Value to store module
2017-08-28 12:22:13 +02:00
Matthias Beyer
d0f8002682
Ensure deny() for warnings is in all crates
2017-08-27 20:08:03 +02:00
Matthias Beyer
2fcead5f53
Fix broken README symlinks
...
Along: Add files in documentation for modules that not yet had one.
2017-08-27 15:13:25 +02:00
Matthias Beyer
59a3662ac4
Reorganize code in subdirs
2017-08-27 15:12:09 +02:00