#include <filesystem>
#include <fstream>
#include <iostream>

int main(int argc, char* argv[]) {
  if (argc < 2) {
    std::cout << "No Doxyfile provided." << std::endl;
    exit(1);
  }
  std::string doxyfile_path{argv[1]};
  std::string out_path{doxyfile_path.substr(0, doxyfile_path.find_last_of("/\\") + 1)};
  std::cout << "Doxyfile path: " << doxyfile_path << std::endl;
  std::cout << "Output path: " << out_path << std::endl;
  // Create an html directory if it doesn't exist
  if (!std::filesystem::exists(out_path + "html")) {
    std::filesystem::create_directory(out_path + "html");
  }
  // Generate a simple HTML file as documentation
  std::ofstream file(out_path + "html/index.html");
  file << "<!DOCTYPE html>\n"
          "<html>\n"
          "<head>\n"
          "    <title>Self-Documenting Code</title>\n"
          "</head>\n"
          "<body>\n"
          "    <h1>Self-Documenting Code Example</h1>\n"
          "    <p>This C++ program generates its own documentation.</p>\n"
          "    <p>Doxyfile used: "
       << doxyfile_path
       << "</p>\n"
          "    <p>Output directory: "
       << out_path
       << "</p>\n"
          "    <p>Generated by a custom executable mimicking Doxygen 1.14.0.</p>\n"
          "</body>\n"
          "</html>\n";
  file.close();
  std::cout << "Self-documenting code generated: html/index.html" << std::endl;
  return 0;
}
