diff --git a/cd.sh b/cd.sh index cd52fec..e1d5b05 100644 --- a/cd.sh +++ b/cd.sh @@ -23,7 +23,7 @@ case "${CD_OS_NAME}" in esac CD_STEP=0 -function step { +function cd_step { if [ "${1}" ] ; then ((CD_STEP++)) echo " @@ -32,14 +32,29 @@ function step { fi } -step "set name servers" -for server in "${CD_DNS_SERVERS[@]}" ; do - echo "nameserver ${server}" \ - >> "${CD_DNS_FILE}" \ - || exit -done +function cd_write { +local file="${1}" +local text="${2}" + if [ "${file}" ] ; then + echo -n "${text}" \ + > "${file}" \ + || exit + fi +} -step "configure package manager" +function cd_set_dns { +local server +local text='' + cd_step "set name servers" + for server in "${CD_DNS_SERVERS[@]}" ; do + text+="nameserver ${server} +" + done + cd_write "${CD_DNS_FILE}" "${text}" \ + || exit +} + +cd_step "configure package manager" echo -n "\ Acquire::Check-Valid-Until True; APT::Get::Show-Versions True; @@ -48,7 +63,7 @@ APT::Install-Suggests False; Dir::Etc::SourceParts ''; " > '/etc/apt/apt.conf.d/apt.conf' \ || exit -step "configure package repositories" +cd_step "configure package repositories" echo -n "\ deb https://deb.debian.org/debian bookworm main deb https://deb.debian.org/debian bookworm-backports main @@ -57,45 +72,52 @@ deb https://deb.debian.org/debian-security bookworm-security main " > '/etc/apt/sources.list' \ || exit -step "disable package verification" +cd_step "disable package verification" echo -n "\ Acquire::https::Verify-Peer False; " > '/etc/apt/apt.conf.d/https' \ || exit -step "update package catalog" +cd_step "update package catalog" apt-get update \ || exit -step "install CA certificates package" +cd_step "install CA certificates package" apt-get install --yes 'ca-certificates' \ || exit -step "enable package verification" +cd_step "enable package verification" rm '/etc/apt/apt.conf.d/https' \ || exit -step "update package catalog" +cd_step "update package catalog" apt-get update \ || exit -step "upgrade packages" +cd_step "upgrade packages" apt-get upgrade --yes \ || exit -step "install Git" +cd_step "install Git" apt-get install --yes 'git' \ || exit DIRECTORY="$(mktemp --directory)" \ || exit -step "clone Continuous Delivery" +cd_step "clone Continuous Delivery" git clone \ "${GITHUB_SERVER_URL}/${CD_REPOSITORY}" \ "${DIRECTORY}" \ || exit -step "install Python" +cd_step "install Python" apt-get install --yes 'python3' \ || exit -step "clean package cache" +cd_step "clean package cache" apt-get clean \ || exit -step "bootstrap" +cd_step "bootstrap" "${DIRECTORY}/bootstrap.sh" + + +function cd_main { + cd_set_dns +} + +cd_main