@@ -1,15 +1,41 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
find . -type f -name '*.nix' ! -path './submodules/*' | while read -r file; do
|
||||
successes=()
|
||||
failures=()
|
||||
|
||||
while read -r file; do
|
||||
update_command=$(grep -oP '^#\s*AUTO-UPDATE:\s*\K.+' "$file" || true)
|
||||
|
||||
if [[ -n "$update_command" ]]; then
|
||||
echo "Running update command in: $file"
|
||||
eval "$update_command"
|
||||
if ( eval "$update_command" ); then
|
||||
successes+=("$file")
|
||||
else
|
||||
failures+=("$file")
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done < <(find . -type f -name '*.nix' ! -path './submodules/*')
|
||||
|
||||
if [[ ${#successes[@]} -gt 0 ]]; then
|
||||
echo "Successful Updates (${#successes[@]} total):"
|
||||
for item in "${successes[@]}"; do
|
||||
echo " - $item"
|
||||
done
|
||||
else
|
||||
echo "No automated update commands were successfully executed."
|
||||
fi
|
||||
|
||||
if [[ ${#failures[@]} -gt 0 ]]; then
|
||||
echo "Failed Updates (${#failures[@]} total):"
|
||||
for item in "${failures[@]}"; do
|
||||
echo " - $item"
|
||||
done
|
||||
exit 1
|
||||
else
|
||||
echo "No automated update commands failed."
|
||||
fi
|
||||
|
||||
nix flake update
|
||||
exit $?
|
||||
|
Reference in New Issue
Block a user