Commit Graph

41 Commits

Author SHA1 Message Date
Matthias Beyer 334e9e3954 Add debug output
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-11 03:52:04 +01:00
Matthias Beyer 90eaeb642a Remove magic constants in trace_unwrap_exit/map_err_trace_exit_unwrap calls
This patch removes the magic constant we used when calling
`trace_unwrap_exit()` or `map_err_trace_exit_unwrap()`.
We used to call it with `1` as parameter, where the number was the exit
code to use. Now the implementation of the function does it
automatically (using 1 (one) as exit code).

All calls of these functions were fixed. Thanks to vim this was easy.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-11 03:52:04 +01:00
Matthias Beyer f1a639ea8c Change id reporting API to return ExitCode
Because this API only errors when write!() errors occur, we can return
the exit code as an error here.

This way the user of the API can immediately exit if there was an IO
error, but the API automatically takes care of the right return value,
returning (exiting) with zero (0) if there was an "Broken pipe" error
and with one (1) otherwise, which is the expected behaviour here.

All calls to that API were changed accordingly.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-11 03:22:56 +01:00
Matthias Beyer 84aef82258 Fix: "status" subcommand might not be present
If we call 'imag-habit' without a subcommand, we assume "today". Thus it
might occur that the "status" subcommand match is not present, hence we
have to assume `false` here as default value.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-09 01:03:34 +01:00
Matthias Beyer 9185abcfa5 Update copyright years
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-01-03 18:41:36 +01:00
Matthias Beyer 9fca66aa89 Forbid unsafe code in all crates 2018-11-11 13:05:55 +01:00
Matthias Beyer 35291d68ad Make code more idomatic
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-09 21:48:26 +01:00
Matthias Beyer 502cdf5721 Add ID reporting in imag-habit 2018-11-06 20:35:18 +01:00
Matthias Beyer 17913ae3fd Optimize implementation: Less matches
This patch simplifies the code to be not three nested matches but rather
one match and then some function chaining.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-06 14:48:49 +01:00
Matthias Beyer 8223f846b4 Use new "ask" function interface with input/output stream params
In the imag-contact crate we had to rewrite the ask_continue!{} macro
as a function for less headache, but besides that this is a rather
straight-forward patch for adapting to the new interface.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-01 20:33:24 +01:00
Matthias Beyer 8fb35b5fe1 imag-habit: Move from error-chain to failure
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:29 +01:00
Matthias Beyer 502889b9a2 Update dependency: prettytable: 0.6 -> 0.8 2018-10-06 12:21:20 +02:00
Matthias Beyer e0156bf4ad Fix: Use unused result 2018-06-27 00:43:24 +02:00
Matthias Beyer 519b6f7ef2 Refactor imag-habit to new store iterator interface 2018-05-01 17:44:14 +02:00
Matthias Beyer 8c1b4124c0 Handle unknown subcommands in binaries with Runtime::handle_unknown_subcommand 2018-04-04 19:34:13 +02:00
Matthias Beyer bcdfe3ceea Use variable mutable, so we can create an instance 2018-03-22 21:32:58 +01:00
Matthias Beyer 00d485c3d3 Add parameter to show done habits 2018-03-22 14:36:51 +01:00
Matthias Beyer 50461b839a Use output stream from Runtime::stdout() 2018-03-04 13:57:44 +01:00
Matthias Beyer 027c4b3287 Remove usage of libimagentrylist 2018-02-20 15:02:46 +01:00
Matthias Beyer 5e78a43242 Fix for broken pipe panics 2018-02-19 11:14:18 +01:00
Matthias Beyer b61547c2d1 Add debug output what is about to be done 2018-02-18 20:03:50 +01:00
Matthias Beyer 9469693763 Use new make_imag_version!() macro for building version string 2018-02-13 11:38:34 +01:00
Matthias Beyer 9f48071e48 Do not print "Ok" after successful execution 2018-02-10 16:41:27 +01:00
Matthias Beyer d5a9e4930d Update dates in license header
And add missing header in one file
2018-02-07 02:48:53 +01:00
Matthias Beyer 4d94791b1f Move date <-> string conversion utility to libimagutil 2018-02-01 09:26:33 +01:00
Matthias Beyer 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
Matthias Beyer 6a7e7f0f12 Add functionality so we can create a habit with a due date 2017-12-22 14:40:01 +01:00
Matthias Beyer 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
Matthias Beyer 501f67dcf2 Add more output in today() 2017-12-22 14:40:01 +01:00
Matthias Beyer 496850a762 Add future-check in CLI and fix for default command invokation 2017-12-22 14:40:01 +01:00
Matthias Beyer 7cf46f99d4 Add `done` functionality 2017-12-22 14:40:01 +01:00
Matthias Beyer b78095d8bc Impl delete() 2017-12-22 14:40:01 +01:00
Matthias Beyer ff39a450b1 Explicitely state that printing an empty table is forbidden 2017-12-22 14:40:01 +01:00
Matthias Beyer 404d839310 Make "today" the default command 2017-12-22 14:40:01 +01:00
Matthias Beyer 0fa1ae28f8 Let "today" command list upcoming habits 2017-12-22 14:40:01 +01:00
Matthias Beyer 5574764d83 Add a subcommand to list habits due today 2017-12-22 14:40:01 +01:00
Matthias Beyer 2520635cae Add support for listing the next date when the habit must be done 2017-12-22 14:40:01 +01:00
Matthias Beyer 6e7414a2fd Implement show() 2017-12-22 14:40:01 +01:00
Matthias Beyer 915b1325d2 Implement list() 2017-12-22 14:40:01 +01:00
Matthias Beyer 528b30c1ff Implement create() 2017-12-22 14:40:01 +01:00
Matthias Beyer be79f6373e Import crate for imag-habit 2017-12-22 14:40:01 +01:00