← Back to davo.co
summaryrefslogtreecommitdiffstats
path: root/README.md
blob: ae167662827fb7c6b57543ba9b5eb2ba189fd84b (plain)
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
# ud

A clean, minimalist, robust C utility designed to automate Debian-based Linux system maintenance tasks. It manages `apt` package list updates, performs conditional upgrades, purges orphaned dependencies, clears package caches, and cleans local user thumbnail and screenshot caches.

## Features

- **Automated APT Maintenance:** Updates repository indices, checks for upgradeable packages, and runs `apt full-upgrade` only when updates exist.
- **Dependency & Cache Cleanup:** Automatically purges unused dependencies and lingering configuration files (`apt autoremove --purge`) and empties cached installer packages (`apt clean`).
- **User Cache Housekeeping:** Safely cleans desktop thumbnail caches and user screenshot directories without failing if the directories are empty.
- **Robust POSIX C Implementation:** Built using strict standard C (`-std=c11`, POSIX 2008) with explicit bounds checking on formatted buffers and process status checking (`WIFEXITED`, `WEXITSTATUS`).
- **Clean Terminal Output:** Indents subprocess output using `sed` for a clear, readable terminal log.

---

## Prerequisites & Dependencies

This utility requires a **Debian-based distribution** (Debian, Ubuntu, Linux Mint, Pop!_OS, etc.) with the following installed:

- `gcc` or `clang`
- `make`
- `apt`
- `sed`
- `sudo` privileges for package management operations

---

## Build Instructions

To compile the executable using `make`:

```bash
# Build the utility (uses gcc with -Wall -Wextra -Wpedantic -O2 -std=c11)
make

# Clean build artifacts
make clean