diff options
author | Vidhu Kant Sharma <vidhukant@vidhukant.com> | 2025-09-08 23:05:25 +0530 |
---|---|---|
committer | Vidhu Kant Sharma <vidhukant@vidhukant.com> | 2025-09-08 23:05:25 +0530 |
commit | a87521c3ffe262517cdbb36fd5c0a9e2a20ca0bd (patch) | |
tree | 653349f4faa6c3b6a83209c8a86f9896ead1531a | |
parent | b2882ae0b0e1521edd82bdb74b59dc2733f78a15 (diff) |
using u16 for keeping track of time, and getting clock config from environment variables
-rw-r--r-- | src/client/listener.rs | 2 | ||||
-rw-r--r-- | src/daemon/pomo.rs | 30 |
2 files changed, 20 insertions, 12 deletions
diff --git a/src/client/listener.rs b/src/client/listener.rs index 2e223f6..370af62 100644 --- a/src/client/listener.rs +++ b/src/client/listener.rs @@ -40,7 +40,7 @@ pub fn start_listener() { } } -pub fn format_time(secs: u64) -> String { +pub fn format_time(secs: u16) -> String { format!("{:02}:{:02}", secs / 60, secs % 60) } diff --git a/src/daemon/pomo.rs b/src/daemon/pomo.rs index 3129e7d..1f4d8ef 100644 --- a/src/daemon/pomo.rs +++ b/src/daemon/pomo.rs @@ -16,6 +16,7 @@ */ use bincode::{Encode, Decode}; +use std::env; #[derive(Encode, Decode, PartialEq, Clone, Copy)] pub enum State { @@ -32,14 +33,14 @@ pub enum State { #[derive(Encode, Decode)] pub struct Pomo { - work_duration: u64, - break_duration: u64, - long_break_duration: u64, - long_break_interval: u64, + work_duration: u16, + break_duration: u16, + long_break_duration: u16, + long_break_interval: u16, // only these are supposed to change - pub secs_elapsed: u64, - pub counter: u64, + pub secs_elapsed: u16, + pub counter: u16, pub current_state: State, } @@ -50,11 +51,10 @@ impl Pomo { counter: 1, current_state: State::WorkIdle, - // TODO: load from config, probably - work_duration: 25,// * 60, - break_duration: 5,// * 60, - long_break_duration: 20,// * 60, - long_break_interval: 4, + work_duration: get_envvar("WORK_DURATION", 25 * 60), + break_duration: get_envvar("BREAK_DURATION", 5 * 60), + long_break_duration: get_envvar("LONG_BREAK_DURATION", 20 * 60), + long_break_interval: get_envvar("LONG_BREAK_INTERVAL", 4), } } @@ -158,3 +158,11 @@ impl Pomo { } } } + + +fn get_envvar(key: &str, def: u16) -> u16 { + env::var(key) + .ok() + .and_then(|v| v.parse::<u16>().ok()) + .unwrap_or(def) +} |