File: cleanup.rs

package info (click to toggle)
rust-flexi-logger 0.29.8-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,084 kB
  • sloc: makefile: 2
file content (57 lines) | stat: -rwxr-xr-x 1,746 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env rust-script
//! Cleans up all files and folders that were produced by test runs.
//!
//! ```cargo
//! [dependencies]
//! glob = "*"
//! ```
extern crate glob;

fn main() {
    for pattern in &[
        "./*.alerts",
        "./*.log",
        "./*.seclog",
        "./*logspec.toml",
        "./log_files/**/.DS_Store",
        "./log_files/**/test_restart_with_no_suffix-*",
        "./log_files/**/*.alerts",
        "./log_files/**/*.csv",
        "./log_files/**/*.err",
        "./log_files/**/*.gz",
        "./log_files/**/*.log",
        "./log_files/**/*.seclog",
        "./log_files/**/*.toml",
        "./server/**/*.toml",
    ] {
        for globresult in glob::glob(pattern).unwrap() {
            match globresult {
                Err(e) => eprintln!("Evaluating pattern {:?} produced error {}", pattern, e),
                Ok(pathbuf) => {
                    std::fs::remove_file(&pathbuf).unwrap();
                }
            }
        }
    }

    for dir_pattern in ["./log_files/**", "./server/**"] {
        let dirs: Vec<std::path::PathBuf> = glob::glob(dir_pattern)
            .unwrap()
            .filter_map(|r| match r {
                Err(e) => {
                    eprintln!("Searching for folders produced error {}", e);
                    None
                }
                Ok(_) => Some(r.unwrap()),
            })
            .collect();
        for pathbuf in dirs.iter().rev() {
            std::fs::remove_dir(&pathbuf).expect(&format!("folder not empty? {:?}", pathbuf));
        }
    }

    std::fs::remove_dir("./log_files/").ok();
    std::fs::remove_dir("./server/").ok();
    std::fs::remove_file("./link_to_log").ok();
    std::fs::remove_file("./link_to_mt_log").ok();
}