Commit graph

375 commits

Author SHA1 Message Date
9507db6d8e Fix: Binary name
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-08-26 04:24:57 +02:00
b896bc2657 Fix: Do not create entries with Store::retrieve()
This patch fixes a bug where entries where created with
`Store::retrieve()` rather than with the API from libimagdiary.
This caused headers to be missing.

Now, the CLI is parsed for the values passed and a NaiveDateTime object
is crafted from that, which is then passed to libimagdiary.
2018-07-20 01:37:36 +02:00
22d63f0946 Add functionality to create entry at a certain time 2018-07-20 01:37:36 +02:00
8d86af5f15 Fix: Use unused result 2018-06-27 00:43:36 +02:00
eb682d76e8 Prettify error messages 2018-06-15 22:07:13 +02:00
3b97db5c25 Fix: Duplicated printing of entries with "show --all"
The problem was that the used `Diary::diary_names()` iterator does not
call `unique()` on its output.
That decision was made because the return type would get more
complicated with that feature.

Now that rustc 1.26 with Impl Trait is out, we can refactor the return
types of these functions (so also with `Diary::diary_names()`) to
automatically do this.
2018-05-11 15:45:50 +02:00
664edc7943 Update version string: 0.8.0 -> 0.9.0 2018-05-09 11:39:33 +02:00
f85dc02db6 Revert "Deny non-absolut import pathes"
This reverts commit b90abfb868.

Because `libimagcontact` is not based on `libimagentryref` anymore (as
of 2b10ab0b36), and thus does not put
pathes into the header, we can allow non-absolute pathes here.
2018-05-02 19:42:38 +02:00
b86ed2ffa9 Refactor imag-wiki to new store iterator interface 2018-05-01 17:44:20 +02:00
7aca84dd5e Refactor imag-mail to new store iterator interface 2018-05-01 17:44:17 +02:00
519b6f7ef2 Refactor imag-habit to new store iterator interface 2018-05-01 17:44:14 +02:00
11f9a9027e Refactor imag-diary to new store iterator interface 2018-05-01 17:44:09 +02:00
e6244d7e9e Refactor imag-todo to fit new store iterator interface 2018-05-01 17:44:01 +02:00
58a6eea573 Remove the edit command
The edit command of imag-diary gets removed by this patch.

The rationale is that imag-edit is way more powerful and thus, not every
other imag module should implement an edit command. Chaining
`imag-diary list` and `imag edit -I` is encouraged.

We still need the edit functionality in imag-diary, as `imag diary
create` shall spawn an editor, still. We only remove the ability for
editing of existing entries with this patch.
2018-04-30 14:04:16 +02:00
6d21d8eb49 Update dependency: filters: 0.2 -> 0.3 2018-04-29 10:46:36 +02:00
713621337f Adapt for new libimagcontact interface 2018-04-27 16:57:48 +02:00
932ba3e7d4 Set extension or warn if none there
In case of auto-generating the file name, we should add an extension.
If we do not auto-generate the file name, we should warn that the
extension for the file is missing.
2018-04-27 13:58:46 +02:00
493fa0226c
Merge pull request #1453 from matthiasbeyer/imag-contact/create-uid
Fix: Generate UID when creating a contact
2018-04-26 16:16:33 +02:00
ad9eb62376 Fix: Generate UID when creating a contact 2018-04-26 14:43:21 +02:00
07e804a7c8 Fix: Make most fields optional 2018-04-26 14:01:53 +02:00
d6f8751f6e Reimplement imag-contact 2018-04-25 13:45:00 +02:00
a83d10fb1e Remove feature usage 2018-04-25 13:45:00 +02:00
b90abfb868 Deny non-absolut import pathes 2018-04-25 10:33:12 +02:00
279f7ef2aa Fix: Pass output stream to view_entries() 2018-04-24 16:46:23 +02:00
09d34783cb Fix imag-mail to list from appropriate collection 2018-04-24 13:40:42 +02:00
22fb26dc12 Replace Store::retrieve_for_module() with own iterator type 2018-04-24 13:40:42 +02:00
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
ee75d2309c Fix: imag-log show should order by datetime 2018-04-22 14:33:53 +02:00
d742e15763 Do not depend on "version" crate
We should not depend on the version crate, as it is GPL licensed.

We removed the usage of this crate before, but it was still in the
Cargo.toml files (despite being used in the source).
2018-04-22 11:09:31 +02:00
6e80f603d6 Add functionality to list diaries 2018-04-19 21:36:22 +02:00
d2dceb6640 Update version numbers: 0.7.0 -> 0.8.0 2018-04-19 10:05:53 +02:00
b690925e01 Fix: Use fill storeid when listing 2018-04-18 18:32:11 +02:00
4568b1f625
Merge pull request #1380 from matthiasbeyer/minor
Minor patches
2018-04-18 16:46:41 +02:00
962b5fffd8 Remove unused imports/code 2018-04-18 14:32:23 +02:00
2a0bf1cd51 Remove CLI for mainpage setting 2018-04-18 14:32:23 +02:00
8ea3f62fbc Add autolinking 2018-04-18 14:32:23 +02:00
e1ffa4b107 Add name filtering in show command 2018-04-18 14:32:23 +02:00
4450f22c5e Add show subcommand 2018-04-18 14:32:23 +02:00
cc9e7c89d0 Remove grep functionality 2018-04-18 14:32:23 +02:00
caf0e63b35 Rename "create" command to "create-wiki", introduce "create" for creating entries 2018-04-18 14:32:23 +02:00
2c07ad9a3a Implement grep command 2018-04-18 14:32:23 +02:00
2ee6dde75e Add implementation for delete functionality 2018-04-18 14:32:23 +02:00
28f882e6c7 Add implementation for create subcommand 2018-04-18 14:32:23 +02:00
8dd3a57114 Initial import 2018-04-18 14:32:23 +02:00
98f8366e4c Fix documentation in crate metadata 2018-04-17 15:55:08 +02:00
51b9b5c0db Fix: Use qualification 2018-04-14 00:58:40 +02:00
1511d70fa3 Add lints 2018-04-14 00:39:43 +02:00
561008bd7f Add lints 2018-04-14 00:39:43 +02:00
f92163f6d0 Add lints 2018-04-14 00:39:43 +02:00
e71019a2f2 Add lints 2018-04-14 00:39:43 +02:00
ad3269bbcc Add lints 2018-04-14 00:39:43 +02:00
76c8443e50
Merge pull request #1395 from matthiasbeyer/clap-text-wrap
Clap text wrap
2018-04-13 22:46:09 +02:00
aeec10bf76 Use clap with wrap_help feature 2018-04-13 16:19:10 +02:00
b59c234588 Use clap "^2.29" instead of ">=2.29" 2018-04-13 16:17:43 +02:00
532de484f2 Fix: List ids sorted 2018-04-13 13:51:56 +02:00
3dfb17aabd Add functionality to find contacts and print the storeid/file path 2018-04-06 15:42:15 +02:00
2cee4ba90f
Merge pull request #1375 from matthiasbeyer/imag-contact/find-format
imag-contact: Add format argument
2018-04-06 15:32:15 +02:00
c6d0e37629 Fix formatted output, use seperator for lists
The formatted output should use ", " as seperator for lists of values
2018-04-06 14:26:46 +02:00
14fc6c7c7f Add format argument 2018-04-06 14:24:30 +02:00
8c1b4124c0 Handle unknown subcommands in binaries with Runtime::handle_unknown_subcommand 2018-04-04 19:34:13 +02:00
bcdfe3ceea Use variable mutable, so we can create an instance 2018-03-22 21:32:58 +01:00
00d485c3d3 Add parameter to show done habits 2018-03-22 14:36:51 +01:00
e755bfd9de Add JSON output support 2018-03-12 17:46:06 +01:00
6ec509709d
Merge pull request #1336 from matthiasbeyer/imag-contact/find-show
imag-contact: Add "find" command
2018-03-12 17:07:11 +01:00
cbe30fa9c2 Add "find" command
This patch adds a "find" command to imag-contact which can either list
or show the found contacts (defaults to "list").
2018-03-12 15:23:37 +01:00
af4fadf104 Join mails with comma 2018-03-12 14:46:24 +01:00
ee6e766c8d Use generate_runtime_setup() to create Runtime object 2018-03-04 13:57:44 +01:00
50461b839a Use output stream from Runtime::stdout() 2018-03-04 13:57:44 +01:00
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
eccb52a85c Fix imag-log for new Diary::entries() interface 2018-03-02 23:27:20 +01:00
cedbaf1b5c Add "daily" support 2018-03-02 23:10:53 +01:00
776e1dac91 Fix: Hourly/Minutely should set minute/second to zero 2018-03-02 23:10:53 +01:00
affd15a890 Rewrite imag-diary for new Diary::entries() interface 2018-03-02 21:28:40 +01:00
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
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
027c4b3287 Remove usage of libimagentrylist 2018-02-20 15:02:46 +01:00
9ced9008b5 Refactor imag-contact for new libimagentryref API 2018-02-19 12:15:40 +01:00
427ad89e55 Fix broken pipe panics 2018-02-19 11:14:19 +01:00
849229eec6 Fix broken pipe panics 2018-02-19 11:14:19 +01:00
e501f66dac Fix broken pipe panics 2018-02-19 11:14:19 +01:00
23e0f720e5 Fix broken pipe errors 2018-02-19 11:14:18 +01:00
876c1cb9af Fix broken pipe panics 2018-02-19 11:14:18 +01:00
5e78a43242 Fix for broken pipe panics 2018-02-19 11:14:18 +01:00
c2dfb2ef52 Refactor timetrack subcommands output for broken pipe errors 2018-02-19 11:14:18 +01:00
6a341d3723 Abstract exit code as a type 2018-02-19 11:14:18 +01:00
eb2f6fbbe2 Fix for broken pipe errors 2018-02-19 10:40:26 +01:00
013fc75d85 Fix output for broken pipe errors 2018-02-19 10:40:26 +01:00
b586e13a98 Add timewarrior import script 2018-02-18 20:03:50 +01:00
10e7a82a45 Refactor imag-diary 2018-02-18 20:03:50 +01:00
b61547c2d1 Add debug output what is about to be done 2018-02-18 20:03:50 +01:00
3341e3640c
Merge pull request #1224 from matthiasbeyer/git-version-in-version
Git version in version
2018-02-18 20:03:09 +01:00
9469693763 Use new make_imag_version!() macro for building version string 2018-02-13 11:38:34 +01:00
94cad804e1 Use ErrFromStr convenience extension 2018-02-12 21:25:51 +01:00
63f2c70bed Fix imag-notes for new error interface 2018-02-12 21:19:48 +01:00
8128d3ade9 Fix imag-mail for new error interface 2018-02-12 21:19:48 +01:00
ee23f432de Fix imag-contact for new error interface 2018-02-12 21:19:48 +01:00
86abfb88a4 Fix imag-bookmark error handling 2018-02-12 21:19:48 +01:00
ba1c6c06fa Add error chaining for compatibility with new libimagerror interface 2018-02-12 21:19:48 +01:00
7892782675 Refactor error handling 2018-02-12 21:19:48 +01:00
b9800e19e9 Refactor imag-diary to use new error handling interface 2018-02-12 21:19:48 +01:00
77be32d80f Remove "get" iterator, store provides this now 2018-02-11 23:44:27 +01:00
cf0f93104d Add kairos support in "list" subcommand
This patch adds kairos support in the "list" subcommand for the "-f" and
"-t" parameters which limit the entries to show.

Something like

    imag timetrack list --from yesterday

is now possible.
2018-02-11 21:27:15 +01:00
30d2c28a22 Update version string: 0.6.0 -> 0.7.0 2018-02-11 14:22:24 +01:00
fa8af0c053
Merge pull request #1275 from matthiasbeyer/clap-features
Clap features
2018-02-11 13:29:17 +01:00
7f4cdced4a
Merge pull request #1262 from matthiasbeyer/do-not-print-ok
Do not print "Ok" after successful execution
2018-02-10 21:22:12 +01:00
9f48071e48 Do not print "Ok" after successful execution 2018-02-10 16:41:27 +01:00
2dfede240e Alias subcommand "show" to "list" 2018-02-10 16:41:20 +01:00
8656a38c50 Update dependency: clap: 2.17 -> 2.29 2018-02-10 16:40:34 +01:00
9d2900a7dc Compile clap with suggestions and color support 2018-02-10 16:40:34 +01:00
3b710e082d Add missing Cargo.toml metadata 2018-02-10 14:11:46 +01:00
d5a9e4930d Update dates in license header
And add missing header in one file
2018-02-07 02:48:53 +01:00
864e457dce
Merge pull request #1259 from matthiasbeyer/imag-log/no-leading-space
Do not put a leading space in the log
2018-02-06 23:29:22 +01:00
da74896248
Merge pull request #1258 from matthiasbeyer/imag-log/dont-list-non-log-entries
Do not list entries which are not "log" entries
2018-02-06 22:39:13 +01:00
88b7b43d2c Do not put a leading space in the log 2018-02-06 20:54:11 +01:00
f44f13e23a Do not list entries which are not "log" entries 2018-02-06 20:48:47 +01:00
97e613d8c5 Use libimagstore get iterator
Use libimagstore infrastructure to transform iterator in
StoreIdGetIterator for getting entries from store.
2018-02-06 20:41:13 +01:00
3b138ba881
Merge pull request #1231 from matthiasbeyer/update-kairos
Update kairos dependency: 0.1.0-beta-2 -> 0.1.0
2018-02-05 17:30:55 +01:00
e2e3b4f6e2 Update kairos dependency: 0.1.0-beta-2 -> 0.1.0 2018-02-05 16:20:05 +01:00
d1fc8c3995 Add second support in imag-diary commandline interface 2018-02-04 19:51:07 +01:00
da4b823048
Merge pull request #1219 from matthiasbeyer/minor
Minor patches
2018-02-01 13:18:31 +01:00
4d94791b1f Move date <-> string conversion utility to libimagutil 2018-02-01 09:26:33 +01:00
30ef3bf0d3 Comment type fixed 2018-01-29 09:38:32 +01:00
7731b88c97 Remove map_err_trace_exit() calls in favour of map_err_trace_exit_unwrap() 2018-01-29 09:38:32 +01:00
82b67115e6 Refactor: Minify
Pull in new dependencies for minification
2018-01-29 09:38:32 +01:00
74f58d6c06 Remove unused imports 2018-01-29 09:38:32 +01:00
53bf1a513b Implement stopping all tags which are started 2018-01-28 20:51:20 +01:00
3735fbac2f
Merge pull request #1166 from matthiasbeyer/log-0-4-0
Dependency update: log 0.4.0
2018-01-18 15:40:50 +01:00
45ac9b4132 Change list command to use a table for output 2018-01-16 14:48:48 +01:00
635d000344 log: 0.4.0-rc.1 -> 0.4.0 2018-01-15 11:21:52 +01:00
f209e12410 Update dependency: log: 0.3.* -> 0.4.0-rc.1 2018-01-15 11:20:07 +01:00
5beadbbf5b Call default command if no command is passed 2018-01-13 14:36:31 +01:00
284f12e8cb Refactor: Split actual list implementation from argument processing 2018-01-13 14:36:31 +01:00
47e98675e7 imag-todo: Replace read with typed read 2018-01-13 01:14:03 +01:00
55d97e565d imag-log: Replace read with typed read 2018-01-13 01:14:03 +01:00
f0e8e89c15 imag-contact: Replace read with typed read 2018-01-13 01:14:03 +01:00
137680498c imag-bookmark: Replace read with typed read 2018-01-13 01:14:03 +01:00
0c4be78223 Update dependency: toml-query -> 0.6 2018-01-13 01:14:03 +01:00
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
95e861b5ca Adapt for new API 2018-01-08 15:16:14 +01:00
a6fd525c0f Add "show" functionality 2018-01-03 21:09:03 +01:00
3cf1fd0baf Add CLI implementation 2018-01-03 16:54:08 +01:00
7a364639ee Initial import: imag-log 2018-01-03 16:54:08 +01:00
3c8dd19d11 Update version strings: 0.5.0 -> 0.6.0 2017-12-25 19:17:07 +01:00
05a630f943 Change UI. Positional args are not possible here 2017-12-22 14:40:01 +01:00
6a7e7f0f12 Add functionality so we can create a habit with a due date 2017-12-22 14:40:01 +01:00
df16d0737e Adapt for new API of Habit::next_instance_date()
With cd8f0beae8
the interface of `HabitTemplate::next_instance_date()` changed to return
a `Result<Option<_>>` rather than a `Result<_>` because the
next_instance_date could be a None if the Habit was closed already.

This patch adapts imag-habit for this new interface.
2017-12-22 14:40:01 +01:00
501f67dcf2 Add more output in today() 2017-12-22 14:40:01 +01:00
496850a762 Add future-check in CLI and fix for default command invokation 2017-12-22 14:40:01 +01:00
39a983f6fb Add more details to default command 2017-12-22 14:40:01 +01:00
7cf46f99d4 Add done functionality 2017-12-22 14:40:01 +01:00
b78095d8bc Impl delete() 2017-12-22 14:40:01 +01:00
ff39a450b1 Explicitely state that printing an empty table is forbidden 2017-12-22 14:40:01 +01:00
404d839310 Make "today" the default command 2017-12-22 14:40:01 +01:00
0fa1ae28f8 Let "today" command list upcoming habits 2017-12-22 14:40:01 +01:00
5574764d83 Add a subcommand to list habits due today 2017-12-22 14:40:01 +01:00
2520635cae Add support for listing the next date when the habit must be done 2017-12-22 14:40:01 +01:00
6e7414a2fd Implement show() 2017-12-22 14:40:01 +01:00
915b1325d2 Implement list() 2017-12-22 14:40:01 +01:00
528b30c1ff Implement create() 2017-12-22 14:40:01 +01:00
d1848e9186 Add CLI spec 2017-12-22 14:40:01 +01:00
be79f6373e Import crate for imag-habit 2017-12-22 14:40:01 +01:00
04d5af8d50 Switch to upstream rust-vobject 2017-11-09 11:21:17 +01:00
521d661f1c Fix path 2017-11-09 11:21:17 +01:00
00c73d53c7 Phone and email information is in the person table 2017-11-09 11:21:17 +01:00
c8a8bdcd22 Fix format and location of content 2017-11-09 11:21:17 +01:00
c90d0ab34a Fix UUID-Filename creating, add debug output 2017-11-09 11:21:17 +01:00
296136fca5 Add tests 2017-11-09 11:21:17 +01:00
524df37ca6 Add parsing of personal information: Birthday 2017-11-09 11:21:17 +01:00
794efb0034 Outsource functional part for testability 2017-11-09 11:21:17 +01:00
e211aba341 Implement create subcommand
The complexity of the create() routine justifies the move to another file.

This commit implements the create() functionality which creates a TOML
tempfile which the user should edit and then reads the contents to build
the Vcard object which then gets written to either stdout or the
destination file.

Besides that:

* Move helper function to util module
* Rewrite and fix tests
2017-11-09 11:20:32 +01:00
ab8c8e4e41 Add new required dependencies 2017-11-09 11:19:17 +01:00
d0ec7e26dc Add implementation for imag-contact
* Implement contact listing with formatting via commandline or config
* Implement importer functionality for contact
* Implement "show" subcommand
* imagrc.toml: Add explanation which fns are supported in templates
2017-11-09 11:19:17 +01:00
0540ae9392 Initial import of imag-contact 2017-11-09 11:15:04 +01:00
9308c05057 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
1dda98e17e Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
a20871eb5e Add badges in Cargo.toml of all crates 2017-10-31 15:03:30 +01:00
b237adfe19 Fix calls to Runtime::config() to use direct result 2017-10-31 09:25:14 +01:00
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
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
815cde76d0 Rewrite .map_err_trace_exit().unwrap() with new helper fn 2017-10-12 20:15:46 +02:00
013e82f04f Update dependency: filters: 0.1 -> 0.2 2017-10-12 19:48:01 +02:00
67a127f700 Update dependency: itertools: 0.6 -> 0.7 2017-10-12 19:45:50 +02:00
169107d569 Remove FoldResult 2017-09-30 10:45:10 +02:00
643db0df3a Remove libimagcounter / imag-counter 2017-09-28 22:41:23 +02:00
73f6016221 Update version strings: 0.4.0 -> 0.5.0 2017-09-24 13:05:01 +02:00
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
26a0038ac2 Merge pull request #1073 from matthiasbeyer/imag-bookmark/configurable
Make default bookmark collection configurable via imagrc.toml
2017-09-16 09:52:08 +02:00
d7d4d9fa7a Make default bookmark collection configurable via imagrc.toml 2017-09-15 21:46:15 +02:00
1ffc45a4c0 Use positional args 2017-09-15 21:07:01 +02:00
2bbda59051 Refactor and simplify imag-notes binary 2017-09-15 13:53:16 +02:00
2f0fa2b6ca Merge pull request #1068 from matthiasbeyer/imag-timetrack/fix-track-command
Fix: Let the track command parse the start/end time more intelligently
2017-09-15 12:38:42 +02:00
e049559bed Fix: Let the track command parse the start/end time more intelligently
It understands "now" from this point and can parse dates or date-times
(whereas dates get normalized to date + hour 0, minute 0, second 0).
2017-09-14 20:49:10 +02:00
dc78c0e448 Change create() to check config and commandline whether entry should be created timed or not 2017-09-14 18:59:03 +02:00
dbf529e427 Add config parsing helpers 2017-09-14 18:58:40 +02:00
ea982204b9 Add new deps: toml, toml_query 2017-09-14 18:58:17 +02:00
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
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
6d1dab3117 Merge pull request #1029 from matthiasbeyer/all-extensions-as-traits
All extensions as traits
2017-09-04 21:59:54 +02:00
51650bf043 Small embellishments
Fix false documentation, make warn!() into error!() and provide more
information in the logged message.
2017-09-04 16:24:50 +02:00
72ea21ee1f Rename module task -> taskstore 2017-09-04 09:20:14 +02:00