Documents what each function needs for full functionality -- other repo functions it calls, and external CLI tools it uses or falls back gracefully without (e.g. rm/trash, ls/eza+lsd) -- matching the existing CLASSIFICATION convention's placement and the ~20 functions that already carried this label. Also broadens verify-manual.py's dependency-resolution check to recognize this repo's other existence-check idioms (command -q, command -v, which -- not just type -q) and dng2avif's dynamic type -q $cmd loop, since several genuine dependencies (eza, lsd, fastfetch, fd, ps, ...) are only ever guarded that way.
41 lines
1.0 KiB
Fish
41 lines
1.0 KiB
Fish
# Copyright (C) 2026 Rootiest
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
# CATEGORY
|
|
# 05-package-management
|
|
#
|
|
# DEPENDENCIES
|
|
# pacman
|
|
#
|
|
# CLASSIFICATION
|
|
# self-limiting(grep)
|
|
#
|
|
# SYNOPSIS
|
|
# cleanup
|
|
#
|
|
# DESCRIPTION
|
|
# Identifies and removes Arch Linux orphan packages using pacman. Logs
|
|
# package names and versions to ~/.removed_orphans before removal.
|
|
#
|
|
# EXIT STATUS
|
|
# 0 No orphans found, or orphans removed successfully
|
|
# Nonzero sudo pacman -Rns failed
|
|
#
|
|
# EXAMPLE
|
|
# cleanup
|
|
function cleanup --description 'Log orphans to ~/.removed_orphans and remove them'
|
|
__fish_help_header (status current-function) $argv; and return 0
|
|
|
|
set -l orphans (pacman -Qtdq)
|
|
if test -n "$orphans"
|
|
echo "📝 Logging orphans to ~/.removed_orphans..."
|
|
echo "--- Removed on $(date) ---" >>~/.removed_orphans
|
|
pacman -Qi $orphans | grep -E '^(Name|Version)' >>~/.removed_orphans
|
|
|
|
echo "🧹 Removing orphans..."
|
|
sudo pacman -Rns $orphans
|
|
else
|
|
echo "✨ No orphans to clean up!"
|
|
end
|
|
end
|