sys-compare/src/comparemode.rs

74 lines
2.1 KiB
Rust
Raw Normal View History

2024-03-18 22:31:45 +00:00
use Fasching::{compare_snapshots, create_snapshot, import_snapshot};
2024-03-18 22:20:57 +00:00
use Fasching::hasher::HashType::BLAKE3;
2024-03-18 22:35:19 +00:00
use Fasching::snapshot::{Snapshot, SnapshotChangeType, SnapshotCompareResult};
2024-03-18 22:20:57 +00:00
use crate::syscompare::Comparer;
pub struct CompareMode {
left: Snapshot,
right: Snapshot,
args: Vec<String>,
2024-03-18 22:35:19 +00:00
result_type: SnapshotChangeType,
results: SnapshotCompareResult,
2024-03-18 22:20:57 +00:00
}
impl CompareMode {
2024-03-18 22:31:45 +00:00
pub fn new(args: Vec<String>, left: String, right: String) -> CompareMode {
let left = import_snapshot(left);
let right = import_snapshot(right);
2024-03-18 22:20:57 +00:00
2024-03-18 22:28:33 +00:00
CompareMode {
2024-03-18 22:31:45 +00:00
left,
right,
2024-03-18 22:28:33 +00:00
args,
2024-03-18 22:35:19 +00:00
result_type: SnapshotChangeType::None,
2024-03-18 22:28:33 +00:00
results: SnapshotCompareResult {
created: vec![],
deleted: vec![],
changed: vec![],
},
}
2024-03-18 22:20:57 +00:00
}
}
impl Comparer for CompareMode {
2024-03-18 22:35:19 +00:00
fn run(&mut self) {
2024-03-18 22:47:38 +00:00
let selector = match self.args.get(3) {
None => {"none"}
Some(r) => { r }
};
2024-03-18 22:31:45 +00:00
let results = compare_snapshots(self.left.clone(), self.right.clone()).unwrap();
2024-03-18 22:35:19 +00:00
self.results = results.1;
self.result_type = results.0;
2024-03-18 22:47:38 +00:00
match selector {
"created" => {
println!("Created: {:?}", self.results.created.len());
for file in self.results.created {
println!("{}", file);
}
},
"deleted" => {
println!("Deleted: {:?}", self.results.deleted.len());
for file in self.results.deleted {
println!("{}", file);
}
},
"changed" => {
println!("Changed: {:?}", self.results.changed.len());
for file in self.results.changed {
println!("{}", file);
}
}
_ => {
println!("Created: {:?}", self.results.created.len());
println!("Deleted: {:?}", self.results.deleted.len());
println!("Changed: {:?}", self.results.changed.len());
}
}
2024-03-18 22:20:57 +00:00
}
}