scripts/kernel_bump: Allow for migrating only configuration files
authorOlliver Schinagl <oliver@schinagl.nl>
Mon, 18 Mar 2024 12:10:31 +0000 (13:10 +0100)
committerRobert Marko <robimarko@gmail.com>
Fri, 12 Apr 2024 16:20:52 +0000 (18:20 +0200)
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>
scripts/kernel_bump.sh

index 69045946e96746c4c2e285315ac2ede38975f66a..069f53bb77646c61ec46621cfc2e061ea361fa93 100755 (executable)
@@ -54,6 +54,7 @@ usage()
 {
        echo "Usage: ${0}"
        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 "    -s  Source version of kernel (e.g. 'v6.1' [SOURCE_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'
 
-       for _path in "${_target_dir}/"*; do
-               if [ ! -s "${_path}" ] || \
-                  [ "${_path}" = "${_path%%"-${source_version}"}" ]; then
-                       continue
-               fi
-
-               _target_path="${_path%%"-${source_version}"}-${target_version}"
-               if [ -s "${_target_path}" ]; then
-                       e_err "Target '${_target_path}' already exists!"
-                       exit 1
-               fi
-
-               git mv \
-                       "${_path}" \
-                       "${_target_path}"
-       done
+       if [ "${config_only:-false}" != 'true' ]; then
+               for _path in "${_target_dir}/"*; do
+                       if [ ! -e "${_path}" ] || \
+                          [ "${_path}" = "${_path%%"-${source_version}"}" ]; then
+                               continue
+                       fi
+
+                       _target_path="${_path%%"-${source_version}"}-${target_version}"
+                       if [ -e "${_target_path}" ]; then
+                               e_err "Target '${_target_path}' already exists!"
+                               exit 1
+                       fi
+
+                       git mv \
+                               "${_path}" \
+                               "${_target_path}"
+               done
+       fi
 
        find "${_target_dir}" -iname "config-${source_version}" | while read -r _config; do
                _path="${_config%%"/config-${source_version}"}"
@@ -182,8 +185,11 @@ check_requirements()
 
 main()
 {
-       while getopts 'hp:s:t:' _options; do
+       while getopts 'chp:s:t:' _options; do
                case "${_options}" in
+               'c')
+                       config_only='true'
+                       ;;
                'h')
                        usage
                        exit 0