diff --git a/cd.sh b/cd.sh index babce94..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,7 +32,7 @@ function step { fi } -function write { +function cd_write { local file="${1}" local text="${2}" if [ "${file}" ] ; then @@ -42,14 +42,19 @@ local text="${2}" fi } -step "set name servers" -for server in "${CD_DNS_SERVERS[@]}" ; do - echo "nameserver ${server}" \ - >> "${CD_DNS_FILE}" \ +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 -done +} -step "configure package manager" +cd_step "configure package manager" echo -n "\ Acquire::Check-Valid-Until True; APT::Get::Show-Versions True; @@ -58,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 @@ -67,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