···6677use color_eyre::eyre::{Context, Result, eyre};
88use dto::{
99- Date, DateTime, GroupActiveModel, GroupEntity, HasOne, IntoActiveModel, TagActiveModel,
1010- TagEntity, TaskActiveModel, TaskEntity, Time, ZettelEntity,
99+ Date, DateTime, GroupEntity, HasOne, IntoActiveModel, TagEntity, TaskActiveModel, TaskEntity,
1010+ Time, ZettelEntity,
1111};
1212use tower_lsp::{LspService, Server};
1313···1515 cli::{Commands, ZettelSubcommand},
1616 config::{Config, get_config_dir},
1717 lsp::Backend,
1818- types::{Group, Kasten, Priority, Tag, Task, Zettel},
1818+ types::{Group, Kasten, Priority, Task, Zettel},
1919};
20202121impl Commands {
···8282 match command {
8383 super::TodoSubcommand::Group { name, parent_id } => {
8484 // lets create a tag for this first group first
8585- let tag: Tag = TagActiveModel::builder()
8686- .set_name(name.clone())
8787- .insert(&kt.db)
8888- .await?
8989- .into();
9090-9191- let tag_id = tag.id.clone();
9292-9393- // then create the zettel for the group
9494- let zettel = Zettel::new(name.clone(), &mut kt, vec![tag]).await?;
9595-9696- // then insert that shi
9797- let inserted = GroupActiveModel::builder()
9898- .set_name(name)
9999- .set_parent_group_id(parent_id)
100100- .set_tag(
101101- TagEntity::load()
102102- .filter_by_nano_id(tag_id)
103103- .one(&kt.db)
104104- .await?
105105- .expect("Tag must exist since we just created it")
106106- .into_active_model(),
107107- )
108108- .set_zettel(
109109- ZettelEntity::load()
110110- .filter_by_nano_id(zettel.id)
111111- .one(&kt.db)
112112- .await?
113113- .expect("Zettel must exist since we just created it")
114114- .into_active_model(),
115115- )
116116- .set_priority(Priority::default())
117117- .insert(&kt.db)
118118- .await?;
119119-120120- // group should also have the accompanying tag for it.
121121- let group: Group = GroupEntity::load()
122122- .with(TagEntity)
123123- .with((ZettelEntity, TagEntity))
124124- .filter_by_nano_id(inserted.nano_id)
125125- .one(&kt.db)
126126- .await?
127127- .expect("We just inserted it")
128128- .into();
129129-8585+ let group = Group::new(name, parent_id, &mut kt).await?;
13086 println!("created group {group:#?}");
13187 }
13288 super::TodoSubcommand::Task { name, parent_id } => {
+6-2
src/logging.rs
···11use std::{
22- fs::{File, create_dir_all},
22+ fs::{OpenOptions, create_dir_all},
33 sync::LazyLock,
44};
55···2929 create_dir_all(&directory)?;
30303131 let log_path = directory.join(LOG_FILE.clone());
3232- let log_file = File::create(log_path)?;
3232+3333+ let log_file = OpenOptions::new()
3434+ .append(true)
3535+ .create(true)
3636+ .open(log_path)?;
33373438 let env_filter = EnvFilter::builder().with_default_directive(Level::INFO.into());
3539
+1-1
src/main.rs
···6464 move || -> color_eyre::Result<()> {
6565 // block the tui on the same runtime as above
6666 tui_rt.block_on(async {
6767- let mut tui = TuiApp::new(args.tick_rate, args.frame_rate, kh, signal_tx).await?;
6767+ let mut tui = TuiApp::new(args.tick_rate, args.frame_rate, kh, signal_tx)?;
6868 tui.run().await?;
6969 // just close everything as soon as the tui is done running
7070 process::exit(0);