33 lines
914 B
Bash
Executable File
33 lines
914 B
Bash
Executable File
#!/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"
|