diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index c8161be..225178d 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -770,9 +770,32 @@ nameserver ${value} # ╰───┴──────────────────────────────╯ spcd_f_ca() { - local grep="\(After\|Before\|Issuer\|Signature Algorithm\|Subject:\)" local index name value - local root="${2}" + case "${1}" in + "list") + local grep="\(After\|Before\|Issuer\|Signature Algorithm\|Subject:\)" + ;; + "write") + local root + case "${SPCD_OS_ID}" in + "${SPCD_OS_ALMA}" | "${SPCD_OS_FEDORA}" | "${SPCD_OS_ROCKY}") + root="/etc/pki/ca-trust/source/anchors" + ;; + "${SPCD_OS_ALPINE}" | "${SPCD_OS_DEBIAN}" | "${SPCD_OS_UBUNTU}") + root="/usr/local/share/ca-certificates" + ;; + "${SPCD_OS_ARCH}") + root="/etc/ca-certificates/trust-source/anchors" + ;; + "${SPCD_OS_OPENSUSE}") + root="/etc/pki/trust/anchors" + ;; + *) ;; + esac + spcd_os_mkdir "${root}" + ;; + *) ;; + esac while true; do index=$((index + 1)) name="SPCD_CA_${index}" @@ -817,28 +840,6 @@ spcd_f_ca_update() { esac } -spcd_f_ca_write() { - spcd_step "Write certificates" - local root - case "${SPCD_OS_ID}" in - "${SPCD_OS_ALMA}" | "${SPCD_OS_FEDORA}" | "${SPCD_OS_ROCKY}") - root="/etc/pki/ca-trust/source/anchors" - ;; - "${SPCD_OS_ALPINE}" | "${SPCD_OS_DEBIAN}" | "${SPCD_OS_UBUNTU}") - root="/usr/local/share/ca-certificates" - ;; - "${SPCD_OS_ARCH}") - root="/etc/ca-certificates/trust-source/anchors" - ;; - "${SPCD_OS_OPENSUSE}") - root="/etc/pki/trust/anchors" - ;; - *) ;; - esac - spcd_os_mkdir "${root}" - spcd_f_ca "write" "${root}" -} - # ╭───┬───────────────────╮ # │ f │ env = environment │ # ╰───┴───────────────────╯ @@ -1600,7 +1601,7 @@ spcd_main() { # ca spcd_step_in "CA" spcd_f_ca_install - spcd_f_ca_write + spcd_f_ca "write" spcd_f_ca_update spcd_step_out # packages