
2016-10-17 5:15 GMT+09:00 Tom Rini trini@konsulko.com:
On Mon, Oct 17, 2016 at 02:17:22AM +0900, Masahiro Yamada wrote:
Supporting shell-style wildcards for the --defconfigs option will be useful to run the moveconfig tool against a specific platform. For example, "uniphier*" in the file passed by --defconfigs option will be expanded to defconfig files that start with "uniphier". This is easier than listing out all the UniPhier defconfig files.
Signed-off-by: Masahiro Yamada yamada.masahiro@socionext.com
tools/moveconfig.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/tools/moveconfig.py b/tools/moveconfig.py index 87e2bb2..67cf5f0 100755 --- a/tools/moveconfig.py +++ b/tools/moveconfig.py @@ -127,7 +127,8 @@ Available options standard commit message is used which may need to be edited.
-d, --defconfigs
- Specify a file containing a list of defconfigs to move
Specify a file containing a list of defconfigs to move. The defconfig
files can be given with shell-style wildcards.
-n, --dry-run Perform a trial run that does not make any changes. It is useful to
@@ -180,6 +181,7 @@ import copy import difflib import filecmp import fnmatch +import glob import multiprocessing import optparse import os @@ -284,6 +286,17 @@ def get_make_cmd(): sys.exit('GNU Make not found') return ret[0].rstrip()
+def get_matched_defconfigs(defconfigs_file):
- """Get all the defconfig files that match the patterns in a file."""
- # use a set rather than a list in order to avoid double-counting
- defconfigs = set()
- for line in open(defconfigs_file):
line = os.path.join('configs', line.strip())
defconfigs |= set(glob.glob(line))
defconfigs |= set(glob.glob(line + '_defconfig'))
- return [ defconfig[len('configs') + 1:] for defconfig in defconfigs ]
def get_all_defconfigs(): """Get all the defconfig files under the configs/ directory.""" defconfigs = [] @@ -1204,13 +1217,7 @@ def move_config(configs, options): reference_src_dir = None
if options.defconfigs:
defconfigs = [line.strip() for line in open(options.defconfigs)]
for i, defconfig in enumerate(defconfigs):
if not defconfig.endswith('_defconfig'):
defconfigs[i] = defconfig + '_defconfig'
if not os.path.exists(os.path.join('configs', defconfigs[i])):
sys.exit('%s - defconfig does not exist. Stopping.' %
defconfigs[i])
defconfigs = get_matched_defconfigs(options.defconfigs)
I don't see error handling in the case of files (and now globs) not existing now, is this just handled by other parts of the code? Thanks!
No, it will be removed.
With this patch, each line will be a pattern that may match multiple defconfigs, or that may match nothing.
Is it important to check users' possible typos?