Add API for propagating cursor locations #61

Merged
schmelczer merged 30 commits from asch/show-cursors into main 2025-06-08 20:20:53 +01:00
Showing only changes of commit 1475a549d4 - Show all commits

Always write config

Andras Schmelczer 2025-06-07 11:31:41 +01:00
No known key found for this signature in database
GPG key ID: FC8F2C3D3D1A718C

View file

@ -2,7 +2,7 @@ use std::path::Path;
use anyhow::{Context as _, Result}; use anyhow::{Context as _, Result};
use database_config::DatabaseConfig; use database_config::DatabaseConfig;
use log::{info, warn}; use log::info;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use server_config::ServerConfig; use server_config::ServerConfig;
use tokio::fs; use tokio::fs;
@ -24,22 +24,24 @@ pub struct Config {
impl Config { impl Config {
pub async fn read_or_create(path: &Path) -> Result<Self> { pub async fn read_or_create(path: &Path) -> Result<Self> {
if path.exists() { let config = if path.exists() {
info!( info!(
"Loading configuration from '{}'", "Loading configuration from '{}'",
path.canonicalize().unwrap().display() path.canonicalize().unwrap().display()
); );
Self::load_from_file(path).await Self::load_from_file(path).await?
} else { } else {
let config = Self::default(); Self::default()
};
config.write(path).await?; config.write(path).await?;
warn!( info!(
"Configuration file not found, wrote default configuration to '{}'", "Updated configuration at '{}'",
path.canonicalize().unwrap().display() path.canonicalize().unwrap().display()
); );
Ok(config) Ok(config)
} }
}
pub async fn load_from_file(path: &Path) -> Result<Self> { pub async fn load_from_file(path: &Path) -> Result<Self> {
let contents = fs::read_to_string(path).await.with_context(|| { let contents = fs::read_to_string(path).await.with_context(|| {