add function registry_login

This commit is contained in:
2025-09-27 23:09:58 +02:00
parent 9f58763c9b
commit ae363ea982

View File

@@ -609,15 +609,38 @@ load_project_config() {
auto_subversion=$(grep "^auto_subversion=" "$config_file" | cut -d= -f2 || echo "no") auto_subversion=$(grep "^auto_subversion=" "$config_file" | cut -d= -f2 || echo "no")
} }
# Registry-URL auslesen # Gibt die URL einer Registry anhand des Config-Files zurück
get_registry_url() { get_registry_url() {
local reg_name=$1 local reg=$1
local reg_file="$REGISTRY_CONFIG_DIR/$reg_name/config-file" local reg_file="$REGISTRY_CONFIG_DIR/$reg.conf"
if [[ -f "$reg_file" ]]; then if [[ ! -f "$reg_file" ]]; then
grep '^url=' "$reg_file" | cut -d= -f2 echo ""
else return
echo "$reg_name"
fi fi
grep -E '^url=' "$reg_file" | cut -d'=' -f2-
}
# Führt docker login für eine Registry anhand des Config-Files aus
registry_login() {
local reg=$1
local reg_file="$REGISTRY_CONFIG_DIR/$reg.conf"
if [[ ! -f "$reg_file" ]]; then
echo "Registry-Konfiguration '$reg' fehlt!"
return 1
fi
local url username password
url=$(grep -E '^url=' "$reg_file" | cut -d'=' -f2-)
username=$(grep -E '^username=' "$reg_file" | cut -d'=' -f2-)
password=$(grep -E '^password=' "$reg_file" | cut -d'=' -f2-)
if [[ -z "$url" || -z "$username" || -z "$password" ]]; then
echo "Ungültige Registry-Konfig für $reg (url/username/password fehlt)!"
return 1
fi
echo "$password" | docker login "$url" -u "$username" --password-stdin
} }
# Image bauen # Image bauen
@@ -687,6 +710,15 @@ build_image() {
build_cmd+=(--load) build_cmd+=(--load)
fi fi
# Docker Login für jede Registry durchführen
for reg in $registry; do
if ! registry_login "$reg" >> "$logfile" 2>&1; then
echo "Login bei Registry '$reg' fehlgeschlagen!" >> "$logfile"
whiptail --msgbox "Login bei Registry '$reg' fehlgeschlagen! Build abgebrochen." 10 70
return
fi
done
# Log-Ausgabe # Log-Ausgabe
echo "${build_cmd[*]}" >> "$logfile" echo "${build_cmd[*]}" >> "$logfile"