This commit is contained in:
commit
95a533c876
451 changed files with 18255 additions and 0 deletions
65
apps/update-packages/update-packages.sh
Normal file
65
apps/update-packages/update-packages.sh
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
SYSTEM="x86_64-linux"
|
||||
IGNORE_PACKAGES=(
|
||||
"pyman"
|
||||
"synapse_change_display_name"
|
||||
)
|
||||
|
||||
error() {
|
||||
echo "Error: $1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [[ "$#" -gt 0 ]]; then
|
||||
error "This script does not accept arguments."
|
||||
fi
|
||||
|
||||
TEMP_PACKAGE_LIST="/tmp/nix_flake_packages.$$"
|
||||
|
||||
nix eval .#packages."$SYSTEM" --apply 'pkgs: builtins.attrNames pkgs' --json > "$TEMP_PACKAGE_LIST" 2>/dev/null || \
|
||||
error "Could not determine flake package attributes."
|
||||
|
||||
PACKAGES=$(jq -r '.[]' "$TEMP_PACKAGE_LIST")
|
||||
|
||||
if [ -z "$PACKAGES" ]; then
|
||||
echo "No packages found in the flake outputs. Exiting."
|
||||
rm -f "$TEMP_PACKAGE_LIST"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
IGNORE_PATTERNS=$(printf "%s\n" "${IGNORE_PACKAGES[@]}")
|
||||
PACKAGES=$(echo "$PACKAGES" | grep -v -F -f <(echo "$IGNORE_PATTERNS"))
|
||||
|
||||
echo "Found the following packages to consider for update:"
|
||||
echo "$PACKAGES"
|
||||
|
||||
UPDATED_COUNT=0
|
||||
FAILED_UPDATES=()
|
||||
for PACKAGE_NAME in $PACKAGES; do
|
||||
echo "Attempting to update package: $PACKAGE_NAME"
|
||||
|
||||
if nix-update "$PACKAGE_NAME" --flake --format; then
|
||||
echo "Successfully updated $PACKAGE_NAME."
|
||||
UPDATED_COUNT=$((UPDATED_COUNT + 1))
|
||||
else
|
||||
echo "Failed to update $PACKAGE_NAME." >&2
|
||||
FAILED_UPDATES+=("$PACKAGE_NAME")
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -f "$TEMP_PACKAGE_LIST" ]; then
|
||||
rm "$TEMP_PACKAGE_LIST"
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "Summary:"
|
||||
echo "Packages scanned: $(echo "$PACKAGES" | wc -l)"
|
||||
echo "Packages updated: $UPDATED_COUNT"
|
||||
|
||||
if [ ${#FAILED_UPDATES[@]} -gt 0 ]; then
|
||||
echo "Packages that failed to update:" >&2
|
||||
echo "${FAILED_UPDATES[@]}"
|
||||
exit 1
|
||||
else
|
||||
echo "All packages processed successfully."
|
||||
exit 0
|
||||
fi
|
||||
Loading…
Add table
Add a link
Reference in a new issue