aboutsummaryrefslogtreecommitdiff
path: root/apps/koffice/invoice/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'apps/koffice/invoice/src/main.rs')
-rw-r--r--apps/koffice/invoice/src/main.rs41
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) {}