mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-26 14:54:55 +00:00
47 lines
1.4 KiB
C++
47 lines
1.4 KiB
C++
#include <iostream>
|
|
#include <string>
|
|
|
|
struct ProjectSpec {
|
|
std::string projectName{"starter-app"};
|
|
std::string runtime{"web"};
|
|
std::string packageId{"codegen_studio"};
|
|
std::string tone{"adaptive"};
|
|
};
|
|
|
|
static ProjectSpec parseSpec(int argc, char** argv) {
|
|
ProjectSpec spec;
|
|
if (argc > 1 && argv[1] != nullptr) {
|
|
spec.projectName = argv[1];
|
|
}
|
|
if (argc > 2 && argv[2] != nullptr) {
|
|
spec.runtime = argv[2];
|
|
}
|
|
if (argc > 3 && argv[3] != nullptr) {
|
|
spec.packageId = argv[3];
|
|
}
|
|
if (argc > 4 && argv[4] != nullptr) {
|
|
spec.tone = argv[4];
|
|
}
|
|
return spec;
|
|
}
|
|
|
|
static void printSpec(const ProjectSpec& spec) {
|
|
std::cout << "Codegen Studio CLI" << std::endl;
|
|
std::cout << "Project: " << spec.projectName << std::endl;
|
|
std::cout << "Runtime: " << spec.runtime << std::endl;
|
|
std::cout << "Package: " << spec.packageId << std::endl;
|
|
std::cout << "Tone: " << spec.tone << std::endl;
|
|
std::cout << "Zip manifest: " << spec.projectName << "/spec.json" << std::endl;
|
|
std::cout << "Zip includes Next.js + CLI stubs." << std::endl;
|
|
}
|
|
|
|
int main(int argc, char** argv) {
|
|
const auto spec = parseSpec(argc, argv);
|
|
printSpec(spec);
|
|
std::cout << "- " << spec.projectName << "/README.md" << std::endl;
|
|
std::cout << "- " << spec.projectName << "/package.json" << std::endl;
|
|
std::cout << "- " << spec.projectName << "/src/app/page.tsx" << std::endl;
|
|
std::cout << "- " << spec.projectName << "/cli/main.cpp" << std::endl;
|
|
return 0;
|
|
}
|