diff options
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/zipper/build.sh | 1 | ||||
-rw-r--r-- | tools/zipper/test_file.txt | 1 | ||||
-rwxr-xr-x | tools/zipper/zipper | bin | 0 -> 49928 bytes | |||
-rw-r--r-- | tools/zipper/zipper.cpp | 65 |
4 files changed, 67 insertions, 0 deletions
diff --git a/tools/zipper/build.sh b/tools/zipper/build.sh new file mode 100755 index 0000000..4c4b337 --- /dev/null +++ b/tools/zipper/build.sh @@ -0,0 +1 @@ +g++ -o zipper zipper.cpp diff --git a/tools/zipper/test_file.txt b/tools/zipper/test_file.txt new file mode 100644 index 0000000..980a0d5 --- /dev/null +++ b/tools/zipper/test_file.txt @@ -0,0 +1 @@ +Hello World! diff --git a/tools/zipper/zipper b/tools/zipper/zipper Binary files differnew file mode 100755 index 0000000..bbbba43 --- /dev/null +++ b/tools/zipper/zipper diff --git a/tools/zipper/zipper.cpp b/tools/zipper/zipper.cpp index 1b54c40..08ae9cf 100644 --- a/tools/zipper/zipper.cpp +++ b/tools/zipper/zipper.cpp @@ -1,6 +1,71 @@ #include <string> #include <vector> +#include <iostream> +#include <fstream> +#include <stdio.h> +#include <stdlib.h> +#include <dirent.h> + +std::vector<std::string> directoryFiles; + +const std::vector<std::string> files = { + "2d/rigidbody/rigidbody_1/main.cpp" +}; int main() { + struct dirent *entry = nullptr; + DIR *dp = nullptr; + + dp = opendir("shared_cpp"); + if (dp != nullptr) { + while ((entry = readdir(dp))) { + std::string sharedName = std::string("shared_cpp/") + entry->d_name; + directoryFiles.push_back(sharedName); + } + } + + closedir(dp); + + for (auto file : files) { + printf("Creating zip file for: %s\n", file.c_str()); + std::string zipCommand = ""; + + std::ifstream cppFile; + cppFile.open(file); + + if (!cppFile.is_open()) { + printf("Unable to create zip file for: %s\n", file.c_str()); + continue; + } + + std::string line; + std::ifstream outMainCpp("tmp.main.cpp"); + std::string buffer; + while (getline(cppFile, line)) { + if (line.rfind("#include ", 0) == 0) { + int sharedCppFind = line.find("shared_cpp"); + if (sharedCppFind != std::string::npos) { + line = line.substr(sharedCppFind + strlen("shared_cpp/")); + } + } + + buffer += line; + buffer += "\n"; + } + + outMainCpp << buffer; + outMainCpp.close(); + + std::string zipCommand = "zip "; + zipCommand += "tmp.main.cpp"; + + for (auto dirFile : directoryFiles) { + + } + + system(zipCommand.c_str()); + } + + //system("zip archive.zip test_file.txt"); return 0; } |