(cli)! Remove --countdown-target argument (#121)
Reverts #112. For targeting a date (past/future) a new `event` feature will be introduced (soon).
This commit is contained in:
parent
f79813ac6b
commit
99032834be
@ -1,5 +1,12 @@
|
||||
# Changelog
|
||||
|
||||
## [unreleased]
|
||||
|
||||
### Breaking change
|
||||
|
||||
- (cli)! Remove `--countdown-target` argument [#121](https://github.com/sectore/timr-tui/pull/121)
|
||||
|
||||
|
||||
## v1.5.0 - 2025-10-03
|
||||
|
||||
### Features
|
||||
|
||||
41
README.md
41
README.md
@ -87,34 +87,19 @@ timr-tui --help
|
||||
Usage: timr-tui [OPTIONS]
|
||||
|
||||
Options:
|
||||
-c, --countdown <COUNTDOWN>
|
||||
Countdown time to start from. Formats: 'Yy Dd hh:mm:ss', 'Dd hh:mm:ss', 'Yy mm:ss', 'Dd mm:ss', 'Yy ss', 'Dd ss', 'hh:mm:ss', 'mm:ss', 'ss'. Examples: '1y 5d 10:30:00', '2d 4:00', '1d 10', '5:03'.
|
||||
--countdown-target <COUNTDOWN_TARGET>
|
||||
Countdown targeting a specific time in the future or past. Formats: 'yyyy-mm-dd hh:mm:ss', 'yyyy-mm-dd hh:mm', 'hh:mm:ss', 'hh:mm', 'mm' [aliases: --ct]
|
||||
-w, --work <WORK>
|
||||
Work time to count down from. Formats: 'ss', 'mm:ss', 'hh:mm:ss'
|
||||
-p, --pause <PAUSE>
|
||||
Pause time to count down from. Formats: 'ss', 'mm:ss', 'hh:mm:ss'
|
||||
-d, --decis
|
||||
Show deciseconds.
|
||||
-m, --mode <MODE>
|
||||
Mode to start with. [possible values: countdown, timer, pomodoro, localtime]
|
||||
-s, --style <STYLE>
|
||||
Style to display time with. [possible values: full, light, medium, dark, thick, cross, braille]
|
||||
--menu
|
||||
Open menu.
|
||||
-r, --reset
|
||||
Reset stored values to defaults.
|
||||
-n, --notification <NOTIFICATION>
|
||||
Toggle desktop notifications. Experimental. [possible values: on, off]
|
||||
--blink <BLINK>
|
||||
Toggle blink mode to animate a clock when it reaches its finished mode. [possible values: on, off]
|
||||
--log [<LOG>]
|
||||
Directory for log file. If not set, standard application log directory is used (check README for details).
|
||||
-h, --help
|
||||
Print help
|
||||
-V, --version
|
||||
Print version
|
||||
-c, --countdown <COUNTDOWN> Countdown time to start from. Formats: 'Yy Dd hh:mm:ss', 'Dd hh:mm:ss', 'Yy mm:ss', 'Dd mm:ss', 'Yy ss', 'Dd ss', 'hh:mm:ss', 'mm:ss', 'ss'. Examples: '1y 5d 10:30:00', '2d 4:00', '1d 10', '5:03'.
|
||||
-w, --work <WORK> Work time to count down from. Formats: 'ss', 'mm:ss', 'hh:mm:ss'
|
||||
-p, --pause <PAUSE> Pause time to count down from. Formats: 'ss', 'mm:ss', 'hh:mm:ss'
|
||||
-d, --decis Show deciseconds.
|
||||
-m, --mode <MODE> Mode to start with. [possible values: countdown, timer, pomodoro, event, localtime]
|
||||
-s, --style <STYLE> Style to display time with. [possible values: full, light, medium, dark, thick, cross, braille]
|
||||
--menu Open menu.
|
||||
-r, --reset Reset stored values to defaults.
|
||||
-n, --notification <NOTIFICATION> Toggle desktop notifications. Experimental. [possible values: on, off]
|
||||
--blink <BLINK> Toggle blink mode to animate a clock when it reaches its finished mode. [possible values: on, off]
|
||||
--log [<LOG>] Directory for log file. If not set, standard application log directory is used (check README for details).
|
||||
-h, --help Print help
|
||||
-V, --version Print version
|
||||
```
|
||||
|
||||
Extra option (if `--features sound` is enabled by local build only):
|
||||
|
||||
30
src/app.rs
30
src/app.rs
@ -2,7 +2,6 @@ use crate::{
|
||||
args::Args,
|
||||
common::{AppEditMode, AppTime, AppTimeFormat, ClockTypeId, Content, Style, Toggle},
|
||||
constants::TICK_VALUE_MS,
|
||||
duration::DirectedDuration,
|
||||
events::{self, TuiEventHandler},
|
||||
storage::AppStorage,
|
||||
terminal::Terminal,
|
||||
@ -106,7 +105,7 @@ impl From<FromAppArgs> for App {
|
||||
None => {
|
||||
if args.work.is_some() || args.pause.is_some() {
|
||||
Content::Pomodoro
|
||||
} else if args.countdown.is_some() || args.countdown_target.is_some() {
|
||||
} else if args.countdown.is_some() {
|
||||
Content::Countdown
|
||||
}
|
||||
// in other case just use latest stored state
|
||||
@ -124,28 +123,13 @@ impl From<FromAppArgs> for App {
|
||||
initial_value_pause: args.pause.unwrap_or(stg.inital_value_pause),
|
||||
// invalidate `current_value_pause` if an initial value is set via args
|
||||
current_value_pause: args.pause.unwrap_or(stg.current_value_pause),
|
||||
initial_value_countdown: match (&args.countdown, &args.countdown_target) {
|
||||
(Some(d), _) => *d,
|
||||
(None, Some(DirectedDuration::Until(d))) => *d,
|
||||
// reset for values from "past"
|
||||
(None, Some(DirectedDuration::Since(_))) => Duration::ZERO,
|
||||
(None, None) => stg.inital_value_countdown,
|
||||
},
|
||||
initial_value_countdown: args.countdown.unwrap_or(stg.inital_value_countdown),
|
||||
// invalidate `current_value_countdown` if an initial value is set via args
|
||||
current_value_countdown: match (&args.countdown, &args.countdown_target) {
|
||||
(Some(d), _) => *d,
|
||||
(None, Some(DirectedDuration::Until(d))) => *d,
|
||||
// `zero` makes values from `past` marked as `DONE`
|
||||
(None, Some(DirectedDuration::Since(_))) => Duration::ZERO,
|
||||
(None, None) => stg.inital_value_countdown,
|
||||
},
|
||||
elapsed_value_countdown: match (args.countdown, args.countdown_target) {
|
||||
// use `Since` duration
|
||||
(_, Some(DirectedDuration::Since(d))) => d,
|
||||
// reset values
|
||||
(_, Some(_)) => Duration::ZERO,
|
||||
(Some(_), _) => Duration::ZERO,
|
||||
(_, _) => stg.elapsed_value_countdown,
|
||||
current_value_countdown: args.countdown.unwrap_or(stg.inital_value_countdown),
|
||||
elapsed_value_countdown: match args.countdown {
|
||||
// reset value if countdown is set by arguments
|
||||
Some(_) => Duration::ZERO,
|
||||
None => stg.elapsed_value_countdown,
|
||||
},
|
||||
current_value_timer: stg.current_value_timer,
|
||||
app_tx,
|
||||
|
||||
@ -18,11 +18,6 @@ pub struct Args {
|
||||
)]
|
||||
pub countdown: Option<Duration>,
|
||||
|
||||
#[arg(long, visible_alias = "ct", value_parser = duration::parse_duration_by_time,
|
||||
help = "Countdown targeting a specific time in the future or past. Formats: 'yyyy-mm-dd hh:mm:ss', 'yyyy-mm-dd hh:mm', 'hh:mm:ss', 'hh:mm', 'mm'"
|
||||
)]
|
||||
pub countdown_target: Option<duration::DirectedDuration>,
|
||||
|
||||
#[arg(long, short, value_parser = duration::parse_duration,
|
||||
help = "Work time to count down from. Formats: 'ss', 'mm:ss', 'hh:mm:ss'"
|
||||
)]
|
||||
|
||||
@ -241,6 +241,7 @@ fn parse_hours(h: &str) -> Result<u8, Report> {
|
||||
/// - `mm`
|
||||
///
|
||||
/// Returns `DirectedDuration::Until` for future times, `DirectedDuration::Since` for past times
|
||||
#[allow(dead_code)]
|
||||
pub fn parse_duration_by_time(arg: &str) -> Result<DirectedDuration, Report> {
|
||||
use time::{OffsetDateTime, PrimitiveDateTime, macros::format_description};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user