]> Frank Brehm's Git Trees - pixelpark/create-terraform.git/commitdiff
More tweaking of yum/dnf.conf in postinstall-scripts/update-all-packages
authorFrank Brehm <frank.brehm@pixelpark.com>
Thu, 26 Sep 2024 16:16:00 +0000 (18:16 +0200)
committerFrank Brehm <frank.brehm@pixelpark.com>
Thu, 26 Sep 2024 16:16:00 +0000 (18:16 +0200)
postinstall-scripts/update-all-packages

index 046eb2394415b70984a760a7cb2f5ffa7ebf06be..0508345d375f10d64d99b9df87b02c488697ab07 100755 (executable)
@@ -142,44 +142,65 @@ do_el_upgrade() {
 
     empty_line
     info "Performing dist upgrade with ${GREEN}${tool}${NORMAL} ..."
-    info "Tweaking '/etc/yum.conf' ..."
 
     local found_ip_resolv="n"
     local awk_script=''
     local cleaned_old_repo="n"
     local logfile=
+    local cmd=
 
     empty_oracle_repo_files || true
 
-    if grep '^ip_resolve *= *4' /etc/yum.conf >/dev/null ; then
-        debug "Usage of IPv4 already configured"
-    else
-
-        if grep '^ip_resolve[ =]' /etc/yum.conf >/dev/null ; then
-            found_ip_resolv="y"
+    for YUM_CONF in '/etc/yum.conf' '/etc/dnf/dnf.conf' ; do
+        if [[ ! -f "${YUM_CONF}" ]] ; then
+            debug "File '${CYAN}${YUM_CONF}${NORMAL}' does not exists."
+            continue
+        fi
+        if [[ -L "${YUM_CONF}" ]] ; then
+            debug "File '${CYAN}${YUM_CONF}${NORMAL}' is a symlink."
+            continue
         fi
-        if [[ "${found_ip_resolv}" == "y" ]] ; then
-            awk_script='/^[main]/ {ok=1}
+
+        empty_line
+        info "Tweaking '${CYAN}${YUM_CONF}${NORMAL}' ..."
+
+        if grep '^ip_resolve *= *4' "${YUM_CONF}" >/dev/null ; then
+            debug "Usage of IPv4 already configured"
+        else
+
+            if grep '^ip_resolve[ =]' "${YUM_CONF}" >/dev/null ; then
+                found_ip_resolv="y"
+            fi
+
+            if [[ "${found_ip_resolv}" == "y" ]] ; then
+                awk_script='/^[main]/ {ok=1}
 ok==1 && /^ip_resolve/ {print "ip_resolve=4"; ok=0; next}
 {print $0} '
-        else
-            awk_script='/^[main]/ {ok=1}
+            else
+                awk_script='/^[main]/ {ok=1}
 ok==1 {print "ip_resolve=4"; ok=0}
 {print $0} '
+            fi
+            CP -p "${YUM_CONF}" "${YUM_CONF}.$( date -r ${YUM_CONF} +'%Y-%m-%d_%H:%M:%S').bak"
+            cmd="awk \"${awk_script}\" \"${YUM_CONF}\" > \"${YUM_CONF}.new\""
+            exec_cmd ${cmd}
+            if [[ -s "${YUM_CONF}.new" ]] ; then
+                MV "${YUM_CONF}.new" "${YUM_CONF}"
+            else
+                RM -f "${YUM_CONF}.new"
+            fi
         fi
-        CP -p /etc/yum.conf /etc/yum.conf.$( date -r /etc/yum.conf +'%Y-%m-%d_%H:%M:%S').bak
-        if [[ "${SIMULATE}" == "y" ]] ; then
-            info "Simulating: awk \"${awk_script}\" /etc/yum.conf >/etc/yum.conf.new"
-        else
-            debug "Executing: awk \"${awk_script}\" /etc/yum.conf >/etc/yum.conf.new"
-            awk "${awk_script}" /etc/yum.conf >/etc/yum.conf.new
-        fi
-        if [[ -s /etc/yum.conf.new ]] ; then
-            MV /etc/yum.conf.new /etc/yum.conf
-        else
-            RM -f /etc/yum.conf.new
+
+        cmd="sed -i -e '/tsflags=/d' \"${YUM_CONF}\""
+        exec_cmd ${cmd}
+
+        if [[ "${VERBOSE}" == "y" ]] ; then
+            empty_line
+            info "Content of '${CYAN}${YUM_CONF}${NORMAL}':"
+            cat "${YUM_CONF}"
         fi
-    fi
+
+    done
 
     echo
     info "Cleaning ..."