diff options
Diffstat (limited to 'apps/koffice/invoice/src/main.rs')
-rw-r--r-- | apps/koffice/invoice/src/main.rs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/apps/koffice/invoice/src/main.rs b/apps/koffice/invoice/src/main.rs new file mode 100644 index 000000000000..742b74be0b0a --- /dev/null +++ b/apps/koffice/invoice/src/main.rs @@ -0,0 +1,41 @@ + +mod base; +mod cli; +mod pfile; + +pub(crate) use base::*; +pub(crate) use cli::*; +pub(crate) use pfile::*; + +use libko::*; +use std::{io::Write, fs::OpenOptions as Oo}; + +fn main() { + let AppState { meta, cmd } = cli::parse(); + + match cmd { + Command::Init => init(meta), + Command::Generate => generate(meta), + Command::Install => todo!(), + } +} + +fn init(meta: Meta) { + let pid = meta.project_id.as_ref().unwrap_or_else(|| { + meta.timefile + .as_ref() + .expect("No project id given, with no timefile available") + .client() + .as_ref() + .unwrap() + }); + + let path = meta.invoice_dir.join(pid); + let mut f = Oo::new().write(true).truncate(true).open(path).unwrap(); + f.write_all(pfile::data_templ().as_bytes()).unwrap(); + + // let pid = meta.project_id.as_ref().unwrap_or_else(|| + // let f = meta.invoice_dir.join(meta.project_id); +} + +fn generate(meta: Meta) {} |