Compare commits

...

10 commits

Author SHA1 Message Date
c0ea80cf6f
git/main,root
Some checks failed
/ job (push) Failing after 13m20s
2024-06-23 22:23:05 +02:00
456b96da31
child/name 2024-06-23 22:20:40 +02:00
6891be7a73
fix 2024-06-23 22:06:22 +02:00
4fb4f2a32e
override locations 2024-06-23 21:58:02 +02:00
0a1330b58e
−projects_url 2024-06-23 21:35:51 +02:00
ba5f74d0a9
write/root,path,name 2024-06-23 20:55:37 +02:00
e83076e35d
tokens 2024-06-23 20:48:37 +02:00
aa76386700
sh/lint 2024-06-23 19:22:25 +02:00
c494c59f06
sort environment variables
Some checks failed
/ job (push) Failing after 7m28s
2024-06-23 17:03:45 +02:00
8004c604b3
pidd_list_environment_variables 2024-06-23 16:27:59 +02:00
2 changed files with 67 additions and 32 deletions

93
pidd.sh
View file

@ -4,8 +4,8 @@
[ -n "${PIDD_DNS}" ] || PIDD_DNS="\
9.9.9.9 \
"
[ -n "${PIDD_GIT_CHILD}" ] || PIDD_GIT_CHILD="pidd"
[ -n "${PIDD_GIT_PARENT}" ] || PIDD_GIT_PARENT="rwx"
[ -n "${PIDD_GIT_MAIN}" ] || PIDD_GIT_MAIN="pidd"
[ -n "${PIDD_GIT_ROOT}" ] || PIDD_GIT_ROOT="rwx"
# main
pidd_main () {
@ -13,6 +13,7 @@ pidd_main () {
pidd_set_packages_repositories
pidd_set_packages_configuration
#
pidd_list_environment_variables
pidd_list_working_directory
pidd_set_https_verification_off
pidd_set_dns_resolving
@ -351,12 +352,17 @@ Acquire::https::Verify-Peer False;
if [ -n "${GITHUB_ACTIONS}" ] ; then
# github → gitea → forgejo
if [ -n "${GITHUB_SERVER_URL}" ] ; then
PIDD_SERVER_URL="${GITHUB_SERVER_URL}"
if [ -n "${GITHUB_TOKEN}" ] ; then
PIDD_PROJECT_ROOT="$(dirname "${GITHUB_SERVER_URL}")\
//${GITHUB_TOKEN}@$(basename "${GITHUB_SERVER_URL}")"
else
pidd_error_ci "GITHUB_TOKEN"
fi
else
pidd_error_ci "GITHUB_SERVER_URL"
fi
if [ -n "${GITHUB_REPOSITORY}" ] ; then
PIDD_PROJECTS_GROUP="$(dirname "${GITHUB_REPOSITORY}")"
PIDD_PROJECT_PATH="$(dirname "${GITHUB_REPOSITORY}")"
PIDD_PROJECT_NAME="$(basename "${GITHUB_REPOSITORY}")"
else
pidd_error_ci "GITHUB_REPOSITORY"
@ -368,16 +374,33 @@ Acquire::https::Verify-Peer False;
fi
elif [ -n "${GITLAB_CI}" ] ; then
# gitlab
if [ -n "${CI_SERVER_URL}" ] ; then
PIDD_SERVER_URL="${CI_SERVER_URL}"
if [ -n "${CI_SERVER_PROTOCOL}" ] ; then
if [ -n "${CI_REGISTRY_USER}" ] ; then
if [ -n "${CI_REGISTRY_PASSWORD}" ] ; then
if [ -n "${CI_SERVER_FQDN}" ] ; then
PIDD_PROJECT_ROOT="${CI_SERVER_PROTOCOL}\
://${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}@${CI_SERVER_FQDN}"
if [ -n "${CI_PROJECT_NAMESPACE}" ] ; then
PIDD_PROJECT_PATH="${CI_PROJECT_NAMESPACE}"
if [ -n "${CI_PROJECT_NAME}" ] ; then
PIDD_PROJECT_NAME="${CI_PROJECT_NAME}"
else
pidd_error_ci "CI_PROJECT_NAME"
fi
else
pidd_error_ci "CI_PROJECT_NAMESPACE"
fi
else
pidd_error_ci "CI_SERVER_FQDN"
fi
else
pidd_error_ci "CI_REGISTRY_PASSWORD"
fi
else
pidd_error_ci "CI_REGISTRY_USER"
fi
else
pidd_error_ci "CI_SERVER_URL"
fi
if [ -n "${CI_PROJECT_PATH}" ] ; then
PIDD_PROJECTS_GROUP="$(dirname "${CI_PROJECT_PATH}")"
PIDD_PROJECT_NAME="$(basename "${CI_PROJECT_PATH}")"
else
pidd_error_ci "CI_PROJECT_PATH"
pidd_error_ci "CI_SERVER_PROTOCOL"
fi
if [ -n "${CI_COMMIT_BRANCH}" ] ; then
PIDD_PROJECT_BRANCH="${CI_COMMIT_BRANCH}"
@ -388,20 +411,16 @@ Acquire::https::Verify-Peer False;
# unsupported
pidd_error_ci "ø"
fi
[ -n "${PIDD_SERVER_URL}" ] || pidd_error_ci "PIDD_SERVER_URL"
[ -n "${PIDD_PROJECTS_GROUP}" ] || pidd_error_ci "PIDD_PROJECTS_GROUP"
[ -n "${PIDD_PROJECT_ROOT}" ] || pidd_error_ci "PIDD_PROJECT_ROOT"
[ -n "${PIDD_PROJECT_PATH}" ] || pidd_error_ci "PIDD_PROJECT_PATH"
[ -n "${PIDD_PROJECT_NAME}" ] || pidd_error_ci "PIDD_PROJECT_NAME"
[ -n "${PIDD_PROJECT_BRANCH}" ] || pidd_error_ci "PIDD_PROJECT_BRANCH"
#
PIDD_PROJECTS_URL="${PIDD_SERVER_URL}/${PIDD_PROJECTS_GROUP}"
#
pidd_split
pidd_echo "PIDD_CA"
pidd_split
pidd_echo "PIDD_SERVER_URL" \
"PIDD_PROJECTS_GROUP" "PIDD_PROJECT_NAME" "PIDD_PROJECT_BRANCH"
pidd_split
pidd_echo "PIDD_PROJECTS_URL"
pidd_echo "PIDD_PROJECT_ROOT" \
"PIDD_PROJECT_PATH" "PIDD_PROJECT_NAME" "PIDD_PROJECT_BRANCH"
# TODO move to Python
case "${PIDD_PM}" in
"${PIDD_PM_APK}"|"${PIDD_PM_APT}") PIDD_PKG_SSH="openssh-client" ;;
@ -482,6 +501,11 @@ pidd_set_packages_configuration () {
# agnostic steps
pidd_list_environment_variables () {
pidd_step "List environment variables"
env | sort
}
pidd_list_working_directory () {
pidd_step "List working directory"
pidd_list_working_directory__path="$(realpath .)"
@ -590,10 +614,18 @@ pidd_install_python_modules () {
pidd_install_python_modules__root="$(mktemp --directory)" || exit
echo "${pidd_install_python_modules__root}"
for pidd_install_python_modules__repository \
in "${PIDD_GIT_CHILD}" "${PIDD_GIT_PARENT}" ; do
pidd_split
in "${PIDD_GIT_MAIN}" "${PIDD_GIT_ROOT}" ; do
case "${pidd_install_python_modules__repository}" in
http*) pidd_install_python_modules__url="\
${pidd_install_python_modules__repository}" ;;
/*) pidd_install_python_modules__url="\
${PIDD_PROJECT_ROOT}${pidd_install_python_modules__repository}" ;;
*) pidd_install_python_modules__url="\
${PIDD_PROJECT_ROOT}/${PIDD_PROJECT_PATH}/${pidd_install_python_modules__repository}" ;;
esac
pidd_install_python_modules__url="\
${PIDD_PROJECTS_URL}/${pidd_install_python_modules__repository}"
${PIDD_PROJECT_ROOT}/${PIDD_PROJECT_PATH}/${pidd_install_python_modules__repository}"
pidd_split
echo "\
${pidd_install_python_modules__url}
"
@ -622,8 +654,11 @@ ${PIDD_PYTHON_PACKAGES}"
pidd_write_python_module () {
pidd_step "Write Python module"
for pidd_write_python_module__variable \
in OPEN DOWN VERT SPLT __UP SHUT OS_ID OS_VERSION ; do
for pidd_write_python_module__variable in \
OPEN DOWN VERT SPLT __UP SHUT \
OS_ID OS_VERSION \
PROJECT_ROOT PROJECT_PATH PROJECT_NAME \
; do
pidd_write_python_module__value="\
$(pidd_echo "PIDD_${pidd_write_python_module__variable}")"
pidd_write_python_module__text="${pidd_write_python_module__text}\
@ -637,11 +672,12 @@ PIDD_STEP = $((PIDD_STEP+1))
pidd_switch_to_python () {
pidd_step "Switch to Python"
pidd_switch_to_python__name="$(basename "${PIDD_GIT_MAIN}")"
echo "\
${PIDD_PATH}
${PIDD_PYTHON_PACKAGES}/${PIDD_GIT_CHILD}"
"${PIDD_PYTHON_ALIAS}" -m "${PIDD_GIT_CHILD}" "${@}"
${PIDD_PYTHON_PACKAGES}/${pidd_switch_to_python__name}"
"${PIDD_PYTHON_ALIAS}" -m "${pidd_switch_to_python__name}" "${@}"
}
# functions
@ -658,6 +694,7 @@ pidd_cat () {
pidd_echo () {
if [ -n "${1}" ] ; then
for pidd_echo__name in "${@}" ; do
pidd_echo__text=""
eval "pidd_echo__text=\"\${${pidd_echo__name}}\""
echo "${pidd_echo__name} = \"${pidd_echo__text}\""
done

View file

@ -43,8 +43,8 @@ from various contexts of CA, CI and OCI / OS.
|:----------------|:------------------------|:--------------------------------|
| PIDD_CA_n | Numbered CA certificate | |
| PIDD_DNS | Space separated servers | 9.9.9.9 |
| PIDD_GIT_CHILD | Child Git repository | pidd |
| PIDD_GIT_PARENT | Parent Git repository | rwx |
| PIDD_GIT_MAIN | Main Git repository | pidd |
| PIDD_GIT_ROOT | Root Git repository | rwx |
| PIDD_SSH_HOSTS | domain.tld ssh-type pub | |
| PIDD_SSH_KEY | SSH private key | |
| PIDD_URL_ALMA | Alma repository URL | https://repo.almalinux.org |
@ -93,7 +93,5 @@ from various contexts of CA, CI and OCI / OS.
### .sh
* handle git cloning credentials
* override repository and framework locations
* reduce single conditions with &&
* support opensuse