summaryrefslogtreecommitdiff
path: root/tools/zipper/zipper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/zipper/zipper.cpp')
-rw-r--r--tools/zipper/zipper.cpp65
1 files changed, 65 insertions, 0 deletions
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;
}