stamen

Static Menu Generator
git clone git://git.dimitrijedobrota.com/stamen.git
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING

commit 1e52edf6a7e7ee4e60c043bf4894ef3e9dce0076
parent c8ced3bdeaf1fe72949185cdc566b5fc69f11ddc
author Dimitrije Dobrota <mail@dimitrijedobrota.com>
date Sun, 12 Nov 2023 21:47:15 +0000

Add generator program to be used with many files

Diffstat:
M CMakeLists.txt | + -
M src/CMakeLists.txt | ++++
M src/generate.cpp | +++ ------------------

3 files changed, 8 insertions(+), 19 deletions(-)


diff --git a/ CMakeLists.txt b/ CMakeLists.txt

@@ -3,7 +3,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) project( Menu
VERSION 0.0.3
VERSION 0.0.4
DESCRIPTION "Experimentation with dinamic menus" LANGUAGES CXX )

diff --git a/ src/CMakeLists.txt b/ src/CMakeLists.txt

@@ -20,6 +20,10 @@ set_target_properties(demo PROPERTIES add_executable(generate generate.cpp)
target_link_libraries(generate
PRIVATE menu
)
target_include_directories(generate PUBLIC ../include )

diff --git a/ src/generate.cpp b/ src/generate.cpp

@@ -1,22 +1,7 @@
#include "json.hpp"
#include <format>
#include <fstream>
#include <iostream>
#include <string>
using json = nlohmann::json;
#include "menu.h"
int main(const int argc, const char *argv[]) {
for (int i = 1; i < argc; i++) {
const char *filename = argv[i];
for (const auto &menu : json::parse(std::fstream(filename))) {
std::cout << std::format("{}({}):\n", (std::string)menu["name"],
(std::string)menu["code"]);
for (const auto &item : menu["items"]) {
std::cout << std::format("* {}({})\n", (std::string)item["prompt"],
(std::string)item["callback"]);
}
}
}
for (int i = 1; i < argc; i++) Menu::read(argv[i]);
Menu::generate();
return 0; }