use pacman_log::{Action, LogReader};
fn main() {
println!("=== Last 5 upgrades ===");
let entries: Vec<_> = LogReader::system()
.reverse()
.filter_action(Action::Upgraded)
.into_iter()
.take(5)
.filter_map(|e| e.ok())
.collect();
for e in &entries {
println!(
"{} {} ({} -> {})",
e.timestamp.format("%Y-%m-%d"),
e.package,
e.old_version.as_deref().unwrap_or("?"),
e.new_version.as_deref().unwrap_or("?")
);
}
println!("\n=== Last 3 installs ===");
let installs: Vec<_> = LogReader::system()
.reverse()
.filter_action(Action::Installed)
.into_iter()
.take(3)
.filter_map(|e| e.ok())
.collect();
for e in &installs {
println!(
"{} {} ({})",
e.timestamp.format("%Y-%m-%d"),
e.package,
e.new_version.as_deref().unwrap_or("?")
);
}
println!("\n=== Total entry count ===");
let total = LogReader::system()
.into_iter()
.filter_map(|e| e.ok())
.count();
println!("{} entries", total);
println!("\n=== Last 3 transactions ===");
let txns: Vec<_> = LogReader::system()
.transactions()
.filter_map(|t| t.ok())
.collect();
for txn in txns.iter().rev().take(3) {
println!(
"{} {} ({} ops)",
txn.started.format("%Y-%m-%d %H:%M"),
txn.command.as_deref().unwrap_or("(direct)"),
txn.operations.len()
);
}
}