diff --git a/readme.md b/readme.md index f8d9ebc..c028469 100644 --- a/readme.md +++ b/readme.md @@ -217,12 +217,11 @@ Handle project workflows in a unified way: * build instead of readme * generate graphs -* list behavior differences - * Continuous Integration platforms - * Operating Systems +* list CI behavior differences #### Shell +* command to echo & run * comment * handle errors * packages @@ -239,6 +238,8 @@ Handle project workflows in a unified way: * disable & enable https * locales * persist + * restrict LC_* variables set for alpine + * test LC_* variables * test #### Shell → Python diff --git a/spcd.sh b/spcd.sh deleted file mode 100755 index a577aed..0000000 --- a/spcd.sh +++ /dev/null @@ -1,27 +0,0 @@ -#! /usr/bin/env sh - -gource \ ---auto-skip-seconds 1 \ ---date-format "%Y / %m / %d ⋅ %H : %M : %S" \ ---disable-progress \ --f \ ---hide mouse,usernames \ ---highlight-dirs \ ---key \ ---output-framerate 60 \ ---seconds-per-day 2.0 \ ---output-ppm-stream - \ -| \ -ffmpeg \ --codec:v ppm \ --format image2pipe \ --framerate 120 \ --i - \ --codec:v libx264 \ --preset veryslow \ --qp 23 \ --movflags \ -+faststart \ --pix_fmt yuv420p \ --y \ -spcd.mp4 diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 0268849..616a705 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -1,20 +1,8 @@ #! /usr/bin/env sh -# ╭───────────────╮ -# │ __ = internal │ -# ╰───────────────╯ - -# __SPCD_BANNER_TOP -# __SPCD_BANNER_MIDDLE -# __SPCD_BANNER_BOTTOM - -# __SPCD_STEP_LEVEL -# __SPCD_STEP_level_INDEX -# __SPCD_STEP_level_LABEL - -# ╭─────────────╮ -# │ _ = private │ -# ╰─────────────╯ +# ╭───╮ +# │ _ │ +# ╰───╯ _SPCD_BOX_DOWN_AND_HORIZONTAL="┬" _SPCD_BOX_DOWN_AND_LEFT="╮" @@ -155,11 +143,11 @@ _SPCD_FRAME_TOP="${_SPCD_BOX_DOWN_AND_RIGHT}${_SPCD_BOX_LEFT}" _SPCD_FRAME_BOTTOM="${_SPCD_BOX_UP_AND_RIGHT}${_SPCD_BOX_LEFT}" _spcd_frame_open() { - echo "${_SPCD_FRAME_TOP}${*}" + echo "${_SPCD_FRAME_TOP}${1}" } _spcd_frame_shut() { - echo "${_SPCD_FRAME_BOTTOM}${*}" + echo "${_SPCD_FRAME_BOTTOM}${1}" } # ╭───┬────╮ @@ -207,9 +195,9 @@ _spcd_txt_pick() { esac } -# ╭────────────╮ -# │ p = public │ -# ╰────────────╯ +# ╭───────────╮ +# │ functions │ +# ╰───────────╯ spcd_ca() { local grep="\(After\|Before\|Issuer\|Signature Algorithm\|Subject:\)" @@ -259,17 +247,9 @@ nameserver ${value} fi } -spcd_run() { - if [ -n "${1}" ]; then - _spcd_frame_open "${@}" - "${@}" - _spcd_frame_shut "${@}" - fi -} - -# ╭───┬───────╮ -# │ p │ error │ -# ╰───┴───────╯ +# ╭───────────┬───────╮ +# │ functions │ error │ +# ╰───────────┴───────╯ spcd_error_ci() { echo "× CI: ${*}" @@ -282,9 +262,9 @@ spcd_error_os() { exit "${_SPCD_ERROR_OS}" } -# ╭───┬────╮ -# │ p │ os │ -# ╰───┴────╯ +# ╭───────────┬────╮ +# │ functions │ os │ +# ╰───────────┴────╯ spcd_os_grep() { local variable="${1}" @@ -349,17 +329,17 @@ spcd_os_write() { fi } -# ╭───┬───────╮ -# │ p │ split │ -# ╰───┴───────╯ +# ╭───────────┬───────╮ +# │ functions │ split │ +# ╰───────────┴───────╯ spcd_split() { echo "${_SPCD_RULE_LEFT}${_SPCD_RULE_MIDDLE}${_SPCD_RULE_RIGHT}" } -# ╭───┬──────╮ -# │ p │ step │ -# ╰───┴──────╯ +# ╭───────────┬──────╮ +# │ functions │ step │ +# ╰───────────┴──────╯ spcd_step() { if [ -n "${1}" ]; then @@ -383,9 +363,9 @@ spcd_step_out() { __SPCD_STEP_LEVEL=$((__SPCD_STEP_LEVEL - 1)) } -# ╭───┬─────╮ -# │ p │ txt │ -# ╰───┴─────╯ +# ╭───────────┬─────╮ +# │ functions │ txt │ +# ╰───────────┴─────╯ SPCD_TXT_LOCALE_ENGLISH="en_US" SPCD_TXT_LOCALE_FRENCH="fr_FR" @@ -397,13 +377,13 @@ spcd_txt_get() { esac } -# ╭──────────╮ -# │ s = step │ -# ╰──────────╯ +# ╭──────╮ +# │ step │ +# ╰──────╯ -# ╭───┬───────────╮ -# │ s │ constants │ -# ╰───┴───────────╯ +# ╭──────┬───────────╮ +# │ step │ constants │ +# ╰──────┴───────────╯ SPCD_OS_ALMA="alma" SPCD_OS_ALPINE="alpine" @@ -420,9 +400,9 @@ SPCD_PM_DNF="dnf" SPCD_PM_PACMAN="pacman" SPCD_PM_ZYPPER="zypper" -# ╭───┬─────────────╮ -# │ s │ environment │ -# ╰───┴─────────────╯ +# ╭──────┬─────────────╮ +# │ step │ environment │ +# ╰──────┴─────────────╯ spcd_step__environment_print() { spcd_ca "list" @@ -790,9 +770,20 @@ spcd_step__environment_list_workspace() { spcd_os_ls "$(realpath .)" } -# ╭──────────────╮ -# │ f = function │ -# ╰──────────────╯ +# ╭──────┬───────────╮ +# │ step │ functions │ +# ╰──────┴───────────╯ + +spcd_clean_cache() { + case "${SPCD_PM}" in + "${SPCD_PM_APK}") apk cache purge ;; + "${SPCD_PM_APT}") apt-get clean ;; + "${SPCD_PM_DNF}") dnf clean all ;; + "${SPCD_PM_PACMAN}") pacman --sync --clean --noconfirm ;; + "${SPCD_PM_ZYPPER}") zypper clean ;; + *) ;; + esac +} spcd_git_clone() { if [ -n "${1}" ]; then @@ -815,6 +806,29 @@ spcd_git_url() { fi } +spcd_https_path() { + case "${SPCD_PM}" in + "${SPCD_PM_APK}") echo "/etc/apk/repositories.d/https" ;; + "${SPCD_PM_APT}") echo "/etc/apt/apt.conf.d/https" ;; + "${SPCD_PM_DNF}") echo "/etc/dnf/dnf.conf.d/https.conf" ;; + "${SPCD_PM_PACMAN}") echo "/etc/pacman.d/https.conf" ;; + "${SPCD_PM_ZYPPER}") ;; + *) ;; + esac +} + +spcd_install_package() { + case "${SPCD_PM}" in + "${SPCD_PM_APK}") apk add "${1}" ;; + "${SPCD_PM_APT}") apt-get install --assume-yes "${1}" ;; + "${SPCD_PM_DNF}") dnf install --assumeyes "${1}" ;; + "${SPCD_PM_PACMAN}") pacman --sync --noconfirm "${1}" ;; + "${SPCD_PM_ZYPPER}") zypper --non-interactive install "${1}" ;; + *) ;; + esac + spcd_clean_cache +} + spcd_python_ln() { local command="${1}" if [ -n "${command}" ]; then @@ -836,6 +850,17 @@ spcd_python_pip() { fi } +spcd_query_package() { + case "${SPCD_PM}" in + "${SPCD_PM_APK}") apk info "${1}" ;; + "${SPCD_PM_APT}") dpkg-query --show "${1}" ;; + "${SPCD_PM_DNF}") rpm --query "${1}" ;; + "${SPCD_PM_PACMAN}") pacman --query "${1}" ;; + "${SPCD_PM_ZYPPER}") rpm --query "${1}" ;; + *) ;; + esac +} + spcd_txt_locale() { local action="${1}" local chosen="${2}" @@ -890,37 +915,6 @@ spcd_txt_locale() { spcd_split spcd_txt_locale "list" ;; - "show") - local regex - for name in "${@}"; do - unset regex - case "${name}" in - # LC_CTYPE - "LC_NUMERIC") regex="^\(decimal\|thousands\|grouping\)" ;; - "LC_TIME") regex="^\(day\|mon\)" ;; - # LC_COLLATE - "LC_MONETARY") - case "${SPCD_OS_ID}" in - "${SPCD_OS_ALPINE}") ;; - *) regex="^\(int_curr\|currency\|mon_\)" ;; - esac - ;; - "LC_MESSAGES") regex="^\(yes\|no\)" ;; - "LC_PAPER") regex="^\(height\|width\)" ;; - "LC_NAME") regex="^name_m" ;; - "LC_ADDRESS") regex="^\(country\|lang\)_name" ;; - "LC_TELEPHONE") regex="^int_" ;; - "LC_MEASUREMENT") regex="^measurement=" ;; - "LC_IDENTIFICATION") regex="^\(language\|territory\|title\)" ;; - *) ;; - esac - spcd_split - spcd_os_printenv "${name}" - if [ -n "${regex}" ]; then - locale --keyword-name "${name}" | grep "${regex}" - fi - done - ;; *) ;; esac } @@ -938,7 +932,7 @@ spcd_txt_locales() { spcd_split case "${SPCD_PM}" in "${SPCD_PM_APK}") - spcd_f_pm_install "musl-locales" + spcd_install_package "musl-locales" export MUSL_LOCPATH="/usr/share/i18n/locales/musl" ;; "${SPCD_PM_APT}") @@ -949,17 +943,17 @@ ${name}.${_SPCD_TXT_CHARSET} ${_SPCD_TXT_CHARSET} " done spcd_os_write "/etc/locale.gen" "${text}" - spcd_f_pm_install "locales" + spcd_install_package "locales" ;; "${SPCD_PM_DNF}") local language for name in "${@}"; do language="$(echo "${name}" | cut -d _ -f 1)" - spcd_f_pm_install "glibc-langpack-${language}" + spcd_install_package "glibc-langpack-${language}" done ;; - "${SPCD_PM_PACMAN}") spcd_f_pm_install "glibc-locales" ;; - "${SPCD_PM_ZYPPER}") spcd_f_pm_install "glibc-locale" ;; + "${SPCD_PM_PACMAN}") spcd_install_package "glibc-locales" ;; + "${SPCD_PM_ZYPPER}") spcd_install_package "glibc-locale" ;; *) ;; esac spcd_split @@ -981,7 +975,7 @@ ${name}.${_SPCD_TXT_CHARSET} ${_SPCD_TXT_CHARSET} done ;; "list") - if ! spcd_run locale --all-locales; then + if ! locale --all-locales; then echo "No locales yet!" fi ;; @@ -989,133 +983,18 @@ ${name}.${_SPCD_TXT_CHARSET} ${_SPCD_TXT_CHARSET} esac } -# ╭───┬────╮ -# │ f │ pm │ -# ╰───┴────╯ - -spcd_f_pm_clean() { - case "${SPCD_PM}" in - "${SPCD_PM_APK}") spcd_run apk cache purge ;; - "${SPCD_PM_APT}") spcd_run apt-get clean ;; - "${SPCD_PM_DNF}") spcd_run dnf clean all ;; - "${SPCD_PM_PACMAN}") spcd_run pacman --sync --clean --noconfirm ;; - "${SPCD_PM_ZYPPER}") spcd_run zypper clean ;; - *) ;; - esac -} - -spcd_f_pm_install() { - case "${SPCD_PM}" in - "${SPCD_PM_APK}") spcd_run apk add "${1}" ;; - "${SPCD_PM_APT}") spcd_run apt-get install --assume-yes "${1}" ;; - "${SPCD_PM_DNF}") spcd_run dnf install --assumeyes "${1}" ;; - "${SPCD_PM_PACMAN}") spcd_run pacman --sync --noconfirm "${1}" ;; - "${SPCD_PM_ZYPPER}") spcd_run zypper --non-interactive install "${1}" ;; - *) ;; - esac - spcd_f_pm_clean -} - -spcd_f_pm_query() { - case "${SPCD_PM}" in - "${SPCD_PM_APK}") apk info "${1}" ;; - "${SPCD_PM_APT}") dpkg-query --show "${1}" ;; - "${SPCD_PM_DNF}") rpm --query "${1}" ;; - "${SPCD_PM_PACMAN}") pacman --query "${1}" ;; - "${SPCD_PM_ZYPPER}") rpm --query "${1}" ;; - *) ;; - esac -} - -spcd_f_pm_update() { - spcd_step "Update" - case "${SPCD_PM}" in - "${SPCD_PM_APK}") spcd_run apk update ;; - "${SPCD_PM_APT}") spcd_run apt-get update ;; - "${SPCD_PM_DNF}") spcd_run dnf makecache ;; - "${SPCD_PM_PACMAN}") spcd_run pacman --sync --refresh ;; - "${SPCD_PM_ZYPPER}") spcd_run zypper refresh ;; - *) ;; - esac -} - -spcd_f_pm_upgrade() { - spcd_step "Upgrade" - case "${SPCD_PM}" in - "${SPCD_PM_APK}") spcd_run apk upgrade ;; - "${SPCD_PM_APT}") spcd_run apt-get upgrade --assume-yes ;; - "${SPCD_PM_DNF}") spcd_run dnf upgrade --assumeyes ;; - "${SPCD_PM_PACMAN}") spcd_run pacman --sync --sysupgrade --noconfirm ;; - "${SPCD_PM_ZYPPER}") spcd_run zypper --non-interactive update ;; - *) ;; - esac -} - -# ╭───┬────┬───────╮ -# │ f │ pm │ https │ -# ╰───┴────┴───────╯ - -spcd_f_pm_https_path() { - case "${SPCD_PM}" in - "${SPCD_PM_APK}") echo "/etc/apk/repositories.d/https" ;; - "${SPCD_PM_APT}") echo "/etc/apt/apt.conf.d/https" ;; - "${SPCD_PM_DNF}") echo "/etc/dnf/dnf.conf.d/https.conf" ;; - "${SPCD_PM_PACMAN}") echo "/etc/pacman.d/https.conf" ;; - "${SPCD_PM_ZYPPER}") ;; - *) ;; - esac -} - -spcd_f_pm_https_trust() { - spcd_step "Trust" - local path text - if [ -n "${SPCD_CA_1}" ] || [ "${SPCD_PM}" = "${SPCD_PM_APT}" ]; then - path="$(spcd_f_pm_https_path)" - if [ -n "${path}" ]; then - spcd_os_mkdir "$(dirname "${path}")" - case "${SPCD_PM}" in - "${SPCD_PM_APK}") text="\ ---no-verify -" ;; - "${SPCD_PM_APT}") text="\ -Acquire::https::Verify-Peer False; -" ;; - "${SPCD_PM_DNF}") text="\ -sslverify=False -" ;; - "${SPCD_PM_PACMAN}") text="\ -SSLVerify = No -" ;; - "${SPCD_PM_ZYPPER}") ;; - *) ;; - esac - [ -n "${text}" ] && - spcd_os_write "${path}" "${text}" - fi - fi -} - -spcd_f_pm_https_verify() { - spcd_step "Verify" - local path - path="$(spcd_f_pm_https_path)" - if [ -n "${path}" ]; then - spcd_os_rm "${path}" - fi -} - -# ╭───┬─────╮ -# │ s │ dns │ -# ╰───┴─────╯ +# ╭──────┬─────╮ +# │ step │ dns │ +# ╰──────┴─────╯ spcd_step__dns() { spcd_step "DNS" spcd_dns "write" } -# ╭───┬──────────╮ -# │ s │ packages │ -# ╰───┴──────────╯ +# ╭──────┬──────────╮ +# │ step │ packages │ +# ╰──────┴──────────╯ spcd_step__packages_set_repositories() { spcd_step "Set repositories" @@ -1288,20 +1167,60 @@ Dir::Etc::SourceParts \"\"; esac case "${SPCD_OS_ID}" in "${SPCD_OS_ARCH}") - spcd_run pacman-key --init + pacman-key --init ;; "${SPCD_OS_DEBIAN}" | "${SPCD_OS_UBUNTU}") export DEBIAN_FRONTEND="noninteractive" - spcd_os_printenv DEBIAN_FRONTEND ;; *) ;; esac } +spcd_step__packages_trust_https() { + spcd_step "Trust HTTPS" + local path text + if [ -n "${SPCD_CA_1}" ] || [ "${SPCD_PM}" = "${SPCD_PM_APT}" ]; then + path="$(spcd_https_path)" + if [ -n "${path}" ]; then + spcd_os_mkdir "$(dirname "${path}")" + case "${SPCD_PM}" in + "${SPCD_PM_APK}") text="\ +--no-verify +" ;; + "${SPCD_PM_APT}") text="\ +Acquire::https::Verify-Peer False; +" ;; + "${SPCD_PM_DNF}") text="\ +sslverify=False +" ;; + "${SPCD_PM_PACMAN}") text="\ +SSLVerify = No +" ;; + "${SPCD_PM_ZYPPER}") ;; + *) ;; + esac + [ -n "${text}" ] && + spcd_os_write "${path}" "${text}" + fi + fi +} + +spcd_step__packages_update_catalog() { + spcd_step "Update catalog" + case "${SPCD_PM}" in + "${SPCD_PM_APK}") apk update ;; + "${SPCD_PM_APT}") apt-get update ;; + "${SPCD_PM_DNF}") dnf makecache ;; + "${SPCD_PM_PACMAN}") pacman --sync --refresh ;; + "${SPCD_PM_ZYPPER}") zypper refresh ;; + *) ;; + esac +} + spcd_step__packages_install_tools() { spcd_step "Install tools" case "${SPCD_PM}" in - "${SPCD_PM_APT}") spcd_f_pm_install "apt-utils" ;; + "${SPCD_PM_APT}") spcd_install_package "apt-utils" ;; *) ;; esac } @@ -1312,18 +1231,51 @@ spcd_step__packages_install_locales() { spcd_txt_locales "install" spcd_step "Set" spcd_txt_locale "set" "${SPCD_TXT_LOCALE}" - spcd_step "Show" - spcd_txt_locale "show" + spcd_step "Test" + # CTYPE + # NUMERIC + spcd_split + locale --keyword-name LC_NUMERIC | grep "^\(decimal\|thousands\|grouping\)" + # TIME + spcd_split + locale --keyword-name LC_TIME | grep "^\(day\|mon\)" + # COLLATE + # MONETARY + spcd_split + locale --keyword-name LC_MONETARY | grep "^\(int_curr\|currency\|mon_\)" + # MESSAGES + spcd_split + locale --keyword-name LC_MESSAGES | grep "^\(yes\|no\)" + # + # PAPER + spcd_split + locale --keyword-name LC_PAPER | grep "^\(height\|width\)" + # NAME + spcd_split + locale --keyword-name LC_NAME | grep "^name_m" + # ADDRESS + spcd_split + locale --keyword-name LC_ADDRESS | grep "^\(country\|lang\)_name" + # TELEPHONE + spcd_split + locale --keyword-name LC_TELEPHONE | grep "^int_" + # MEASUREMENT + spcd_split + locale --keyword-name LC_MEASUREMENT | grep "^measurement=" + # IDENTIFICATION + spcd_split + locale --keyword-name LC_IDENTIFICATION | + grep "^\(language\|territory\|title\)" spcd_step_out } -# ╭───┬────╮ -# │ s │ ca │ -# ╰───┴────╯ +# ╭──────┬────╮ +# │ step │ ca │ +# ╰──────┴────╯ spcd_step__ca_install_package() { spcd_step "Install package" - spcd_f_pm_install "ca-certificates" + spcd_install_package "ca-certificates" } spcd_step__ca_write_certificates() { @@ -1355,39 +1307,60 @@ spcd_step__ca_update_certificates() { "${SPCD_OS_ALMA}" | \ "${SPCD_OS_FEDORA}" | \ "${SPCD_OS_ROCKY}") - spcd_run update-ca-trust + update-ca-trust ;; "${SPCD_OS_ALPINE}" | \ "${SPCD_OS_DEBIAN}" | \ "${SPCD_OS_OPENSUSE}" | \ "${SPCD_OS_UBUNTU}") - spcd_run update-ca-certificates + update-ca-certificates ;; *) ;; esac } -# ╭───┬──────────╮ -# │ s │ packages │ -# ╰───┴──────────╯ +# ╭──────┬──────────╮ +# │ step │ packages │ +# ╰──────┴──────────╯ + +spcd_step__packages_verify_https() { + spcd_step "Verify HTTPS" + local path + path="$(spcd_https_path)" + if [ -n "${path}" ]; then + spcd_os_rm "${path}" + fi +} + +spcd_step__packages_upgrade_system() { + spcd_step "Upgrade system" + case "${SPCD_PM}" in + "${SPCD_PM_APK}") apk upgrade ;; + "${SPCD_PM_APT}") apt-get upgrade --assume-yes ;; + "${SPCD_PM_DNF}") dnf upgrade --assumeyes ;; + "${SPCD_PM_PACMAN}") pacman --sync --sysupgrade --noconfirm ;; + "${SPCD_PM_ZYPPER}") zypper --non-interactive update ;; + *) ;; + esac +} spcd_step__packages_install_dos2unix() { spcd_step "Install dos2unix" - spcd_f_pm_install "dos2unix" + spcd_install_package "dos2unix" } spcd_step__packages_install_git() { spcd_step "Install Git" - spcd_f_pm_install "git" + spcd_install_package "git" } -# ╭───┬────────╮ -# │ s │ python │ -# ╰───┴────────╯ +# ╭──────┬────────╮ +# │ step │ python │ +# ╰──────┴────────╯ spcd_step__python_install() { spcd_step "Install package" - spcd_f_pm_install "${SPCD_PYTHON_PACKAGE}" + spcd_install_package "${SPCD_PYTHON_PACKAGE}" spcd_step "Link alias to command" spcd_python_ln "${SPCD_PYTHON_COMMAND}" # venv @@ -1395,7 +1368,7 @@ spcd_step__python_install() { spcd_step "Install package" case "${SPCD_OS_ID}" in "${SPCD_OS_DEBIAN}" | "${SPCD_OS_UBUNTU}") - spcd_f_pm_install "python3-venv" + spcd_install_package "python3-venv" ;; *) ;; esac @@ -1445,7 +1418,7 @@ spcd_step__install_packages() { spcd_step "EPEL" case "${SPCD_OS_ID}" in "${SPCD_OS_ALMA}" | "${SPCD_OS_ROCKY}") - spcd_f_pm_install "epel-release" + spcd_install_package "epel-release" case "${SPCD_OS_VERSION}" in "9") set -- \ @@ -1477,32 +1450,32 @@ spcd_step__install_packages() { esac # graphviz spcd_step "GraphViz" - spcd_f_pm_install "graphviz" + spcd_install_package "graphviz" # openssh spcd_step "OpenSSH" case "${SPCD_PM}" in "${SPCD_PM_APK}" | "${SPCD_PM_APT}") - spcd_f_pm_install "openssh-client" + spcd_install_package "openssh-client" ;; "${SPCD_PM_DNF}" | "${SPCD_PM_ZYPPER}") - spcd_f_pm_install "openssh-clients" + spcd_install_package "openssh-clients" ;; - "${SPCD_PM_PACMAN}") spcd_f_pm_install "openssh" ;; + "${SPCD_PM_PACMAN}") spcd_install_package "openssh" ;; *) ;; esac # plantuml spcd_step "PlantUML" - spcd_f_pm_install "plantuml" + spcd_install_package "plantuml" # rsync spcd_step "Rsync" - spcd_f_pm_install "rsync" + spcd_install_package "rsync" # shell check spcd_step "ShellCheck" case "${SPCD_PM}" in "${SPCD_PM_DNF}" | "${SPCD_PM_ZYPPER}") - spcd_f_pm_install "ShellCheck" + spcd_install_package "ShellCheck" ;; - *) spcd_f_pm_install "shellcheck" ;; + *) spcd_install_package "shellcheck" ;; esac # shfmt spcd_step "ShellFormat" @@ -1511,10 +1484,10 @@ spcd_step__install_packages() { "${SPCD_OS_DEBIAN}") case "${SPCD_OS_VERSION}" in "bullseye") ;; - *) spcd_f_pm_install "shfmt" ;; + *) spcd_install_package "shfmt" ;; esac ;; - *) spcd_f_pm_install "shfmt" ;; + *) spcd_install_package "shfmt" ;; esac spcd_step_out } @@ -1575,8 +1548,8 @@ spcd_main() { spcd_step_in "Packages" spcd_step__packages_set_repositories spcd_step__packages_set_configuration - spcd_f_pm_https_trust - spcd_f_pm_update + spcd_step__packages_trust_https + spcd_step__packages_update_catalog spcd_step__packages_install_tools spcd_step__packages_install_locales spcd_step_out @@ -1588,9 +1561,9 @@ spcd_main() { spcd_step_out # packages spcd_step_in "Packages" - spcd_f_pm_https_verify - spcd_f_pm_update - spcd_f_pm_upgrade + spcd_step__packages_verify_https + spcd_step__packages_update_catalog + spcd_step__packages_upgrade_system spcd_step__packages_install_dos2unix spcd_step__packages_install_git spcd_step_out