← Back to davo.co
summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorDavid Faulkner <[email protected]>2026-08-05 23:25:25 -0500
committerDavid Faulkner <[email protected]>2026-08-05 23:25:25 -0500
commit3d51ff671e0bf079063c6270bbb985bd3d218b34 (patch)
tree2d99d81b2e0c1cad6ce119dfc6da5844ed49b3e1 /README.md
feat: initial commit for ud maintenance utility
- Add C source code for Debian apt update, autoremove, and cleanup tasks - Add Makefile with build, install, uninstall, and clean targets - Add README.md with build and usage instructions - Add MIT license and .gitignore for build artifacts
Diffstat (limited to 'README.md')
-rw-r--r--README.md36
1 files changed, 36 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..ae16766
--- /dev/null
+++ b/README.md
@@ -0,0 +1,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