Commit Graph

5474 Commits

Author SHA1 Message Date
Matthias Beyer e07e30a502 Add changelog entry 2018-03-10 15:00:38 +01:00
Matthias Beyer da408b9e67 This fixes the file parsing (again)
Unfortunately, our latest fix to file parsing did not solve all issues.
So we have to fix it _again_.

The problem was the `std::str::Lines` iterator, which apparently fails
this:

    assert_eq!(1, "".lines().count());

as an empty line seems not to be a line.

Because of that, when reading a file with an empty line at its bottom
got stripped off that line.

This patch removes the use of the `lines()` iterator and uses
`split("\n")` instead. This only works on Unix operating systems, but as
we only target unix operating systems with imag, this is not considered
an issue right now.

This patch also adds extensive tests on multiple levels in the
`libimagstore` implementation:

* On the parsing level, for the function which implements the parsing
* On the filesystem abstraction levels
* On the `Store` levels

to make sure that everything is parsed correctly.
2018-03-10 14:53:15 +01:00
Matthias Beyer a0b989efdf
Merge pull request #1323 from matthiasbeyer/do-not-have-to-update-version-numbers-in-tests
Replace hard coded version strings with compiletime env
2018-03-06 14:39:03 +01:00
Matthias Beyer 579c00b62a Replace hard coded version strings with compiletime env 2018-03-06 12:45:41 +01:00
Matthias Beyer 8c1a9ffe67
Merge pull request #1325 from matthiasbeyer/libimagrt/locked-io
libimagrt: locked io
2018-03-04 21:26:20 +01:00
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 763f3fab86
Merge pull request #1315 from matthiasbeyer/libimagrt/provide-io
libimagrt: provide io
2018-03-04 14:42:47 +01:00
Matthias Beyer ee6e766c8d Use generate_runtime_setup() to create Runtime object 2018-03-04 13:57:44 +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 50461b839a Use output stream from Runtime::stdout() 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 590a2e8f1d
Merge pull request #1317 from matthiasbeyer/imag-diary/daily
imag diary: "daily" support + Fixes for other timed entries
2018-03-03 13:29:10 +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 eccb52a85c Fix imag-log for new Diary::entries() interface 2018-03-02 23:27:20 +01:00
Matthias Beyer 39a00dc65a Add changelog 2018-03-02 23:11:04 +01:00
Matthias Beyer cedbaf1b5c Add "daily" support 2018-03-02 23:10:53 +01:00
Matthias Beyer 776e1dac91 Fix: Hourly/Minutely should set minute/second to zero 2018-03-02 23:10:53 +01:00
Matthias Beyer 7cd3bb059f
Merge pull request #1319 from matthiasbeyer/libimagstore/fix-read-into-single-line-bug
libimagstore: fix read into single line bug
2018-03-02 23:10:06 +01:00
Matthias Beyer 2089f96464 Add changelog entry 2018-03-02 21:52:14 +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 affd15a890 Rewrite imag-diary for new Diary::entries() interface 2018-03-02 21:28:40 +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
Matthias Beyer ef3b60eea5
Merge pull request #1310 from Dylan-DPC/patch-1
Update uuid to 0.6
2018-02-26 17:32:47 +01:00
Dylan DPC e7a5e73d25 Update Cargo.toml 2018-02-26 17:04:53 +05:30
Matthias Beyer 9c63c82063
Merge pull request #1312 from matthiasbeyer/libimagentrylink/unlink
libimagentrylink: unlink
2018-02-25 19:45:29 +01:00
Matthias Beyer 35ac7ba927 Provide unlink() CLI interface 2018-02-25 18:59:02 +01:00
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 9b852948f8
Merge pull request #1308 from matthiasbeyer/libimagerror/fix-trace-width
Fix trace count space width
2018-02-20 21:46:35 +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 944b81195b
Merge pull request #1305 from matthiasbeyer/libimagerror/writeln-fix
Use writeln!() instead of write!()
2018-02-20 20:13:40 +01:00
Matthias Beyer a72f6482f6 Add changelog for libimagerror trace writeln!() fix 2018-02-20 19:25:49 +01:00
Matthias Beyer 00b86709b6 Use writeln!() instead of write!() 2018-02-20 19:24:34 +01:00
Matthias Beyer f38a4eb723
Merge pull request #1304 from matthiasbeyer/imag-init/imag-version-generator
Use the make_imag_version!() helper
2018-02-20 19:21:08 +01:00
Matthias Beyer c2b754dbec
Merge pull request #1303 from matthiasbeyer/imag-diary/fix-list-diary-name-passing
Fix order of evaluation
2018-02-20 18:37:55 +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 c4b33005fd Increase gap size 2018-02-20 17:46:50 +01:00
Matthias Beyer 59ea31a077 Use the make_imag_version!() helper 2018-02-20 17:45:14 +01:00
Matthias Beyer 0315ee4fc2 Add changelog for imag-diary diary name presence fix 2018-02-20 17:32:52 +01:00
Matthias Beyer 848bdd98d7 Add changelog for libimagdiary marker fix 2018-02-20 17:32:30 +01:00
Matthias Beyer 404e9deed2 Add some debug output 2018-02-20 17:29:03 +01:00
Matthias Beyer 0cde88d661 Fix order of evaluation
We need to evaluate the commandline argument first and if there is none,
we use the default.

This patch fixes that bug.
2018-02-20 17:27:42 +01:00
Matthias Beyer 585261d468 Add "isflag" support 2018-02-20 17:18:46 +01:00
Matthias Beyer 9c98d8f56e
Merge pull request #1298 from matthiasbeyer/remove-libimagentrylist
Remove libimagentrylist
2018-02-20 15:42:41 +01:00