diff options
Diffstat (limited to 'src/actions/unroll.rs')
-rw-r--r-- | src/actions/unroll.rs | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/src/actions/unroll.rs b/src/actions/unroll.rs deleted file mode 100644 index e3c8a09..0000000 --- a/src/actions/unroll.rs +++ /dev/null @@ -1,37 +0,0 @@ -use std::path::{PathBuf, Path}; -use structopt::StructOpt; - -use crate::khline::KhLine; -use crate::KhResult; -use crate::khevent::KhEvent; - -#[derive(Debug, StructOpt)] -pub struct UnrollArgs { - /// The file to unroll - #[structopt(name = "path", parse(from_os_str))] - pub path: PathBuf, -} - -pub fn action_unroll(args: &UnrollArgs) -> KhResult<()> { - let filepath = &args.path; - do_unroll(filepath)?; - - Ok(()) -} - -fn do_unroll(filepath: &Path) -> KhResult<()> { - let path = filepath.to_str().ok_or_else(|| "str to path failed")?; - let khline = path.parse::<KhLine>()?; - let cal = khline.to_cal()?; - - for ical_event in cal.events_iter() { - let event = KhEvent::from_event(ical_event); - if event.is_recur_master() { - let recurs = event.get_recur_datetimes(); - for datetime in recurs { - println!("{} {}", datetime.timestamp(), cal.get_path_as_string().unwrap_or_else(|| "".to_string())); - } - } - } - Ok(()) -} |