modbuild: issue with cleaning up modulefiles in overlays fixed

This commit is contained in:
2022-07-04 19:07:24 +02:00
parent dca348c4e3
commit cd1788704d
2 changed files with 34 additions and 2 deletions
+29
View File
@@ -967,6 +967,7 @@ pbuild::make_all() {
fi
install_modulefile
install_release_file
cleanup_modulefiles
cleanup_build
cleanup_src
std::info \
@@ -999,6 +1000,33 @@ pbuild::make_all() {
install -m 0644 "${src}" "${modulefile_name}"
}
cleanup_modulefiles(){
local ol=''
for ol in "${Overlays[@]}"; do
local i
for ((i=0; i<${#mod_overlays}; i++ )); do
[[ "${ol}" == "{mod_overlays[i]}" ]] && continue 2
done
[[ "${ol}" == "${ol_name}" ]] && continue
local mod_root="${OverlayInfo[${ol}:mod_root]}"
local dir="${modulefile_dir/${ol_mod_root}/${mod_root}}"
local fname="${dir}/${module_version}"
if [[ -e "${fname}" ]]; then
std::info "%s "\
"${module_name}/${module_version}:" \
"removing modulefile from overlay '${ol}' ..."
rm "${fname}"
fi
fname="${dir}/.release-${module_version}"
if [[ -e "${fname}" ]]; then
std::info \
"%s " \
"${module_name}/${module_version}:" \
"removing release file from overlay '${ol}' ..."
rm "${fname}"
fi
done
}
install_release_file() {
local -r release_file="${modulefile_dir}/.release-${module_version}"
@@ -1208,6 +1236,7 @@ pbuild::make_all() {
install_modulefile
fi
install_release_file
cleanup_modulefiles
return $?
fi
if [[ "${module_release}" == 'deprecated' ]]; then
+5 -2
View File
@@ -578,10 +578,14 @@ build_modules_yaml(){
else
ol_name="${opt_overlay}"
fi
mod_overlays[${ol_name}]=1
if [[ ! -v OverlayInfo[${ol_name}:inst_root] ]]; then
std::die 3 "Overlay is not defined -- ${ol_name}"
fi
mod_overlays[$i]="${ol_name}"
done
for (( i=0; i<n_variants; i++)); do
ol_name="${mod_overlays[$i]}"
yaml_get_relstage relstage "${fname}" "${v}" $i
yaml_get_dependencies deps "${fname}" "${v}" $i
ol_inst_root="${OverlayInfo[${ol_name}:inst_root]}"
@@ -616,7 +620,6 @@ build_modules_yaml(){
"${relstage}"
fi
done
cleanup_modulefiles
done
}