Commit Graph

280 Commits

Author SHA1 Message Date
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 643db0df3a Remove libimagcounter / imag-counter 2017-09-28 22:41:23 +02:00
Matthias Beyer db64c06409 Add RefStore::all_references() 2017-09-28 17:52:27 +02:00
Matthias Beyer 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
Matthias Beyer 2ce75251d9 Adjust for new error linking setup in libimagentryref 2017-09-24 13:05:16 +02:00
Matthias Beyer cac7697054 Refactor errors to use error-chain linking functionality 2017-09-24 13:05:16 +02:00
Matthias Beyer 73f6016221 Update version strings: 0.4.0 -> 0.5.0 2017-09-24 13:05:01 +02:00
Matthias Beyer e9bf46c247 Fix README location 2017-09-24 11:36:38 +02:00
Matthias Beyer 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
Matthias Beyer 5894c27e44 Use error chain link functionality to remove link-conversion boilerplate 2017-09-23 18:32:23 +02:00
Matthias Beyer aa1f58cfff Add test for testing annotation 2017-09-23 14:13:16 +02:00
Matthias Beyer 441e59753a Merge pull request #1105 from matthiasbeyer/minor
Minor
2017-09-22 16:06:23 +02:00
Matthias Beyer f8d6789dd9 Merge pull request #1104 from matthiasbeyer/imag-gps/init
imag-gps: init
2017-09-22 15:20:29 +02:00
Matthias Beyer 0c461e126b Fix impl of GPSEntry::remove_coordinates() 2017-09-22 14:37:03 +02:00
Matthias Beyer dfd1d7b96e Remove unused imports 2017-09-22 14:25:44 +02:00
Matthias Beyer 42599d4132 Merge pull request #1102 from matthiasbeyer/libimagentrylink/consistency-check-fix
libimagentrylink: consistency check fix
2017-09-21 19:30:25 +02:00
Matthias Beyer 3884e4232c Merge pull request #1103 from matthiasbeyer/libimagentrygps/more-functionality
libimagentrygps: More functionality
2017-09-21 19:01:12 +02:00
Matthias Beyer eb118c2b17 Reimplement aggregating functionality
Which fixes the bug that a dead link was not found.
2017-09-21 17:30:20 +02:00
Matthias Beyer e18c68d5cb Add output of aggregated linking-network 2017-09-21 17:30:20 +02:00
Matthias Beyer 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
Matthias Beyer f5d5e3c9c3 Add getters 2017-09-21 17:28:13 +02:00
Matthias Beyer 0efffdbea3 Impl Display for {GPSValue, Coordinates} 2017-09-21 17:26:46 +02:00
Matthias Beyer a34a9239a7 Add GPSEntry::remove_coordinates() 2017-09-21 17:26:41 +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 74a7208757 Fix: critical typo 2017-09-21 12:23:32 +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 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
Matthias Beyer 9b2ceb31cc Merge pull request #1093 from matthiasbeyer/libimagentrylist/rip-out-cli-mod
libimagentrylist: Remove unused module
2017-09-20 22:00:34 +02:00
Matthias Beyer a73111458e Merge pull request #1091 from matthiasbeyer/libimagstore/toml-pretty
Serialize TOML pretty
2017-09-20 22:00:27 +02:00
Matthias Beyer b431d0ee49 Merge pull request #1092 from matthiasbeyer/minor
Minor things
2017-09-20 19:24:44 +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 da4d670cbc Base IsInDiary::is_in_diary() on StoreId::is_in_collection(), which is tested 2017-09-20 18:48:55 +02:00
Matthias Beyer 19c3bc829a Remove unused module 2017-09-20 18:41:54 +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 5ce6cb2aa5 Switch from .set() to .insert() 2017-09-20 12:05:44 +02:00
Matthias Beyer 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
Matthias Beyer 8904694b2a Remove plain-text default entry 2017-09-19 22:31:23 +02:00
Matthias Beyer 75bc1b0511 Fix README symlink 2017-09-19 18:34:56 +02:00
Matthias Beyer ec0c58d360 Fix README symlink 2017-09-19 18:32:34 +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 6228de1066 Query-path fixed 2017-09-15 23:01:45 +02:00
Matthias Beyer 324110cb76 Add more debugging/tracing output 2017-09-15 23:01:26 +02:00
Matthias Beyer 2c1d322a1c Add test to test external linking 2017-09-15 22:49:40 +02:00
Matthias Beyer 29e9fffd03 Move env_logger dep to dev-dependencies 2017-09-15 22:49:24 +02:00
Matthias Beyer 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
Matthias Beyer 5271255ae3 Fix libimagentryannotation for changes in libimagnotes 2017-09-15 13:53:30 +02:00
Matthias Beyer 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
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 8aa5c2d82d Fix header locations
Also change that the implementation uses toml_query::set instead of
toml_query::insert.

Inserting values creates intermediate tables, set doesn't. And we really
want that convenience here, as the code is complex enough on its own.
2017-09-09 16:36:21 +02:00
Matthias Beyer 250bc3d8a7 Add tests for processing with appropriate setting switched off 2017-09-07 20:57:22 +02:00
Matthias Beyer 18ebd568dc Add test for processing two refs 2017-09-07 20:57:22 +02:00
Matthias Beyer 98aa7bf716 Add test to test ref creation 2017-09-07 20:57:22 +02:00
Matthias Beyer 24985a2384 Add test for processing external link 2017-09-07 20:57:22 +02:00
Matthias Beyer 3cb2393c08 Add test for automatically creating linked entries 2017-09-07 20:57:22 +02:00
Matthias Beyer 0aea9151dd Add test for faulty link 2017-09-07 20:57:22 +02:00
Matthias Beyer 0b640e18be Add test to check whether internal links are parsed and set correctly 2017-09-07 20:57:22 +02:00
Matthias Beyer 0a60f5ca55 Add test for processing entry without links 2017-09-07 20:57:22 +02:00
Matthias Beyer 9c68514dfb Add processor for collecting links from content
and putting them into the header via the functionality offered by
`libimagentrylink`.
2017-09-07 20:57:22 +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 86fae34d0d Merge pull request #1056 from matthiasbeyer/libimagstore/rewrite-store-entries-fn
Rewrite Store::entries() implementation
2017-09-06 17:39:44 +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 9d8a8f0bf4 Fix Store loading in tests: Use in-memory store backend 2017-09-05 22:00:58 +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 6d1dab3117 Merge pull request #1029 from matthiasbeyer/all-extensions-as-traits
All extensions as traits
2017-09-04 21:59:54 +02:00
Matthias Beyer 39dd9e8d7c Add Task trait for getting UUID from task 2017-09-04 09:20:14 +02:00
Matthias Beyer 72ea21ee1f Rename module task -> taskstore 2017-09-04 09:20:14 +02:00
Matthias Beyer 18e806f588 Remove dedicated result modules, use error chain generated Result types 2017-09-04 09:19:29 +02:00
Matthias Beyer eefcfd02dc Allow generated fns from macros to be unused 2017-09-03 22:01:40 +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 936a314efa libimagtodo: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer a5bb7a9bec libimagtimetrack: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer 22cff91653 libimagmail: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer 677a5e8886 libimagdiary: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer 31dc0eebc2 libimagcounter: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer c9dbf76395 libimagbookmark: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer 5b781702cc libimagentryview: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer 0ede39a991 libimagentrytag: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer 8d8a91e7c5 libimagentrycategory: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer 262aae39f4 libimagentryannotation: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer d443b83b52 libimagentrydatetime: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer 0b068df84e libimagnotes: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer 22be1627b7 libimagentryref: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer bb6956740d libimagentrymarkdown: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer 9aa5d7439d libimagentrylist: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer 4b4b0b0804 libimagentryedit: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer ca0dd5906d libimagentrylink: Rewrite error handling 2017-09-03 21:33:54 +02:00
Matthias Beyer ac34b4ee66 libimaginteraction: Rewrite error handling 2017-09-03 21:33:54 +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 5626a365c6 Merge pull request #1044 from matthiasbeyer/libimagrt/feature-testing
Add store extraction to Runtime
2017-09-02 17:25:13 +02:00
Mario Krehl 58a2729da0 Changed Task trait to TaskStore trait, implemented for the Store instead of the FileLockEntry 2017-09-02 14:30:27 +02:00
Matthias Beyer 8c69ed54e4 Merge pull request #1035 from matthiasbeyer/tag-ui-feature-to-bin
Tag ui feature to bin
2017-09-02 14:10:01 +02:00
Mario Krehl f3bb6d02d0 Change the Task(FileLockEntry) type to a trait 2017-09-02 12:23:29 +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 b32245b03a Bugfix: Fix macro to use the appname instead of hardcoded values 2017-09-02 10:41:38 +02:00
Matthias Beyer b787ef1696 Move tagging UI code to binary 2017-09-02 10:16:56 +02:00
Matthias Beyer 1a244a3d6b Add setget test 2017-09-01 20:35:30 +02:00
Matthias Beyer eb32027546 Add test setup with first test 2017-09-01 20:35:30 +02:00
Matthias Beyer 3bad9e2e92 Add entry module 2017-09-01 20:35:30 +02:00
Matthias Beyer 90b3ae1f70 Add base types for the API 2017-09-01 20:35:30 +02:00
Matthias Beyer c2343eda67 Add error, result module 2017-09-01 20:35:30 +02:00
Matthias Beyer fb2dd3017a Initial import 2017-09-01 20:35:30 +02:00
Matthias Beyer 048517a3c2 Fix readme links in cargo metadata 2017-09-01 18:48:02 +02:00
Matthias Beyer 21c15ca207 Adapt imag-diary to compile with the new libimagdiary API 2017-09-01 11:04:07 +02:00
Matthias Beyer 31fa07d43a Add another small helper 2017-09-01 11:04:07 +02:00