scripts/kernel_bump: Allow for migrating only configuration files

In some cases, we want to only migrate configuration files, e.g. if the
kernel was bumped already. Lets add a flag for this case to offer
flexibility. By default we will migrate configuration flags as before.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
This commit is contained in:
Olliver Schinagl 2024-03-18 13:10:31 +01:00 committed by Robert Marko
parent 9f0cc3eb11
commit 9e6c4392f8
1 changed files with 21 additions and 15 deletions

View File

@ -54,6 +54,7 @@ usage()
{ {
echo "Usage: ${0}" echo "Usage: ${0}"
echo 'Helper script to bump the target kernel version, whilst keeping history.' echo 'Helper script to bump the target kernel version, whilst keeping history.'
echo ' -c Migrate config files (e.g. subtargets) only.'
echo " -p Optional Platform name (e.g. 'ath79' [PLATFORM_NAME]" echo " -p Optional Platform name (e.g. 'ath79' [PLATFORM_NAME]"
echo " -s Source version of kernel (e.g. 'v6.1' [SOURCE_VERSION])" echo " -s Source version of kernel (e.g. 'v6.1' [SOURCE_VERSION])"
echo " -t Target version of kernel (e.g. 'v6.6' [TARGET_VERSION]')" echo " -t Target version of kernel (e.g. 'v6.6' [TARGET_VERSION]')"
@ -113,22 +114,24 @@ bump_kernel()
git switch --force-create '__openwrt_kernel_files_mover' git switch --force-create '__openwrt_kernel_files_mover'
for _path in "${_target_dir}/"*; do if [ "${config_only:-false}" != 'true' ]; then
if [ ! -s "${_path}" ] || \ for _path in "${_target_dir}/"*; do
[ "${_path}" = "${_path%%"-${source_version}"}" ]; then if [ ! -e "${_path}" ] || \
continue [ "${_path}" = "${_path%%"-${source_version}"}" ]; then
fi continue
fi
_target_path="${_path%%"-${source_version}"}-${target_version}" _target_path="${_path%%"-${source_version}"}-${target_version}"
if [ -s "${_target_path}" ]; then if [ -e "${_target_path}" ]; then
e_err "Target '${_target_path}' already exists!" e_err "Target '${_target_path}' already exists!"
exit 1 exit 1
fi fi
git mv \ git mv \
"${_path}" \ "${_path}" \
"${_target_path}" "${_target_path}"
done done
fi
find "${_target_dir}" -iname "config-${source_version}" | while read -r _config; do find "${_target_dir}" -iname "config-${source_version}" | while read -r _config; do
_path="${_config%%"/config-${source_version}"}" _path="${_config%%"/config-${source_version}"}"
@ -182,8 +185,11 @@ check_requirements()
main() main()
{ {
while getopts 'hp:s:t:' _options; do while getopts 'chp:s:t:' _options; do
case "${_options}" in case "${_options}" in
'c')
config_only='true'
;;
'h') 'h')
usage usage
exit 0 exit 0