From 8cb6a1893e1135ef4332ef78657a93ce7b6acd72 Mon Sep 17 00:00:00 2001 From: William Roberts Date: Fri, 8 Apr 2016 22:06:19 -0700 Subject: [PATCH] fs_config: move sort to be consistent with other sort Test: Checked diff and hash of before and after output files, same. Test: Tested build for basic boot and functionality. Change-Id: If7806427e3a2a9ddb7a2c9aa14e1e4f9bf696acf Signed-off-by: William Roberts --- tools/fs_config/fs_config_generator.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/tools/fs_config/fs_config_generator.py b/tools/fs_config/fs_config_generator.py index 482c2bca8..6a16feacb 100755 --- a/tools/fs_config/fs_config_generator.py +++ b/tools/fs_config/fs_config_generator.py @@ -183,8 +183,6 @@ def generate(files, dirs, aids): are_aids = len(aids) > 0 if are_aids: - # sort on value of (file_name, name, value, strvalue) - aids.sort(key=lambda x: x[2]) for a in aids: # use the preserved str value print FILE_COMMENT % a[0] @@ -272,7 +270,24 @@ def main(): for x in sys.argv[1:]: parse(x, files, dirs, aids, seen_paths, seen_aids) + # sort entries: + # * specified path before prefix match + # ** ie foo before f* + # * lexicographical less than before other + # ** ie boo before foo + # Given these paths: + # paths=['ac', 'a', 'acd', 'an', 'a*', 'aa', 'ac*'] + # The sort order would be: + # paths=['a', 'aa', 'ac', 'acd', 'an', 'ac*', 'a*'] + # Thus the fs_config tools will match on specified paths before attempting + # prefix, and match on the longest matching prefix. files.sort(key= lambda x: file_key(x[1])) + + # sort on value of (file_name, name, value, strvalue) + # This is only cosmetic so AIDS are arranged in ascending order + # within the generated file. + aids.sort(key=lambda x: x[2]) + generate(files, dirs, aids) if __name__ == '__main__':