Leon Schuermann
6590a4b8cb
imag-notes: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
870a09f1dc
imag-mail: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
4c918c78c0
imag-log: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
621c5f96f8
imag-habit: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
3e12bd99d4
imag-diary: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
3144080488
imag-contact: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
cb69214e72
imag-bookmark: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
ccbd5a1a52
imag-view: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
a68d1ce839
imag-tag: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
4683b205b6
imag-store: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
fec52bdbc5
imag-ref: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
186b03deea
imag-mv: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
4c9998ca1d
imag-markdown: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
aa851a87f5
imag-link: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
208d6e62e6
imag-init: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
0739fed666
imag-ids: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
97c46da599
imag-header: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
a7d55930d7
imag-grep: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
58ac2caf20
imag-gps: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
bfe15c9157
imag-git: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
861af28724
imag-edit: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
a34450a37e
imag-diagnostics: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
79cfa8d9d8
imag-category: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
ec75892516
imag-annotate: implement ImagApplication
...
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
Leon Schuermann
7a37c47263
Add ImagApplication trait for CLI completion + single-binary support
...
To re-add the imag-binary CLI completion, as well as to enable
building a single imag containing all of the subcommands, this commit
introduces an ImagApplication trait to be implemented by all imag
binary crates. The binary crates will be converted to libraries, with
an additional binary target. This enables standalone and single binary
builds.
On its own, this commit doesn't do much, but rather it paves the way
to dynamically interacting with the imag uis/clis using a
library-crate interface.
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2019-10-26 14:41:31 +02:00
564a740741
Merge branch 'store-fixes' into master
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-26 10:43:14 +02:00
2a407d161b
Add some debug output
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-26 09:57:05 +02:00
7348378a96
Fix test: Check whether in cache, then get, then check again
...
After moving an entry, the entry should _not_ be in the cache. This is
just a decision that has to be made, whether we cache the moved entry or
not. I decided to not cache because it is results in less code.
After that check, we get the entry from the backend and then we can
check whether the entry is in the cache, which is then should be.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-26 09:57:05 +02:00
583f972788
Add test: Test moving entry with writing to it before and after moving
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-26 09:57:05 +02:00
d1078590c7
Fix: Testing backend bug where an entry was not properly rewritten
...
When moving an entry, what we did is copying the entry inside the
backend abstraction (the hashmap) from one key to another.
But as the entry itself does also encode its location, we actually have
to rewrite the entire entry. This patch fixes this.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-26 09:57:05 +02:00
a07e03a25c
Fix: Renaming entries should also remove the old entry
...
This is a bugfix for a bug in Store::move_entry_by_id():
The old entry was not removed after the new one was created.
The bug is a bit subtle. The issue was, that the internal cache held
open a reference to the old entry (as StoreEntry object) and when that
object got drop()ed, the contents of the entry were written to disk,
which resulted in the old entry being recreated.
This patch rewrites the function to behave well. The most critical part
is that we do not check whether the old entry is borrowed with
`hsmap.get()` but rather `hsmap.remove()`. The trick here is that the
`StoreEntry` object is dropped in the moment the check is done, clearing
the cached object and flushing it to the backend (the disk).
After that, we continue doing the filesystem operation and the cache is
clean.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-26 09:57:05 +02:00
a6bbcd65f4
Change output to not have quotes when printing string, int, float or bool
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-20 15:05:19 +02:00
eb85635bef
Add trace output
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-20 14:48:17 +02:00
2a23002a07
Fix: --override-config argument can be passed multiple times
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-13 12:21:57 +02:00
cc0f2bf3de
Fix: Add ID reporting
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-13 12:21:47 +02:00
b29afc2dda
Add more debug output
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-13 12:21:41 +02:00
b7e996ccfe
Merge branch 'imag-calendar/init' into master
2019-10-11 21:37:03 +02:00
f1ec71431e
Implement show subcommand
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-11 21:36:44 +02:00
d40bf2956f
Make helper type derive Debug
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-11 21:36:44 +02:00
d201797b98
Add argument to only list events after a certain date
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-11 21:36:44 +02:00
d9ac0c0b07
Add argument to only list events before a certain date
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-11 21:36:44 +02:00
9801a3c295
Add helper function to parse string with kairos
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-11 21:36:44 +02:00
81c6ee8314
Rewrite helper to be less complicated
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-11 21:36:44 +02:00
3da1d9e1d9
Refactor to use new helper function
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-11 21:36:44 +02:00
92a0713ed0
Add filtering for past events
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-11 21:36:43 +02:00
14dc03f40f
Enhance listing functionality with handlebars templating
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-11 21:36:26 +02:00
8dbb2f1590
Add basic listing functionality
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-11 21:36:08 +02:00
61f71d67cc
Add example ref configuration for calendar
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-11 21:36:08 +02:00
2e6df0e458
Add imag-calendar
...
This patch adds a imag-calendar command which features only a "import"
command by now.
This can be used to import calendar entries (events) to imag.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-10-11 21:36:08 +02:00
712eda074d
Merge branch 'libimagcalendar/init' into master
2019-10-11 21:35:51 +02:00