#!/bin/bash # Generate full dependency list for packages on Arch Linux # Input: packages.txt (one package per line, lines starting with # are ignored) # Output: packages.all.txt (all deps + base packages, unique and sorted) INPUT_FILE="packages.txt" OUTPUT_FILE="packages.all.txt" if [[ ! -f "$INPUT_FILE" ]]; then echo "❌ Error: $INPUT_FILE not found." exit 1 fi echo "📦 Generating full dependency list from $INPUT_FILE..." TMP_FILE=$(mktemp) # Read each package, skipping comments and blank lines while read -r pkg; do # Skip empty or commented lines [[ -z "$pkg" || "$pkg" =~ ^# ]] && continue echo "→ Resolving dependencies for: $pkg" pactree -u "$pkg" >> "$TMP_FILE" 2>/dev/null done < "$INPUT_FILE" # Merge, remove duplicates, and sort cat "$INPUT_FILE" "$TMP_FILE" | grep -v '^#' | sort -u > "$OUTPUT_FILE" rm -f "$TMP_FILE" echo "✅ Done! Saved complete list to: $OUTPUT_FILE"