NixOS deployment for LinuxLab
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
1.1 KiB

1 day ago
  1. #!/usr/bin/env nix-shell
  2. #!nix-shell -i bash -p yq
  3. #shellcheck shell=bash
  4. if [[ ! -f ".sops.yaml" ]]; then
  5. echo "Error: .sops.yaml file not found in $(pwd)"
  6. echo "Please ensure you are running this script from the repository root directory."
  7. exit 1
  8. fi
  9. # Schritt 1: Alle Regex aus der .sops.yaml-Datei extrahieren
  10. regex_list=$(yq -r '.creation_rules[].path_regex' .sops.yaml)
  11. # Schritt 2: Alle Dateien finden, die zu den Regex passen
  12. matching_files=()
  13. for regex in $regex_list; do
  14. # Entferne eventuelle ^ und $ Zeichen, damit die Regex auch in find funktionieren
  15. simplified_regex=$(echo "$regex" | sed 's/^\^//;s/\$$//')
  16. found_files=$(find . -type f | grep -E "$simplified_regex")
  17. # Füge die gefundenen Dateien zur Liste hinzu
  18. for file in $found_files; do
  19. matching_files+=("$file")
  20. done
  21. done
  22. # Deduplizieren der Dateiliste mit mapfile
  23. mapfile -t unique_files < <(printf "%s\n" "${matching_files[@]}" | sort -u)
  24. # Schritt 3: sops updatekeys für jede Datei ausführen
  25. for file in "${unique_files[@]}"; do
  26. echo "Updating keys for: $file"
  27. sops updatekeys -y "$file"
  28. done
  29. echo "Finished updating keys."