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.

43 lines
1.5 KiB

  1. # -*- mode: shell-script -*-
  2. yaml_opt_bash_env() {
  3. local prefix="$1" key value
  4. while read-0 key value; do
  5. new_prefix="${prefix}_${key^^}"
  6. if [[ "$(echo "$value" | shyaml get-type)" == "struct" ]]; then
  7. echo "$value" | yaml_opt_bash_env "${new_prefix}"
  8. else
  9. printf "%s\0%s\0" "${new_prefix/-/_}" "$value"
  10. fi
  11. done < <(shyaml key-values-0)
  12. }
  13. yaml_opt_bash_env_ignore_first_level() {
  14. local prefix="$1" key value
  15. while read-0 key value; do
  16. new_prefix="${prefix}_${key^^}"
  17. if [[ "$(echo "$value" | shyaml get-type)" == "struct" ]]; then
  18. echo "$value" | yaml_opt_bash_env "${new_prefix}"
  19. fi
  20. done < <(shyaml key-values-0)
  21. }
  22. will_need_http_access() {
  23. local domains args_domains
  24. [ "$challenge_type" == "http" ] || return 1
  25. [ "${remainder_args[0]}" == "crt" ] || return 1
  26. [ "${remainder_args[1]}" == "create" ] || return 1
  27. [ -d "$SERVICE_DATASTORE/etc/letsencrypt/live/${remainder_args[2]}" ] || return 0
  28. info "Querying ${remainder_args[2]} for previous info..."
  29. out=$(compose run --rm letsencrypt crt info "${remainder_args[2]}" 2>&1 >/dev/null) || return 0
  30. domains=$(printf "%s" "$out" | shyaml get-value domains) || return 0
  31. domains=$(printf "%s " $domains | tr " " "\n" | sort)
  32. args_domains=$(printf "%s " ${remainder_args[*]:2} | tr " " "\n" | sort)
  33. info domains: "$domains"
  34. info args_domain: "$args_domains"
  35. [ "$domains" != "$args_domains" ]
  36. }