Commit Graph

647 Commits

Author SHA1 Message Date
Matthias Beyer 2c52957b63 Replace call to retrieve_for_module() with entries()
The iterator type handles everything else.
2018-04-24 13:40:42 +02:00
Matthias Beyer 190da895f9 Do not use Store::retrieve_for_module() anymore here 2018-04-24 13:40:42 +02:00
Matthias Beyer 22fb26dc12 Replace Store::retrieve_for_module() with own iterator type 2018-04-24 13:40:42 +02:00
Matthias Beyer 007c02c2f1 Rewrite all_category_names() for removed Store::retrieve_for_module() 2018-04-24 13:40:42 +02:00
Matthias Beyer 255f4211c9 Rewrite use of iterator with own iterator implementation 2018-04-24 13:40:42 +02:00
Matthias Beyer bae9188a08 Remove GlobStoreIdIterator helper iterator type 2018-04-24 13:40:42 +02:00
Matthias Beyer d70092d691 Remove: Store::retrieve_for_module 2018-04-24 13:40:42 +02:00
Matthias Beyer 9303a72a28
Merge pull request #1436 from matthiasbeyer/imag-log/show-ordered
Fix: imag-log show should order by datetime
2018-04-22 15:55:25 +02:00
Matthias Beyer 93226ce987
Merge pull request #1434 from matthiasbeyer/libimagdiary/fix-youngest-entry
Fix: get_youngest_entry_id()
2018-04-22 15:06:26 +02:00
Matthias Beyer ee75d2309c Fix: imag-log show should order by datetime 2018-04-22 14:33:53 +02:00
Matthias Beyer 86b60295ee Fix: get_youngest_entry_id()
We need to reverse the iterator for getting the _youngest_ entry here.

Also seems to fix the issue that imag-diary edit -d <date> did not work
properly.
2018-04-22 14:11:19 +02:00
Matthias Beyer 19940d3e1c Set version string by hand here if we do not build with cargo 2018-04-22 13:38:24 +02:00
Matthias Beyer 8262de29fe Update dependency: log: 0.4.0-rc.1 -> 0.4 2018-04-20 20:19:02 +02:00
Matthias Beyer d08a5ab536
Merge pull request #1417 from matthiasbeyer/libimagrt/suggest-imag-init
Suggest imag-init if no config is found
2018-04-20 09:24:44 +02:00
Matthias Beyer 91a72709f8 Add wrapping functionality to StdoutViewer 2018-04-19 21:54:39 +02:00
Matthias Beyer 808689cc05 Suggest imag-init if no config is found 2018-04-19 10:57:13 +02:00
Matthias Beyer d2dceb6640 Update version numbers: 0.7.0 -> 0.8.0 2018-04-19 10:05:53 +02:00
Matthias Beyer 38726c5906 Always use stdout via output proxy
The switching between stdout and stderr on an automated basis caused
errors in the using code, where output was redirected but shouldn't.
2018-04-18 17:58:07 +02:00
Matthias Beyer 542c7e7101 Make stdin always available
Because we do not implement the store piping and pipe magic, the stdin
stream should always be available.
2018-04-18 17:42:04 +02:00
Matthias Beyer 4568b1f625
Merge pull request #1380 from matthiasbeyer/minor
Minor patches
2018-04-18 16:46:41 +02:00
Matthias Beyer 51205af668
Merge pull request #1400 from matthiasbeyer/imag-wiki/init
imag-wiki: init
2018-04-18 15:42:27 +02:00
Matthias Beyer 95d3fbebcc
Merge pull request #1182 from matthiasbeyer/libimagwiki/init
libimagwiki: init
2018-04-18 15:13:56 +02:00
Matthias Beyer 9daf2cae86 Update dependency: task-hookrs: master -> 0.5 2018-04-18 14:59:26 +02:00
Matthias Beyer adede7bf26 Remove notion of "main page" 2018-04-18 14:32:23 +02:00
Matthias Beyer 6f16924514 Remove functionality to delete whole wiki 2018-04-18 14:32:09 +02:00
Matthias Beyer 88b57910df
Merge pull request #1403 from matthiasbeyer/remove-pipe-magic
Revert "Implement pipe magic in libimagrt"
2018-04-17 17:39:54 +02:00
Matthias Beyer 98f8366e4c Fix documentation in crate metadata 2018-04-17 15:55:08 +02:00
Matthias Beyer d7cfab797f Revert "Implement pipe magic in libimagrt"
This reverts commit ce0bd9298a.

Pipe magic is removed with this patch.

We remove pipe magic because its implementation in libimagstore is too
complicated and the benefits are too small.
Having this functionality would be really nice, but the cost-benefit
ratio would still be too high.
The implementation in the store would require a rewrite of the internal
caching functionality in the store, plus some functionality to serialize
and deserialize the cache. This is theoretically possible, but as the
store only knows about "StoreEntry" objects, and only the backend knows
of "Entry" (which would be simply de/serializeable), the complexity
increases a _lot_.

Hence, we drop this feature-idea here.

Maybe, at some later point, this functionality will be in imag. The
history of development of this feature is in the history, we just don't
have it merged.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-04-16 13:30:59 +02:00
Matthias Beyer 816708a1aa Add documentation for type 2018-04-16 10:53:23 +02:00
Matthias Beyer 8928f9cb94 Automatically create "index" and link new pages 2018-04-16 10:53:23 +02:00
Matthias Beyer 5e51a77b3f Add logging output 2018-04-15 10:27:33 +02:00
Matthias Beyer 918d7a76b6 Add Wiki::delete_entry() 2018-04-15 10:27:09 +02:00
Matthias Beyer 2b8a83d9a7 Add entry getter function 2018-04-15 10:27:09 +02:00
Matthias Beyer c242a362e4 Add id iterator 2018-04-15 10:27:09 +02:00
Matthias Beyer bb0d4319c3 Initial import: libimagwiki 2018-04-15 10:27:09 +02:00
Matthias Beyer 899f3b9eb9 Update dependency: toml-query: 0.4 -> 0.6 2018-04-15 09:15:16 +02:00
Matthias Beyer 0f19b7e4b2 Use --verbose with "info" level by default 2018-04-15 08:38:11 +02:00
Matthias Beyer c0607ba2e2 Fix log level setting in runtime
Do not immediately set log level to Level::Info if argument is present,
but check value, too.
2018-04-14 21:27:16 +02:00
Matthias Beyer 604f350340 Add logging in store 2018-04-14 16:55:36 +02:00
Matthias Beyer fb4917d050 Remove feature to generate commandline completion scripts 2018-04-14 14:35:28 +02:00
Matthias Beyer 207346bea0 Add lints 2018-04-14 00:41:31 +02:00
Matthias Beyer 40b85f13b5 Add lints 2018-04-14 00:41:31 +02:00
Matthias Beyer d02b298d5a Add lints 2018-04-14 00:41:31 +02:00
Matthias Beyer a40d90fef2 Add lints 2018-04-14 00:41:31 +02:00
Matthias Beyer 76c8443e50
Merge pull request #1395 from matthiasbeyer/clap-text-wrap
Clap text wrap
2018-04-13 22:46:09 +02:00
Matthias Beyer 3819dabff1 Remove attribute
This fixes a crash with the (beta) compiler rustc 1.26.
2018-04-13 16:41:42 +02:00
Matthias Beyer aeec10bf76 Use clap with wrap_help feature 2018-04-13 16:19:10 +02:00
Matthias Beyer b59c234588 Use clap "^2.29" instead of ">=2.29" 2018-04-13 16:17:43 +02:00
Matthias Beyer 00b6f4ded3
Merge pull request #1394 from matthiasbeyer/libimagentryref/fix-path-when-making-ref
Fix: Pass the right path variable here
2018-04-13 15:54:38 +02:00
Matthias Beyer 731b97cccb Fix: Pass the right path variable here
The ref library passed the wrong variable as path which caused the
setting in the entries to be wrong.

This patch fixes this.
2018-04-13 14:06:15 +02:00
Matthias Beyer ae5c4cf9ba Fix: view entries sorted 2018-04-13 13:41:02 +02:00
Matthias Beyer c27dc79afe
Merge pull request #1383 from matthiasbeyer/libimagrt/handler-exit-if-subcommand-not-found
libimagrt: Exit if handler does not find subcommand
2018-04-08 22:21:19 +02:00
Matthias Beyer 16a76f6213 Exit if handler does not find subcommand 2018-04-08 20:38:46 +02:00
Matthias Beyer 2017874a8b Add debug output 2018-04-08 20:29:14 +02:00
Matthias Beyer c5c9c7b9ba Fix: Editor commands should be split at whitespace
This fixes the following problem:

If the editor setting was "vim " instead of "vim", the editor was called
with `"vim" " "`, which resulted in unexpected behaviour.

The patch fixes this.
2018-04-08 20:28:11 +02:00
Matthias Beyer a769186cd7 Make iterator lifetimes less restricting 2018-04-07 13:55:54 +02:00
Matthias Beyer 93195b3bad Default clap app builder: Allow external subcommands 2018-04-04 19:34:13 +02:00
Matthias Beyer cb8b5a0cf6 Add helper for handling unknown subcommands 2018-04-03 18:23:01 +02:00
Matthias Beyer e61ccc9561 Fix: Entry::to_str() should return Result<_>
Because serializing might fail.

Also fixes all usages of the API.
2018-03-26 14:24:42 +02:00
Matthias Beyer 7429754665 Rewrite edit_in_tmpfile() for new Runtime::editor() signature 2018-03-23 23:55:11 +01:00
Matthias Beyer ea38f2ffbf Fix: Pass /dev/tty as stdin for editor
This fixes the issue that spawning the editor trashes the terminal.

The signature of the Runtime::editor() function changed, which has to be
fixed in using code.
2018-03-23 23:55:06 +01:00
Matthias Beyer 13af364b76 Add header editing support 2018-03-23 17:16:40 +01:00
Matthias Beyer 9e0d0d9f6c Add Entry::replace_from_buffer() 2018-03-23 15:44:34 +01:00
Matthias Beyer aa32dd1ec2 Add debugging output if kairos fails to parse input 2018-03-23 10:05:58 +01:00
Matthias Beyer 6f33e4e322 Add debug output 2018-03-23 10:05:58 +01:00
Matthias Beyer bcdbb8197a Use "ui" module in libimagtimeui 2018-03-23 10:05:58 +01:00
Matthias Beyer 7e623f39b8 Add message why panic
So we see that when grepping the source for `unimplemented!()`.
2018-03-23 10:05:58 +01:00
Matthias Beyer 835c003491
Merge pull request #1360 from matthiasbeyer/libimaghabit/create-vs-retrieve
Fix: Use retrieve in retrieve variant
2018-03-23 10:03:52 +01:00
Matthias Beyer 96f4f93ed0
Merge pull request #1356 from matthiasbeyer/libimaghabit/link-new-instances
Fix: libimaghabit::habit::HabitTemplate should link created instances…
2018-03-23 10:03:44 +01:00
Matthias Beyer c39a1f82e2
Merge pull request #1355 from matthiasbeyer/libimagstore/create-semantic-fix
Fix: Store::create() should fail if the entry exists
2018-03-22 22:04:29 +01:00
Matthias Beyer 30233456df Fix: Use retrieve in retrieve variant 2018-03-22 21:34:00 +01:00
Matthias Beyer b62d7eab85 Fix: libimaghabit::habit::HabitTemplate should link created instances to the template 2018-03-22 21:32:58 +01:00
Matthias Beyer c857f97287
Merge pull request #1357 from matthiasbeyer/libimaghabit/create-vs-retrieve
Libimaghabit/create vs retrieve
2018-03-22 21:20:26 +01:00
Matthias Beyer 41f7bab1c5 Fix: Store::create() should fail if the entry exists 2018-03-22 21:16:11 +01:00
Matthias Beyer e4fc2e8010
Merge pull request #1354 from matthiasbeyer/libimaghabit/check-is-done-for-date
Add helper to check whether an instance exists for a date
2018-03-22 14:36:32 +01:00
Matthias Beyer 247b9499a7 Refactor for less verbose code 2018-03-22 14:00:10 +01:00
Matthias Beyer 2232f0153f Dedup code 2018-03-22 13:54:15 +01:00
Matthias Beyer 964b168f18 Add "retrieve" variants for retrieving instances
and fix create implementation to use `Store::create()`, which did the
wrong thing.
2018-03-22 13:51:12 +01:00
Matthias Beyer 45fdeb4e18 Add helper to check whether an instance exists for a date 2018-03-22 13:44:41 +01:00
Matthias Beyer 3d7be3a1e0
Merge pull request #1349 from matthiasbeyer/libimagentryref/fixes
Fix: Allocating of buffer does not work as expected with Vec::with_ca…
2018-03-21 18:04:37 +01:00
Matthias Beyer d2eb4936b1 Fix: Allocating of buffer does not work as expected with Vec::with_capacity() 2018-03-20 16:51:19 +01:00
Matthias Beyer 5ceeacd6c8 Provide Ref::make_ref() for making a ref out of an existing entry 2018-03-19 14:18:02 +01:00
Matthias Beyer a23afa7772 Ensure command and args are provided correctly 2018-03-13 08:32:40 +01:00
Matthias Beyer b8c3f7f834 Read editor from configuration, ignore errors 2018-03-13 08:32:40 +01:00
Matthias Beyer fb9866bd46
Merge pull request #1342 from matthiasbeyer/libimagentryedit/fix-editor-stdinerr-inherit
libimagentryedit: fix editor stdinerr inherit
2018-03-12 21:14:01 +01:00
Matthias Beyer 43a3f4a5db Fix editor command
do inherit stdin and stderr from parent process, to not break terminal
editors when editing stuff.

vim printed "Input not from terminal" warning messages. This was fixed
by this commit.
2018-03-12 20:08:10 +01:00
Matthias Beyer 5d9fd7ab10 Simplify error handling by using linking feature of error-chain 2018-03-12 19:21:48 +01:00
Matthias Beyer e8ae2fb73e Add type so that we can serialize a Vcard 2018-03-12 17:45:50 +01:00
Matthias Beyer bbd0570013
Merge pull request #1334 from matthiasbeyer/libimagcontact/ref-from-uid
Change ref creation to use UID from vcard object
2018-03-12 17:06:54 +01:00
Matthias Beyer 6803d66e87
Merge pull request #1324 from matthiasbeyer/minor
Minor patches
2018-03-12 15:23:12 +01:00
Matthias Beyer 65d558727e Change ref creation to use UID from vcard object 2018-03-12 14:43:02 +01:00
Matthias Beyer 252046583a
Merge pull request #1332 from matthiasbeyer/libimagcontact/all-contacts
Implement ContactStore::all_contacts()
2018-03-12 14:17:54 +01:00
Matthias Beyer 68ace5d147 Fix typo 2018-03-12 13:32:23 +01:00
Matthias Beyer 8a9b2e9a8f Fix: use Path::file_stem() instead of Path::file_name()
Because we don't want to know the extension of the filename here.
2018-03-12 13:30:31 +01:00
Matthias Beyer 3bf1b6ccec Implement ContactStore::all_contacts() 2018-03-12 12:52:24 +01:00
Matthias Beyer d3b38b5a90
Merge pull request #1330 from matthiasbeyer/libimagrt/pipe-magic
Implement pipe magic in libimagrt
2018-03-10 16:20:36 +01:00
Matthias Beyer ce0bd9298a Implement pipe magic in libimagrt
When we merged the changes in libimagrt so that it automatically detects
whether stdin/stdout is a TTY and provides the user with stderr in case
stdout is not a TTY, we forgot that things like

    imag foo | grep bar

becomes impossible with that, because imag detects that stdout is not a
tty and automatically uses stderr for output.

But in this case, we don't want that. The output has to be stdout in
this case.

With this change, we have a flag in the runtime ("--pipe-magic" or "-P",
globally available) which turns on "pipe magic".

The expected behaviour is the following, if "-P" is passed:

* If stdout is a TTY, we print to stdout
* If stdout is not a TTY, we print to stderr
* If stdin is not a TTY, we do not provide it

If "-P" is not passed, we allow the user of libimagrt to use stdin for
interactive stuff (the interactive stuff is not yet implemented).

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-03-10 15:43:44 +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 579c00b62a Replace hard coded version strings with compiletime env 2018-03-06 12:45:41 +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 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 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 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 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 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
Dylan DPC e7a5e73d25 Update Cargo.toml 2018-02-26 17:04:53 +05:30
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 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 00b86709b6 Use writeln!() instead of write!() 2018-02-20 19:24:34 +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 404e9deed2 Add some debug output 2018-02-20 17:29:03 +01:00
Matthias Beyer 585261d468 Add "isflag" support 2018-02-20 17:18:46 +01:00
Matthias Beyer 5773e8a6c8 Remove libimagentrylist 2018-02-20 15:02:46 +01:00
Matthias Beyer 027c4b3287 Remove usage of libimagentrylist 2018-02-20 15:02:46 +01:00
Matthias Beyer 2c0c8347e9
Merge pull request #1285 from matthiasbeyer/libimagentryref/refactor
libimagentryref: Rewrite
2018-02-19 14:18:17 +01:00
Matthias Beyer 7653a040da
Merge pull request #1294 from matthiasbeyer/libimagstore/store-debug-fix
Simplify Store debug impl
2018-02-19 12:27:37 +01:00
Matthias Beyer 88ffe8084c Merge branch 'libimagentrymarkdown/refactor-libimagref-api-usage' into libimagentryref/refactor 2018-02-19 12:17:53 +01:00
Matthias Beyer b9b15957fc Merge branch 'libimagmail/rewrite-libimagref-api-usage' into libimagentryref/refactor 2018-02-19 12:17:48 +01:00
Matthias Beyer 672873c2f1 Make UniqueContactPathGenerator pub 2018-02-19 12:15:39 +01:00
Matthias Beyer 719daf952b Refactor libimagcontact for new libimagentryref API 2018-02-19 12:15:39 +01:00
Matthias Beyer c36250e42f Adapt to new libimagentryref API 2018-02-19 12:15:31 +01:00
Matthias Beyer 30ad7d89b1 Reimplement libimagmail for new libimagentryref interface 2018-02-19 12:15:22 +01:00
Matthias Beyer 1153fb180b Add function to delete a reference header entry 2018-02-19 12:14:32 +01:00
Matthias Beyer fd6a7f877a Remove private macro 2018-02-19 12:14:32 +01:00
Matthias Beyer a1a85f40d0 Add default generators 2018-02-19 12:14:32 +01:00
Matthias Beyer 2328c8b2b0 Take AsRef<str> rather than &String 2018-02-19 12:14:32 +01:00
Matthias Beyer cbb47cffcb Implement Ref functions 2018-02-19 12:14:32 +01:00
Matthias Beyer ed69fd4b35 Enrich error types 2018-02-19 12:14:32 +01:00
Matthias Beyer 81a8826740 Add impl for RefStore::{get,create,retrieve}_ref() 2018-02-19 12:14:32 +01:00
Matthias Beyer 1014f58cfc Rewrite interface 2018-02-19 12:14:32 +01:00
Matthias Beyer 73af121882 Remove old concepts 2018-02-19 12:14:32 +01:00
Matthias Beyer 5f99018807 Simplify store debug print 2018-02-19 11:51:21 +01:00
Matthias Beyer c2dfb2ef52 Refactor timetrack subcommands output for broken pipe errors 2018-02-19 11:14:18 +01:00
Matthias Beyer 6a341d3723 Abstract exit code as a type 2018-02-19 11:14:18 +01:00
Matthias Beyer 256bc47222 Refactor into two independent extensions 2018-02-19 10:40:26 +01:00
Matthias Beyer 39107c5296 Add result extension for translating io errors to exit codes 2018-02-19 10:40:26 +01:00
Matthias Beyer 841d3ffb60 Remove OnErr extension which is not used 2018-02-18 20:04:22 +01:00
Matthias Beyer 2b26db70ed Make HabitBuilder derive Debug 2018-02-18 20:03:50 +01:00
Matthias Beyer 3341e3640c
Merge pull request #1224 from matthiasbeyer/git-version-in-version
Git version in version
2018-02-18 20:03:09 +01:00
Matthias Beyer 3bd8822f4f Use version string from git, if present 2018-02-13 11:53:51 +01:00
Matthias Beyer f5f4fbc397 Add buildscript and infrastructure to include git information in version 2018-02-13 11:38:34 +01:00
Matthias Beyer 5b07baddf8 Add error convenience extension 2018-02-12 21:22:39 +01:00
Matthias Beyer 50b0ffa6ae Remove calls to trace_error_exit() 2018-02-12 21:19:48 +01:00