From ed690b4376e6f0d84c51ec362ce79e03b722b0b8 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Mon, 15 May 2023 10:46:50 -0700 Subject: [PATCH] ... --- prebuild | Bin 0 -> 56568 bytes prebuild.cpp | 47 +++++++++++++++++++++++++++++++++-------------- prebuild.sh | 3 --- preprocess.py | 8 +++++--- 4 files changed, 38 insertions(+), 20 deletions(-) create mode 100755 prebuild delete mode 100644 prebuild.sh diff --git a/prebuild b/prebuild new file mode 100755 index 0000000000000000000000000000000000000000..9082cf955f450457583679c6e17f675316851a3f GIT binary patch literal 56568 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 #include #include -#include -#include +#include +#include #include std::string to_hex_string(const std::string& input) { @@ -20,16 +20,34 @@ std::string to_hex_string(const std::string& input) { std::map generate_python_sources() { std::map sources; - - for (const auto& file : std::filesystem::directory_iterator("python")) { - if (file.path().extension() == ".py") { - std::string key = file.path().stem().string(); - std::ifstream f(file.path()); - std::string content((std::istreambuf_iterator(f)), std::istreambuf_iterator()); - sources[key] = to_hex_string(content); + DIR *dir; + struct dirent *ent; + if ((dir = opendir ("python")) != NULL) + { + while ((ent = readdir (dir)) != NULL) + { + std::string filename = ent->d_name; + size_t pos = filename.rfind(".py"); + if (pos != std::string::npos) + { + std::string key = filename.substr(0, filename.length() - 3); + std::string filepath = "python/" + filename; + FILE* file = fopen(filepath.c_str(), "r"); + if(file == NULL) exit(2); + std::string content; + char buffer[1024]; + while (fgets(buffer, sizeof(buffer), file) != NULL) + { + content += buffer; + } + fclose(file); + sources[key] = to_hex_string(content); + } } + closedir (dir); + }else{ + exit(1); } - return sources; } @@ -46,8 +64,8 @@ std::string generate_header(const std::map& sources) { header += "\n#include \n#include \n\nnamespace pkpy{\n"; header += " inline static std::map kPythonLibs = {\n"; - for (const auto& [key, value] : sources) { - header += " {\"" + key + "\", \"" + value + "\"},\n"; + for (auto it=sources.begin(); it!=sources.end(); ++it) { + header += " {\"" + it->first + "\", \"" + it->second + "\"},\n"; } header += " };\n"; @@ -59,7 +77,8 @@ std::string generate_header(const std::map& sources) { int main() { auto sources = generate_python_sources(); std::string header = generate_header(sources); - std::ofstream header_file("src/_generated.h"); - header_file << header; + FILE* f = fopen("src/_generated.h", "w"); + fprintf(f, "%s", header.c_str()); + fclose(f); return 0; } \ No newline at end of file diff --git a/prebuild.sh b/prebuild.sh deleted file mode 100644 index 327997bc..00000000 --- a/prebuild.sh +++ /dev/null @@ -1,3 +0,0 @@ -g++ -o prebuild --std=c++17 prebuild.cpp -./prebuild -rm prebuild \ No newline at end of file diff --git a/preprocess.py b/preprocess.py index d4fc1119..232d125e 100644 --- a/preprocess.py +++ b/preprocess.py @@ -8,9 +8,11 @@ def generate_python_sources(): key = file.split(".")[0] with open("python/" + file) as f: value = f.read() - value = value.encode('utf-8').hex(':') - value = '\\x' + value.replace(':', '\\x') - sources[key] = value + value = value.encode('utf-8').hex() + new_value = [] + for i in range(0, len(value), 2): + new_value.append("\\x" + value[i:i+2]) + sources[key] = "".join(new_value) timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")