From: Olliver Schinagl Date: Mon, 18 Mar 2024 12:28:11 +0000 (+0100) Subject: scripts/kernel_bump: Use the git index to find the needed config files X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=b62aafc99a6f00032c0486d96bb7b6cc0a77a84c;p=openwrt%2Fstaging%2Fxback.git scripts/kernel_bump: Use the git index to find the needed config files The current solution using `find` introduces a racecondition, where `find` and `git mv` get in each others way. While this could be fixed with more-utils sponge command (or even sort -u) to buffer the output of find. However, a much better approach, is to query the git index directly, which will not change, and is far more accurate. Signed-off-by: Olliver Schinagl --- diff --git a/scripts/kernel_bump.sh b/scripts/kernel_bump.sh index d9fc5287df..7ce3b6256f 100755 --- a/scripts/kernel_bump.sh +++ b/scripts/kernel_bump.sh @@ -137,9 +137,15 @@ bump_kernel() done fi - find "${_target_dir}" -iname "config-${source_version}" | while read -r _config; do - _path="${_config%%"/config-${source_version}"}" - git mv "${_config}" "${_path}/config-${target_version}" + for _config in $(git ls-files "${_target_dir}" | + sed -n "s|^\(.*config-${source_version}\).*|\1|p" | + sort -u); do + if [ ! -e "${_config}" ]; then + continue + fi + + _subtarget="${_config%%"/config-${source_version}"}" + git mv "${_config}" "${_subtarget}/config-${target_version}" done git commit \