CD_DNS_SERVERS=( '9.9.9.9' ) CD_REPOSITORY='rwx.work/cd' CD_DNS_FILE='/etc/resolv.conf' case "${CD_OS_NAME}" in 'debian') case "${CD_OS_VERSION}" in 'bookworm') echo 'bookworm!' ;; *) echo 'CD_OS_VERSION' exit 2 ;; esac ;; *) echo 'CD_OS_NAME' exit 1 ;; esac CD_STEP=0 function step { if [ "${1}" ] ; then ((CD_STEP++)) echo " ↕ ${CD_STEP} ↔ ${1} " fi } function write { local file="${1}" local text="${2}" if [ "${file}" ] ; then echo -n "${text}" \ > "${file}" \ || exit fi } step "set name servers" for server in "${CD_DNS_SERVERS[@]}" ; do echo "nameserver ${server}" \ >> "${CD_DNS_FILE}" \ || exit done step "configure package manager" echo -n "\ Acquire::Check-Valid-Until True; APT::Get::Show-Versions True; APT::Install-Recommends False; APT::Install-Suggests False; Dir::Etc::SourceParts ''; " > '/etc/apt/apt.conf.d/apt.conf' \ || exit step "configure package repositories" echo -n "\ deb https://deb.debian.org/debian bookworm main deb https://deb.debian.org/debian bookworm-backports main deb https://deb.debian.org/debian bookworm-updates main deb https://deb.debian.org/debian-security bookworm-security main " > '/etc/apt/sources.list' \ || exit step "disable package verification" echo -n "\ Acquire::https::Verify-Peer False; " > '/etc/apt/apt.conf.d/https' \ || exit step "update package catalog" apt-get update \ || exit step "install CA certificates package" apt-get install --yes 'ca-certificates' \ || exit step "enable package verification" rm '/etc/apt/apt.conf.d/https' \ || exit step "update package catalog" apt-get update \ || exit step "upgrade packages" apt-get upgrade --yes \ || exit step "install Git" apt-get install --yes 'git' \ || exit DIRECTORY="$(mktemp --directory)" \ || exit step "clone Continuous Delivery" git clone \ "${GITHUB_SERVER_URL}/${CD_REPOSITORY}" \ "${DIRECTORY}" \ || exit step "install Python" apt-get install --yes 'python3' \ || exit step "clean package cache" apt-get clean \ || exit step "bootstrap" "${DIRECTORY}/bootstrap.sh"