Fixing updating submodule

This commit is contained in:
Igor Pecovnik 2025-11-18 09:43:52 +01:00 committed by Igor
parent 39d6bc8148
commit b1ee4a5252

View File

@ -276,20 +276,29 @@ function fetch_from_repo() {
else
display_alert "Updating submodules" "" "ext"
# FML: http://stackoverflow.com/a/17692710
for i in $(git config -f .gitmodules --get-regexp path | awk '{ print $2 }'); do
while read -r key path; do
# key is like: submodule.libfoo.path
# extract "libfoo" from "submodule.libfoo.path"
local name=${key#submodule.} # -> libfoo.path
name=${name%.path} # -> libfoo
cd "${git_work_dir}" || exit
local surl sref
surl=$(git config -f .gitmodules --get "submodule.$i.url")
sref=$(git config -f .gitmodules --get "submodule.$i.branch" || true)
surl=$(git config -f .gitmodules --get "submodule.${name}.url")
sref=$(git config -f .gitmodules --get "submodule.${name}.branch" || true)
if [[ -n $sref ]]; then
sref="branch:$sref"
else
sref="head"
fi
display_alert "Updating submodule" "$i - $surl - $sref" "git"
git_ensure_safe_directory "$workdir/$i"
fetch_from_repo "$surl" "$workdir/$i" "$sref"
done
display_alert "Updating submodule" "${name} - ${surl} - ${sref}" "git"
git_ensure_safe_directory "$workdir/$path"
fetch_from_repo "$surl" "$workdir/$path" "$sref"
done < <(git config -f .gitmodules --get-regexp 'submodule\..*\.path')
fi
fi
else