pacenotes_installer\runlog/
log_files.rs1pub const KEEP_LOGS: usize = 5;
4
5pub fn log_dir(game_dir: &std::path::Path) -> std::path::PathBuf {
8 game_dir.join(crate::ledger::STATE_DIR).join("logs")
9}
10
11pub fn log_path(game_dir: &std::path::Path, stamp: &str) -> std::path::PathBuf {
14 log_dir(game_dir).join(format!("install-{stamp}.log"))
15}
16
17pub fn prune(dir: &std::path::Path, keep: usize) {
21 let Ok(entries) = std::fs::read_dir(dir) else {
22 return;
23 };
24 let mut logs: Vec<std::path::PathBuf> = entries
25 .flatten()
26 .map(|entry| entry.path())
27 .filter(|path| {
28 path.file_name()
29 .and_then(|name| name.to_str())
30 .is_some_and(|name| name.starts_with("install-") && name.ends_with(".log"))
31 })
32 .collect();
33 if logs.len() <= keep {
34 return;
35 }
36 logs.sort();
37 for old in &logs[..logs.len() - keep] {
38 let _ = std::fs::remove_file(old);
39 }
40}