From 83dce820d8ddac82963fc6c93339f8f42365be0f Mon Sep 17 00:00:00 2001 From: Rasmus Karlsson Date: Wed, 5 Sep 2018 01:26:17 +0200 Subject: [PATCH] Make directoriy ignoring more intelligent Replace path stringifications with as_posix function, which will make the generation reliable on both unix and windows systems --- resources/generate_resources.py | 21 ++++++++++++++------- resources/resources_autogenerated.qrc | 1 - 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/resources/generate_resources.py b/resources/generate_resources.py index 4b047219c..5239e64e8 100755 --- a/resources/generate_resources.py +++ b/resources/generate_resources.py @@ -5,10 +5,18 @@ from _generate_resources import * ignored_files = ['qt.conf', 'resources.qrc', 'resources_autogenerated.qrc', 'windows.rc', 'generate_resources.py', '_generate_resources.py'] + +# to ignore all files in a/b, add a/b to ignored_directories. +# this will ignore a/b/c/d.txt and a/b/xd.txt ignored_directories = ['__pycache__'] def isNotIgnored(file): - return str(file) not in ignored_files + # check if file exists in an ignored direcory + for ignored_directory in ignored_directories: + if file.parent.as_posix().startswith(ignored_directory): + return False + + return file.as_posix() not in ignored_files all_files = list(filter(isNotIgnored, \ filter(Path.is_file, Path('.').glob('**/*')))) @@ -18,15 +26,15 @@ image_files = list(filter(isNotIgnored, \ with open('./resources_autogenerated.qrc', 'w') as out: out.write(resources_header) for file in all_files: - out.write(f" {str(file)}\n") + out.write(f" {file.as_posix()}\n") out.write(resources_footer) with open('../src/autogenerated/ResourcesAutogen.cpp', 'w') as out: out.write(source_header) for file in sorted(image_files): - var_name = str(file.with_suffix("")).replace("/",".") + var_name = file.with_suffix("").as_posix().replace("/",".") out.write(f' this->{var_name}') - out.write(f' = QPixmap(":/{file}");\n') + out.write(f' = QPixmap(":/{file.as_posix()}");\n') out.write(source_footer) def writeHeader(out, name, element, indent): @@ -46,12 +54,11 @@ with open('../src/autogenerated/ResourcesAutogen.hpp', 'w') as out: elements = {} for file in sorted(image_files): elements_ref = elements - directories = str(file).split('/')[:-1] + directories = file.as_posix().split('/')[:-1] filename = file.stem for directory in directories: if directory not in elements_ref: - if directory not in ignored_directories: - elements_ref[directory] = {} + elements_ref[directory] = {} elements_ref = elements_ref[directory] elements_ref[filename] = filename diff --git a/resources/resources_autogenerated.qrc b/resources/resources_autogenerated.qrc index 65204d1b9..d764d54c1 100644 --- a/resources/resources_autogenerated.qrc +++ b/resources/resources_autogenerated.qrc @@ -62,6 +62,5 @@ twitch/subscriber.png twitch/turbo.png twitch/verified.png - __pycache__/_generate_resources.cpython-36.pyc \ No newline at end of file