From 30b8b07d5eaa5cc704ad915dfada3a8ce33ba615 Mon Sep 17 00:00:00 2001 From: Bill Date: Tue, 17 Feb 2026 21:52:36 -0700 Subject: [PATCH] Step 649: package script generator --- editor/CMakeLists.txt | 9 +++++++++ editor/src/PackageScriptGenerator.h | 29 +++++++++++++++++++++++++++++ editor/tests/step649_test.cpp | 24 ++++++++++++++++++++++++ progress.md | 24 ++++++++++++++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 editor/src/PackageScriptGenerator.h create mode 100644 editor/tests/step649_test.cpp diff --git a/editor/CMakeLists.txt b/editor/CMakeLists.txt index 6827006..8f7d718 100644 --- a/editor/CMakeLists.txt +++ b/editor/CMakeLists.txt @@ -4720,4 +4720,13 @@ target_link_libraries(step648_test PRIVATE tree_sitter_javascript tree_sitter_typescript tree_sitter_java tree_sitter_rust tree_sitter_go) +add_executable(step649_test tests/step649_test.cpp) +target_include_directories(step649_test PRIVATE src) +target_link_libraries(step649_test PRIVATE + nlohmann_json::nlohmann_json + unofficial::tree-sitter::tree-sitter + tree_sitter_python tree_sitter_cpp tree_sitter_elisp + tree_sitter_javascript tree_sitter_typescript + tree_sitter_java tree_sitter_rust tree_sitter_go) + # Step 12: Dear ImGui shell scaffolding created (main.cpp exists but not built due to dependencies) diff --git a/editor/src/PackageScriptGenerator.h b/editor/src/PackageScriptGenerator.h new file mode 100644 index 0000000..a6a5a2b --- /dev/null +++ b/editor/src/PackageScriptGenerator.h @@ -0,0 +1,29 @@ +#pragma once +// Step 649: AppImage/.deb package generator + +#include + +struct PackageScripts { + bool success = false; + std::string appImageScript; + std::string debianControl; +}; + +class PackageScriptGenerator { +public: + static PackageScripts generate(const std::string& appName, + const std::string& version) { + PackageScripts out; + if (appName.empty() || version.empty()) return out; + out.success = true; + out.appImageScript = "#!/usr/bin/env bash\n" + "set -euo pipefail\n" + "appimagetool AppDir " + appName + "-" + version + ".AppImage\n"; + out.debianControl = "Package: " + appName + "\n" + "Version: " + version + "\n" + "Architecture: amd64\n" + "Maintainer: Whetstone\n" + "Description: Whetstone editor package\n"; + return out; + } +}; diff --git a/editor/tests/step649_test.cpp b/editor/tests/step649_test.cpp new file mode 100644 index 0000000..d30878e --- /dev/null +++ b/editor/tests/step649_test.cpp @@ -0,0 +1,24 @@ +// Step 649: AppImage/.deb package generator (12 tests) + +#include "PackageScriptGenerator.h" +#include +static int p=0,f=0; +#define T(n) { std::cout<<" "<<#n<<"... "; } +#define P() { std::cout<<"PASS\n"; ++p; } +#define F(m) { std::cout<<"FAIL: "<