Compare commits

..

5 commits

Author SHA1 Message Date
a376f1b148
tasks/pkg
Some checks failed
/ job (push) Failing after 10m48s
2024-08-19 14:43:46 +02:00
5593c26ded
tasks/venv 2024-08-19 14:38:39 +02:00
4d5ed3faed
arch/venv 2024-08-19 14:32:00 +02:00
e52764c8bf
spcd_cmd_sum 2024-08-19 14:27:10 +02:00
3a58be34e0
mv 2024-08-19 14:15:29 +02:00
2 changed files with 47 additions and 35 deletions

View file

@ -45,6 +45,7 @@ from various contexts of CA, CI and OCI / OS.
| SPCD_BRANCH_STAGING | Staging deployment branch | dev |
| SPCD_BRANCH_FEATURE | Feature deployment branch | f |
| SPCD_CA_n | Numbered CA certificates | |
| SPCD_CMD_SUM | Command to check sums | sha512sum |
| SPCD_DNS_n | Numbered name servers | 9.9.9.9 |
| SPCD_GIT_MAIN | Main Git repository | spcd |
| SPCD_GIT_ROOT | Root Git repository | rwx |
@ -87,11 +88,16 @@ from various contexts of CA, CI and OCI / OS.
* relay environment module name
* write tests
### .py
### sh
* detect ssh private key type
* implement project repository cloning
* install
* support
* arch python virtual environment
* opensuse operating system
### sh → py
* check file & variable sums
* install system packages
* epel
* plantuml
* shellcheck
@ -99,10 +105,17 @@ from various contexts of CA, CI and OCI / OS.
* openssh
* rsync
* shfmt
* python virtual environment
* install system package
* configure pip
* venv
* create
* activate
### py
* detect ssh private key type
* implement project repository cloning
* lint
* .py
* .sh
### .sh
* support opensuse

53
spcd.sh
View file

@ -4,6 +4,7 @@
[ -n "${SPCD_BRANCH_RELEASE}" ] || SPCD_BRANCH_RELEASE="main"
[ -n "${SPCD_BRANCH_STAGING}" ] || SPCD_BRANCH_STAGING="dev"
[ -n "${SPCD_BRANCH_FEATURE}" ] || SPCD_BRANCH_FEATURE="f"
[ -n "${SPCD_CMD_SUM}" ] || SPCD_CMD_SUM="sha512sum"
[ -n "${SPCD_DNS_1}" ] || SPCD_DNS_1="9.9.9.9"
[ -n "${SPCD_GIT_MAIN}" ] || SPCD_GIT_MAIN="spcd"
[ -n "${SPCD_GIT_ROOT}" ] || SPCD_GIT_ROOT="rwx"
@ -32,7 +33,6 @@ spcd_main() {
spcd_install_git
spcd_install_python
spcd_install_python_modules
# TODO move to Python
spcd_install_packages
spcd_write_python_module
spcd_switch_to_python
@ -605,6 +605,28 @@ spcd_install_python() {
spcd_install_package "${SPCD_PYTHON_PACKAGE}"
spcd_split
spcd_ln_python "${SPCD_PYTHON_COMMAND}"
# venv
spcd_step "Install Python virtual environment"
case "${SPCD_OS_ID}" in
"${SPCD_OS_DEBIAN}" | "${SPCD_OS_UBUNTU}")
spcd_install_package "python3-venv"
;;
"${SPCD_OS_ARCH}")
echo "Not supported!"
exit 255
;;
*) ;;
esac
spcd_split
spcd_write "/etc/pip.conf" "\
[global]
index-url = ${SPCD_URL_PYTHON}
"
spcd_split
"${SPCD_PYTHON_ALIAS}" -m "venv" "${SPCD_PYTHON_VENV}"
spcd_split
export PATH="${SPCD_PYTHON_VENV_BINARIES}:${PATH}"
export VIRTUAL_ENV="${SPCD_PYTHON_VENV}"
}
spcd_install_python_modules() {
@ -639,13 +661,13 @@ ${spcd_ipm__target}"
spcd_ipm__script="${spcd_ipm__root}/${spcd_ipm__name}/spcd.sh"
if [ -f "${spcd_ipm__script}" ]; then
spcd_split
spcd_ipm__check="${spcd_ipm__root}/check.sha512sum"
sha512sum "${spcd_ipm__script}" >"${spcd_ipm__check}"
spcd_ipm__check="${spcd_ipm__root}/check.${SPCD_CMD_SUM}"
"${SPCD_CMD_SUM}" "${spcd_ipm__script}" >"${spcd_ipm__check}"
printf "%s" "${SPCD}" >"${spcd_ipm__script}"
ls -l "${spcd_ipm__script}"
dos2unix "${spcd_ipm__script}"
ls -l "${spcd_ipm__script}"
sha512sum -c "${spcd_ipm__check}" || spcd_error_ci "SPCD"
"${SPCD_CMD_SUM}" -c "${spcd_ipm__check}" || spcd_error_ci "SPCD"
fi
done
spcd_split
@ -654,7 +676,6 @@ ${spcd_ipm__target}"
spcd_rm "${spcd_ipm__root}"
}
# TODO move to Python
spcd_install_packages() {
# epel
spcd_step "Install EPEL"
@ -704,28 +725,6 @@ spcd_install_packages() {
"${SPCD_PM_PACMAN}") spcd_install_package "openssh" ;;
*) ;;
esac
# venv
spcd_step "Install Python virtual environment"
case "${SPCD_OS_ID}" in
"${SPCD_OS_DEBIAN}" | "${SPCD_OS_UBUNTU}")
spcd_install_package "python3-venv"
;;
"${SPCD_OS_ARCH}")
# FIXME arch
exit 255
;;
*) ;;
esac
spcd_split
spcd_write "/etc/pip.conf" "\
[global]
index-url = ${SPCD_URL_PYTHON}
"
spcd_split
"${SPCD_PYTHON_ALIAS}" -m "venv" "${SPCD_PYTHON_VENV}"
spcd_split
export PATH="${SPCD_PYTHON_VENV_BINARIES}:${PATH}"
export VIRTUAL_ENV="${SPCD_PYTHON_VENV}"
}
spcd_write_python_module() {