startup.tcl: extend the file search in vendor folders

The TCL configuration files are going to be dispatched in vendor
specific folders.
Old user configuration files will fail to find the new files to
include, so a set of fallback files reporting the deprecation
should replace the renamed files.

To prevent such enormous proliferation of fallback files, extend
the search of files in the vendor folders too.
For non-trivial renames, a dedicated table is added in the file
tcl/file_renaming.cfg to track old --> new file names.
The deprecated message is then part of the extended search.

E.g.:
old file names:
- path/to/a/certain/vendor_config_file
- path/to/a/certain/vendor-config_file
trigger search of:
- path/to/a/certain/vendor/config_file

and
- path/to/a/certain/config_file
trigger search of:
- path/to/a/certain/${vendor}/config_file
among a possible vendors list.

This is a temporarily feature that should be removed as soon as
possible to prevent clashing on files with the same name.
The names in tcl/file_renaming.cfg are for demonstration purpose
only and should be dropped when the first real entries are added.

Change-Id: If4793fef27dc570d5df4ff4d77a5e36004f394f6
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/8929
Tested-by: jenkins
This commit is contained in:
Antonio Borneo
2025-05-21 15:19:28 +02:00
parent b1c1dd1ec4
commit b06212b5a2
2 changed files with 64 additions and 1 deletions

19
tcl/file_renaming.cfg Normal file
View File

@@ -0,0 +1,19 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# This file is used to remap configuration files that has been
# renamed, except simple renames that are taken care automatically
# like:
# .../file.cfg ==> .../${vendor}/file.cfg
# .../vendor-file.cfg ==> .../vendor/file.cfg
# .../vendor_file.cfg ==> .../vendor/file.cfg
#
# The formatting below is a TCL dict, so pairs of key-value
# in a simple TCL list, using for each line
# old_name new_name
# including in each name one of the prefix folder between
# board, chip, cpld, cpu, fpga, interface, target, test, tools
set _file_renaming {
board/hello.cfg board/st/nucleo-u083rc.cfg
board/my-funny-pcb.cfg board/st_nucleo_f0.cfg
}