You've already forked mariadb-columnstore-engine
							
							
				mirror of
				https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
				synced 2025-10-31 18:30:33 +03:00 
			
		
		
		
	* configcpp refactored * logging and datatypes refactored * more dataconvert * chore(build): massive removals, auto add files to debian install file * chore(codemanagement): nodeps headers, potentioal library * chore(build): configure before autobake * chore(build): use custom cmake commands for components, mariadb-plugin-columnstore.install generated * chore(build): install deps as separate step for build-packages * more deps * check debian/mariadb-plugin-columnstore.install automatically * chore(build): add option for multibracnh compilation * Fix warning
		
			
				
	
	
		
			82 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python3
 | |
| 
 | |
| import argparse
 | |
| import fnmatch
 | |
| import sys
 | |
| 
 | |
| def read_patterns(filename):
 | |
|     with open(filename, 'r') as f:
 | |
|         return [line.strip() for line in f if line.strip()]
 | |
| 
 | |
| def read_paths_with_comments(filename):
 | |
|     paths = []
 | |
|     with open(filename, 'r') as f:
 | |
|         for line in f:
 | |
|             raw = line.rstrip('\n')
 | |
|             if not raw.strip():
 | |
|                 continue
 | |
|             # Split into path and comment
 | |
|             if '#' in raw:
 | |
|                 path, comment = raw.split('#', 1)
 | |
|                 path = path.strip()
 | |
|                 comment = comment.strip()
 | |
|             else:
 | |
|                 path = raw.strip()
 | |
|                 comment = ''
 | |
|             if path:
 | |
|                 paths.append((raw, path, comment))
 | |
|     return paths
 | |
| 
 | |
| def print_red(msg):
 | |
|     if sys.stdout.isatty():
 | |
|         print("\033[31m" + msg + "\033[0m")
 | |
|     else:
 | |
|         print(msg)
 | |
| 
 | |
| def main():
 | |
|     parser = argparse.ArgumentParser(description="Compare wildcard patterns to file paths.")
 | |
|     parser.add_argument('patterns_file', help='File with wildcard patterns (one per line)')
 | |
|     parser.add_argument('paths_file', help='File with file paths (one per line)')
 | |
|     args = parser.parse_args()
 | |
| 
 | |
|     patterns = read_patterns(args.patterns_file)
 | |
|     paths_with_comments = read_paths_with_comments(args.paths_file)
 | |
| 
 | |
|     # Track which paths are matched (by index)
 | |
|     path_matched = [False] * len(paths_with_comments)
 | |
| 
 | |
|     # Collect patterns that don't match any path
 | |
|     unmatched_patterns = []
 | |
|     for pattern in patterns:
 | |
|         matched = False
 | |
|         for i, (raw, path, comment) in enumerate(paths_with_comments):
 | |
|             if fnmatch.fnmatch(path, pattern):
 | |
|                 matched = True
 | |
|                 path_matched[i] = True
 | |
|         if not matched:
 | |
|             unmatched_patterns.append(pattern)
 | |
| 
 | |
|     if unmatched_patterns:
 | |
|         print_red("The files declared in debian/mariadb-plugin-columnstore.install "
 | |
|                   " are not added to CMakeLists via columnstore_* statements see cmake/ColumnstoreLibrary.cmake")
 | |
|         for pattern in unmatched_patterns:
 | |
|             print(f"- {pattern}")
 | |
| 
 | |
|     # Collect paths that weren't matched by any pattern
 | |
|     unmatched_paths = []
 | |
|     for (raw, path, comment), matched in zip(paths_with_comments, path_matched):
 | |
|         if not matched:
 | |
|             unmatched_paths.append((path, comment))
 | |
| 
 | |
|     if unmatched_paths:
 | |
|         print_red("The files added via columnstore_* statements from cmake/ColumnstoreLibrary.cmake "
 | |
|                   "are missing in debian/mariadb-plugin-columnstore.install file")
 | |
|         for path, comment in unmatched_paths:
 | |
|             if comment:
 | |
|                 print(f"- {path} {comment}")
 | |
|             else:
 | |
|                 print(f"- {path}")
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     main()
 |