diff --git a/spcd/bootstrap.sh b/spcd/bootstrap.sh index 0e1ce38..137ac96 100644 --- a/spcd/bootstrap.sh +++ b/spcd/bootstrap.sh @@ -222,8 +222,9 @@ spcd_error_ci() { } spcd_error_os() { + spcd_error_os__variable="${1}" printf "× OS: " - spcd_os_printenv "${1}" + spcd_os_printenv "${spcd_error_os__variable}" exit "${_SPCD_ERROR_OS}" } @@ -256,9 +257,10 @@ spcd_git_url() { # ╰───────────┴─────────╯ spcd_openssl_x509() { - if [ -f "${1}" ]; then + spcd_openssl_x509__file="${1}" + if [ -f "${spcd_openssl_x509__file}" ]; then openssl x509 \ - -in "${1}" \ + -in "${spcd_openssl_x509__file}" \ -noout -text fi } @@ -276,16 +278,20 @@ spcd_os_grep() { } spcd_os_ls() { - if [ -n "${1}" ]; then - _spcd_frame_open "${1}" - ls -a -l "${1}" - _spcd_frame_shut "${1}" + spcd_os_ls__path="${1}" + if [ -n "${spcd_os_ls__path}" ]; then + _spcd_frame_open "${spcd_os_ls__path}" + ls -a -l "${spcd_os_ls__path}" + _spcd_frame_shut "${spcd_os_ls__path}" fi } spcd_os_mkdir() { - echo "→ ${1}" - mkdir --parents "${1}" + spcd_os_mkdir__path="${1}" + if [ -n "${spcd_os_mkdir__path}" ]; then + echo "→ ${spcd_os_mkdir__path}" + mkdir --parents "${spcd_os_mkdir__path}" + fi } spcd_os_printenv() { @@ -329,6 +335,30 @@ spcd_os_write() { fi } +# ╭───────────┬────────╮ +# │ functions │ python │ +# ╰───────────┴────────╯ + +spcd_python_ln() { + spcd_python_ln__command="${1}" + if [ -n "${spcd_python_ln__command}" ]; then + echo "→ ${SPCD_PYTHON_ALIAS} → ${spcd_python_ln__command}" + ln -f -s "${spcd_python_ln__command}" \ + "/usr/bin/${SPCD_PYTHON_ALIAS}" + fi +} + +spcd_python_pip() { + if [ -n "${1}" ]; then + spcd_pp__name="$(basename "${1}")" + spcd_pp__path="$(spcd_git_clone "${1}")" + spcd_pp__path="${spcd_pp__path}/${spcd_pp__name}" + spcd_pp__target="${SPCD_PYTHON_VENV_PACKAGES}" + cp --recursive "${spcd_pp__path}" "${spcd_pp__target}" + echo "${spcd_pp__target}/${spcd_pp__name}" + fi +} + # ╭───────────┬───────╮ # │ functions │ split │ # ╰───────────┴───────╯ @@ -386,6 +416,9 @@ SPCD_PM_DNF="dnf" SPCD_PM_PACMAN="pacman" SPCD_PM_ZYPPER="zypper" +SPCD_PYTHON_VENV="/opt/venv" +SPCD_PYTHON_VENV_BINARIES="${SPCD_PYTHON_VENV}/bin" + # ╭───────┬─────────────╮ # │ steps │ environment │ # ╰───────┴─────────────╯ @@ -481,6 +514,9 @@ ${SPCD_PROJECT_ROOT}$(basename "${GITHUB_SERVER_URL}")" # spcd_os_printenv "SPCD_PROJECT_BRANCH" \ "SPCD_PROJECT_ROOT" "SPCD_PROJECT_PATH" "SPCD_PROJECT_NAME" + # set path + SPCD_PATH="$(realpath "${0}")" + spcd_os_printenv "SPCD_PATH" # set operating system id SPCD_OS_ID="$(spcd_os_grep ID)" case "${SPCD_OS_ID}" in @@ -558,6 +594,11 @@ ${SPCD_PROJECT_ROOT}$(basename "${GITHUB_SERVER_URL}")" esac spcd_split spcd_os_printenv "SPCD_OS_ID" "SPCD_OS_VERSION" + # universal + SPCD_DNS_FILE="/etc/resolv.conf" + SPCD_PYTHON_ALIAS="python3" + spcd_split + spcd_os_printenv "SPCD_DNS_FILE" "SPCD_PYTHON_ALIAS" # set package manager case "${SPCD_OS_ID}" in "${SPCD_OS_ALPINE}") @@ -577,9 +618,9 @@ ${SPCD_PROJECT_ROOT}$(basename "${GITHUB_SERVER_URL}")" ;; *) ;; esac + # set package manager variables spcd_split spcd_os_printenv "SPCD_PM" - # set package manager variables case "${SPCD_PM}" in "${SPCD_PM_DNF}") SPCD_PM_HTTPS_PATH="/etc/dnf/dnf.conf.d/https.conf" @@ -678,10 +719,6 @@ Acquire::https::Verify-Peer False; esac spcd_split spcd_os_printenv "SPCD_URL_DEFAULT" "SPCD_URL_CHOSEN" - # set python alias - SPCD_PYTHON_ALIAS="python3" - spcd_split - spcd_os_printenv "SPCD_PYTHON_ALIAS" # set python command & package case "${SPCD_OS_ID}" in "${SPCD_OS_ALMA}" | "${SPCD_OS_ROCKY}") @@ -751,9 +788,6 @@ Acquire::https::Verify-Peer False; ;; *) ;; esac - # set python virtual environment - SPCD_PYTHON_VENV="/opt/venv" - SPCD_PYTHON_VENV_BINARIES="${SPCD_PYTHON_VENV}/bin" SPCD_PYTHON_VENV_PACKAGES="\ ${SPCD_PYTHON_VENV}/lib/${SPCD_PYTHON_COMMAND}/site-packages" spcd_split @@ -797,26 +831,6 @@ spcd_install_package() { spcd_clean_cache } -spcd_python_ln() { - spcd_python_ln__command="${1}" - if [ -n "${spcd_python_ln__command}" ]; then - echo "→ ${SPCD_PYTHON_ALIAS} → ${spcd_python_ln__command}" - ln -f -s "${spcd_python_ln__command}" \ - "/usr/bin/${SPCD_PYTHON_ALIAS}" - fi -} - -spcd_python_pip() { - if [ -n "${1}" ]; then - spcd_pp__name="$(basename "${1}")" - spcd_pp__path="$(spcd_git_clone "${1}")" - spcd_pp__path="${spcd_pp__path}/${spcd_pp__name}" - spcd_pp__target="${SPCD_PYTHON_VENV_PACKAGES}" - cp --recursive "${spcd_pp__path}" "${spcd_pp__target}" - echo "${spcd_pp__target}/${spcd_pp__name}" - fi -} - spcd_query_package() { case "${SPCD_PM}" in "${SPCD_PM_APK}") apk info "${1}" ;; @@ -842,7 +856,7 @@ spcd_dns() { nameserver ${spcd_sdr__value} " done - spcd_os_write "/etc/resolv.conf" "${spcd_sdr__text}" + spcd_os_write "${SPCD_DNS_FILE}" "${spcd_sdr__text}" } # ╭───────┬──────────╮ @@ -1209,9 +1223,8 @@ SPCD_STEP = ${spcd_wpm__index} spcd_python_switch() { spcd_step "Switch" spcd_stp__name="$(basename "${SPCD_GIT_MAIN}")" - spcd_stp__path="$(realpath "${0}")" echo "\ -${spcd_stp__path} +${SPCD_PATH} ↓ ${SPCD_PYTHON_ALIAS} / ${spcd_stp__name}" "${SPCD_PYTHON_ALIAS}" -m "${spcd_stp__name}"