(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:
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};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user