Compare commits
16 commits
f3f19abad0
...
f92d49fe82
Author | SHA1 | Date | |
---|---|---|---|
f92d49fe82 | |||
8c0ae4174c | |||
af90952b5c | |||
906528b15c | |||
789d67654e | |||
4c6eac7b5f | |||
a217194d80 | |||
617695589f | |||
10e5685bf5 | |||
d546eb8377 | |||
de4c334582 | |||
a88c031ec3 | |||
03cde379b7 | |||
82ac82da2f | |||
530681b688 | |||
636f53713b |
1 changed files with 113 additions and 106 deletions
|
@ -1,7 +1,5 @@
|
||||||
#! /usr/bin/env sh
|
#! /usr/bin/env sh
|
||||||
|
|
||||||
#╶──────────────────────────────────────╴
|
|
||||||
|
|
||||||
# ╭──────────╮
|
# ╭──────────╮
|
||||||
# │ defaults │
|
# │ defaults │
|
||||||
# ╰──────────╯
|
# ╰──────────╯
|
||||||
|
@ -184,7 +182,7 @@ spcd_os_cat() {
|
||||||
spcd_cat__file="${1}"
|
spcd_cat__file="${1}"
|
||||||
if [ -n "${spcd_cat__file}" ]; then
|
if [ -n "${spcd_cat__file}" ]; then
|
||||||
spcd_frame_open "${spcd_cat__file}"
|
spcd_frame_open "${spcd_cat__file}"
|
||||||
cat "${spcd_cat__file}" || exit
|
cat "${spcd_cat__file}"
|
||||||
spcd_frame_shut "${spcd_cat__file}"
|
spcd_frame_shut "${spcd_cat__file}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -251,6 +249,19 @@ spcd_git_url() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ╭───────────┬─────────╮
|
||||||
|
# │ functions │ openssl │
|
||||||
|
# ╰───────────┴─────────╯
|
||||||
|
|
||||||
|
spcd_openssl_x509() {
|
||||||
|
spcd_openssl_x509__file="${1}"
|
||||||
|
if [ -f "${spcd_openssl_x509__file}" ]; then
|
||||||
|
openssl x509 \
|
||||||
|
-in "${spcd_openssl_x509__file}" \
|
||||||
|
-noout -text
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# ╭───────────┬────╮
|
# ╭───────────┬────╮
|
||||||
# │ functions │ os │
|
# │ functions │ os │
|
||||||
# ╰───────────┴────╯
|
# ╰───────────┴────╯
|
||||||
|
@ -294,7 +305,7 @@ spcd_os_rm() {
|
||||||
spcd_os_rm__path="${1}"
|
spcd_os_rm__path="${1}"
|
||||||
if [ -e "${spcd_os_rm__path}" ]; then
|
if [ -e "${spcd_os_rm__path}" ]; then
|
||||||
echo "← ${spcd_os_rm__path}"
|
echo "← ${spcd_os_rm__path}"
|
||||||
rm -r "${spcd_os_rm__path}" || exit
|
rm -r "${spcd_os_rm__path}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,7 +342,7 @@ spcd_python_ln() {
|
||||||
if [ -n "${spcd_python_ln__command}" ]; then
|
if [ -n "${spcd_python_ln__command}" ]; then
|
||||||
echo "→ ${SPCD_PYTHON_ALIAS} → ${spcd_python_ln__command}"
|
echo "→ ${SPCD_PYTHON_ALIAS} → ${spcd_python_ln__command}"
|
||||||
ln -f -s "${spcd_python_ln__command}" \
|
ln -f -s "${spcd_python_ln__command}" \
|
||||||
"/usr/bin/${SPCD_PYTHON_ALIAS}" || exit
|
"/usr/bin/${SPCD_PYTHON_ALIAS}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -408,12 +419,12 @@ SPCD_PM_ZYPPER="zypper"
|
||||||
SPCD_PYTHON_VENV="/opt/venv"
|
SPCD_PYTHON_VENV="/opt/venv"
|
||||||
SPCD_PYTHON_VENV_BINARIES="${SPCD_PYTHON_VENV}/bin"
|
SPCD_PYTHON_VENV_BINARIES="${SPCD_PYTHON_VENV}/bin"
|
||||||
|
|
||||||
# ╭───────┬─────╮
|
# ╭───────┬─────────────╮
|
||||||
# │ steps │ env │
|
# │ steps │ environment │
|
||||||
# ╰───────┴─────╯
|
# ╰───────┴─────────────╯
|
||||||
|
|
||||||
spcd_set_environment_variables() {
|
spcd_environment_set_variables() {
|
||||||
spcd_step "Set environment variables"
|
spcd_step "Set variables"
|
||||||
# check script first
|
# check script first
|
||||||
[ -n "${SPCD}" ] || spcd_error_ci "SPCD"
|
[ -n "${SPCD}" ] || spcd_error_ci "SPCD"
|
||||||
# continuous integration / github → gitea → forgejo
|
# continuous integration / github → gitea → forgejo
|
||||||
|
@ -893,18 +904,47 @@ ${SPCD_PYTHON_VENV}/lib/${SPCD_PYTHON_COMMAND}/site-packages"
|
||||||
spcd_os_printenv "SPCD_CA" "SPCD_DL"
|
spcd_os_printenv "SPCD_CA" "SPCD_DL"
|
||||||
}
|
}
|
||||||
|
|
||||||
spcd_list_working_directory() {
|
spcd_environment_list_workspace() {
|
||||||
spcd_step "List working directory"
|
spcd_step "List workspace"
|
||||||
spcd_lwd__path="$(realpath .)"
|
spcd_lwd__path="$(realpath .)"
|
||||||
spcd_os_ls "${spcd_lwd__path}"
|
spcd_os_ls "${spcd_lwd__path}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ╭───────┬───────────╮
|
||||||
|
# │ steps │ functions │
|
||||||
|
# ╰───────┴───────────╯
|
||||||
|
|
||||||
|
spcd_install_package() {
|
||||||
|
spcd_install_package__name="${1}"
|
||||||
|
if [ -n "${spcd_install_package__name}" ]; then
|
||||||
|
${SPCD_PM_INSTALL} "${spcd_install_package__name}"
|
||||||
|
${SPCD_PM_CLEAN}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# ╭───────┬─────╮
|
# ╭───────┬─────╮
|
||||||
# │ steps │ pkg │
|
# │ steps │ dns │
|
||||||
# ╰───────┴─────╯
|
# ╰───────┴─────╯
|
||||||
|
|
||||||
spcd_set_packages_repositories() {
|
spcd_dns() {
|
||||||
spcd_step "Set packages repositories"
|
spcd_step "DNS"
|
||||||
|
while true; do
|
||||||
|
spcd_sdr__index=$((spcd_sdr__index + 1))
|
||||||
|
eval "spcd_sdr__value=\"\${SPCD_DNS_${spcd_sdr__index}}\""
|
||||||
|
[ -n "${spcd_sdr__value}" ] || break
|
||||||
|
spcd_sdr__text="${spcd_sdr__text}\
|
||||||
|
nameserver ${spcd_sdr__value}
|
||||||
|
"
|
||||||
|
done
|
||||||
|
spcd_os_write "${SPCD_DNS_FILE}" "${spcd_sdr__text}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# ╭───────┬──────────╮
|
||||||
|
# │ steps │ packages │
|
||||||
|
# ╰───────┴──────────╯
|
||||||
|
|
||||||
|
spcd_packages_set_repositories() {
|
||||||
|
spcd_step "Set repositories"
|
||||||
case "${SPCD_OS_ID}" in
|
case "${SPCD_OS_ID}" in
|
||||||
"${SPCD_OS_ALMA}")
|
"${SPCD_OS_ALMA}")
|
||||||
case "${SPCD_OS_VERSION}" in
|
case "${SPCD_OS_VERSION}" in
|
||||||
|
@ -970,8 +1010,8 @@ deb ${SPCD_URL_CHOSEN} ${SPCD_OS_VERSION}-security main universe
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
spcd_set_packages_configuration() {
|
spcd_packages_set_configuration() {
|
||||||
spcd_step "Set packages configuration"
|
spcd_step "Set configuration"
|
||||||
spcd_os_write "${SPCD_PM_CONF_PATH}" "${SPCD_PM_CONF_TEXT}"
|
spcd_os_write "${SPCD_PM_CONF_PATH}" "${SPCD_PM_CONF_TEXT}"
|
||||||
case "${SPCD_OS_ID}" in
|
case "${SPCD_OS_ID}" in
|
||||||
"${SPCD_OS_ARCH}")
|
"${SPCD_OS_ARCH}")
|
||||||
|
@ -984,36 +1024,21 @@ spcd_set_packages_configuration() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
# agnostic steps
|
spcd_packages_trust_https() {
|
||||||
|
spcd_step "Trust HTTPS"
|
||||||
spcd_set_https_verification_off() {
|
|
||||||
if [ -n "${SPCD_CA}" ] || [ "${SPCD_PM}" = "${SPCD_PM_APT}" ]; then
|
if [ -n "${SPCD_CA}" ] || [ "${SPCD_PM}" = "${SPCD_PM_APT}" ]; then
|
||||||
spcd_step "Set HTTPS verification off"
|
|
||||||
spcd_os_mkdir "$(dirname "${SPCD_PM_HTTPS_PATH}")"
|
spcd_os_mkdir "$(dirname "${SPCD_PM_HTTPS_PATH}")"
|
||||||
spcd_os_write "${SPCD_PM_HTTPS_PATH}" "${SPCD_PM_HTTPS_TEXT}"
|
spcd_os_write "${SPCD_PM_HTTPS_PATH}" "${SPCD_PM_HTTPS_TEXT}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
spcd_set_dns_resolving() {
|
spcd_packages_update_catalog() {
|
||||||
spcd_step "Set DNS resolving"
|
spcd_step "Update catalog"
|
||||||
while true; do
|
${SPCD_PM_UPDATE}
|
||||||
spcd_sdr__index=$((spcd_sdr__index + 1))
|
|
||||||
eval "spcd_sdr__value=\"\${SPCD_DNS_${spcd_sdr__index}}\""
|
|
||||||
[ -n "${spcd_sdr__value}" ] || break
|
|
||||||
spcd_sdr__text="${spcd_sdr__text}\
|
|
||||||
nameserver ${spcd_sdr__value}
|
|
||||||
"
|
|
||||||
done
|
|
||||||
spcd_os_write "${SPCD_DNS_FILE}" "${spcd_sdr__text}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
spcd_update_packages_catalog() {
|
spcd_packages_install_tools() {
|
||||||
spcd_step "Update packages catalog"
|
spcd_step "Install tools"
|
||||||
${SPCD_PM_UPDATE} || exit
|
|
||||||
}
|
|
||||||
|
|
||||||
spcd_install_packages_tools() {
|
|
||||||
spcd_step "Install packages tools"
|
|
||||||
spcd_install_package "${SPCD_PKG_PKG}"
|
spcd_install_package "${SPCD_PKG_PKG}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1036,35 +1061,35 @@ spcd_write_ca_certificates() {
|
||||||
spcd_wcc__path="${SPCD_CA_ROOT}/${spcd_wcc__index}.crt"
|
spcd_wcc__path="${SPCD_CA_ROOT}/${spcd_wcc__index}.crt"
|
||||||
spcd_split
|
spcd_split
|
||||||
spcd_os_write "${spcd_wcc__path}" "${spcd_wcc__text}"
|
spcd_os_write "${spcd_wcc__path}" "${spcd_wcc__text}"
|
||||||
spcd_openssl "${spcd_wcc__path}"
|
spcd_openssl_x509 "${spcd_wcc__path}"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
spcd_update_ca_certificates() {
|
spcd_update_ca_certificates() {
|
||||||
spcd_step "Update CA certificates"
|
spcd_step "Update CA certificates"
|
||||||
${SPCD_CMD_CA} || exit
|
${SPCD_CMD_CA}
|
||||||
}
|
}
|
||||||
|
|
||||||
# ╭───────┬─────╮
|
# ╭───────┬──────────╮
|
||||||
# │ steps │ pkg │
|
# │ steps │ packages │
|
||||||
# ╰───────┴─────╯
|
# ╰───────┴──────────╯
|
||||||
|
|
||||||
spcd_set_https_verification_on() {
|
spcd_packages_verify_https() {
|
||||||
spcd_step "Set HTTPS verification on"
|
spcd_step "Verify HTTPS"
|
||||||
spcd_os_rm "${SPCD_PM_HTTPS_PATH}"
|
spcd_os_rm "${SPCD_PM_HTTPS_PATH}"
|
||||||
}
|
}
|
||||||
|
|
||||||
spcd_upgrade_packages() {
|
spcd_packages_upgrade_system() {
|
||||||
spcd_step "Upgrade packages"
|
spcd_step "Upgrade system"
|
||||||
${SPCD_PM_UPGRADE} || exit
|
${SPCD_PM_UPGRADE}
|
||||||
}
|
}
|
||||||
|
|
||||||
spcd_install_dos2unix() {
|
spcd_packages_install_dos2unix() {
|
||||||
spcd_step "Install dos2unix"
|
spcd_step "Install dos2unix"
|
||||||
spcd_install_package "${SPCD_PKG_DOS2UNIX}"
|
spcd_install_package "${SPCD_PKG_DOS2UNIX}"
|
||||||
}
|
}
|
||||||
|
|
||||||
spcd_install_git() {
|
spcd_packages_install_git() {
|
||||||
spcd_step "Install Git"
|
spcd_step "Install Git"
|
||||||
spcd_install_package "${SPCD_PKG_GIT}"
|
spcd_install_package "${SPCD_PKG_GIT}"
|
||||||
}
|
}
|
||||||
|
@ -1073,8 +1098,8 @@ spcd_install_git() {
|
||||||
# │ steps │ python │
|
# │ steps │ python │
|
||||||
# ╰───────┴────────╯
|
# ╰───────┴────────╯
|
||||||
|
|
||||||
spcd_install_python() {
|
spcd_python_install() {
|
||||||
spcd_step_in "Install Python"
|
spcd_step "Install package"
|
||||||
spcd_install_package "${SPCD_PYTHON_PACKAGE}"
|
spcd_install_package "${SPCD_PYTHON_PACKAGE}"
|
||||||
spcd_step "Link alias to command"
|
spcd_step "Link alias to command"
|
||||||
spcd_python_ln "${SPCD_PYTHON_COMMAND}"
|
spcd_python_ln "${SPCD_PYTHON_COMMAND}"
|
||||||
|
@ -1098,11 +1123,10 @@ index-url = ${SPCD_URL_PYTHON}
|
||||||
export PATH="${SPCD_PYTHON_VENV_BINARIES}:${PATH}"
|
export PATH="${SPCD_PYTHON_VENV_BINARIES}:${PATH}"
|
||||||
export VIRTUAL_ENV="${SPCD_PYTHON_VENV}"
|
export VIRTUAL_ENV="${SPCD_PYTHON_VENV}"
|
||||||
spcd_step_out
|
spcd_step_out
|
||||||
spcd_step_out
|
|
||||||
}
|
}
|
||||||
|
|
||||||
spcd_install_python_modules() {
|
spcd_python_modules() {
|
||||||
spcd_step_in "Python modules"
|
spcd_step_in "Modules"
|
||||||
spcd_ipm__target="${SPCD_PYTHON_VENV_PACKAGES}"
|
spcd_ipm__target="${SPCD_PYTHON_VENV_PACKAGES}"
|
||||||
spcd_step "List"
|
spcd_step "List"
|
||||||
spcd_os_ls "${spcd_ipm__target}"
|
spcd_os_ls "${spcd_ipm__target}"
|
||||||
|
@ -1110,7 +1134,7 @@ spcd_install_python_modules() {
|
||||||
spcd_ipm__path="$(spcd_python_pip "${SPCD_GIT_MAIN}")"
|
spcd_ipm__path="$(spcd_python_pip "${SPCD_GIT_MAIN}")"
|
||||||
# check matching of file and variable
|
# check matching of file and variable
|
||||||
spcd_step "Check"
|
spcd_step "Check"
|
||||||
spcd_ipm__script="${spcd_ipm__path}/main.sh"
|
spcd_ipm__script="${spcd_ipm__path}/bootstrap.sh"
|
||||||
ls -l "${spcd_ipm__script}"
|
ls -l "${spcd_ipm__script}"
|
||||||
spcd_ipm__check="${spcd_ipm__script}.${SPCD_CMD_SUM}"
|
spcd_ipm__check="${spcd_ipm__script}.${SPCD_CMD_SUM}"
|
||||||
"${SPCD_CMD_SUM}" "${spcd_ipm__script}" >"${spcd_ipm__check}"
|
"${SPCD_CMD_SUM}" "${spcd_ipm__script}" >"${spcd_ipm__check}"
|
||||||
|
@ -1189,8 +1213,8 @@ spcd_install_packages() {
|
||||||
spcd_step_out
|
spcd_step_out
|
||||||
}
|
}
|
||||||
|
|
||||||
spcd_write_python_module() {
|
spcd_python_write_module() {
|
||||||
spcd_step "Write Python module"
|
spcd_step "Write module"
|
||||||
for spcd_wpm__variable in \
|
for spcd_wpm__variable in \
|
||||||
OS_ID OS_VERSION \
|
OS_ID OS_VERSION \
|
||||||
PROJECT_ROOT PROJECT_PATH PROJECT_NAME \
|
PROJECT_ROOT PROJECT_PATH PROJECT_NAME \
|
||||||
|
@ -1208,8 +1232,8 @@ SPCD_STEP = $((SPCD_STEP + 1))
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
spcd_switch_to_python() {
|
spcd_python_switch() {
|
||||||
spcd_step "Switch to Python"
|
spcd_step "Switch"
|
||||||
spcd_stp__name="$(basename "${SPCD_GIT_MAIN}")"
|
spcd_stp__name="$(basename "${SPCD_GIT_MAIN}")"
|
||||||
echo "\
|
echo "\
|
||||||
${SPCD_PATH}
|
${SPCD_PATH}
|
||||||
|
@ -1220,62 +1244,45 @@ ${SPCD_PYTHON_ALIAS} / ${spcd_stp__name}"
|
||||||
|
|
||||||
#╶──────────────────────────────────────╴
|
#╶──────────────────────────────────────╴
|
||||||
|
|
||||||
# ╭───────────╮
|
|
||||||
# │ functions │
|
|
||||||
# ╰───────────╯
|
|
||||||
|
|
||||||
spcd_install_package() {
|
|
||||||
spcd_install_package__name="${1}"
|
|
||||||
if [ -n "${spcd_install_package__name}" ]; then
|
|
||||||
${SPCD_PM_INSTALL} "${spcd_install_package__name}" || exit
|
|
||||||
${SPCD_PM_CLEAN} || exit
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
spcd_openssl() {
|
|
||||||
spcd_openssl__file="${1}"
|
|
||||||
if [ -f "${spcd_openssl__file}" ]; then
|
|
||||||
openssl x509 \
|
|
||||||
-in "${spcd_openssl__file}" \
|
|
||||||
-noout -text ||
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#╶──────────────────────────────────────╴
|
|
||||||
|
|
||||||
# ╭──────╮
|
# ╭──────╮
|
||||||
# │ main │
|
# │ main │
|
||||||
# ╰──────╯
|
# ╰──────╯
|
||||||
|
|
||||||
spcd_main() {
|
spcd_main() {
|
||||||
# env
|
# environment
|
||||||
spcd_set_environment_variables
|
spcd_step_in "Environment"
|
||||||
spcd_list_working_directory
|
spcd_environment_set_variables
|
||||||
# pkg
|
spcd_environment_list_workspace
|
||||||
spcd_set_packages_repositories
|
spcd_step_out
|
||||||
spcd_set_packages_configuration
|
# dns
|
||||||
#
|
spcd_dns
|
||||||
spcd_set_https_verification_off
|
# packages
|
||||||
spcd_set_dns_resolving
|
spcd_step_in "Packages"
|
||||||
spcd_update_packages_catalog
|
spcd_packages_set_repositories
|
||||||
spcd_install_packages_tools
|
spcd_packages_set_configuration
|
||||||
|
spcd_packages_trust_https
|
||||||
|
spcd_packages_update_catalog
|
||||||
|
spcd_packages_install_tools
|
||||||
|
spcd_step_out
|
||||||
# ca
|
# ca
|
||||||
spcd_install_ca_certificates
|
spcd_install_ca_certificates
|
||||||
spcd_write_ca_certificates
|
spcd_write_ca_certificates
|
||||||
spcd_update_ca_certificates
|
spcd_update_ca_certificates
|
||||||
# pkg
|
# packages
|
||||||
spcd_set_https_verification_on
|
spcd_step_in "Packages"
|
||||||
spcd_update_packages_catalog
|
spcd_packages_verify_https
|
||||||
spcd_upgrade_packages
|
spcd_packages_update_catalog
|
||||||
spcd_install_dos2unix
|
spcd_packages_upgrade_system
|
||||||
spcd_install_git
|
spcd_packages_install_dos2unix
|
||||||
|
spcd_packages_install_git
|
||||||
|
spcd_step_out
|
||||||
# python
|
# python
|
||||||
spcd_install_python
|
spcd_step_in "Python"
|
||||||
spcd_install_python_modules
|
spcd_python_install
|
||||||
|
spcd_python_modules
|
||||||
spcd_install_packages
|
spcd_install_packages
|
||||||
spcd_write_python_module
|
spcd_python_write_module
|
||||||
spcd_switch_to_python
|
spcd_python_switch
|
||||||
}
|
}
|
||||||
|
|
||||||
spcd_main
|
spcd_main
|
Loading…
Reference in a new issue