dotfiles/.local/bin/checkpaclog.py
2025-05-28 18:33:04 +02:00

38 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python3
import re
from datetime import datetime, timedelta
# File path
log_file_path = '/var/log/pacman.log'
# Time of analysis
now = datetime.now()
time_threshold = now - timedelta(hours=24)
# Regex pattern to extract timestamp and package info
log_pattern = re.compile(r'\[(.*?)\] \[ALPM\] (installed|upgraded) (.+)')
# List to store installed/updated packages
installed_or_updated = []
# Open the log file and parse each line
with open(log_file_path, 'r') as log_file:
for line in log_file:
match = log_pattern.search(line)
if match:
timestamp_str, action, package = match.groups()
timestamp = datetime.strptime(timestamp_str.split('+')[0], '%Y-%m-%dT%H:%M:%S')
if timestamp > time_threshold:
formatted_timestamp = timestamp.strftime('%Y-%m-%d %H:%M:%S')
installed_or_updated.append(f"{formatted_timestamp} - {action} {package}")
# Output the result
if installed_or_updated:
print("Packages installed or updated in the last 24 hours:")
for pkg in installed_or_updated:
print(f"- {pkg}")
else:
print("No packages were installed or updated in the last 24 hours.")