martinzink commented on code in PR #1681:
URL: https://github.com/apache/nifi-minifi-cpp/pull/1681#discussion_r1414206664


##########
bootstrap/cli.py:
##########
@@ -0,0 +1,141 @@
+import os
+
+import inquirer
+
+from minifi_option import MinifiOptions
+from system_dependency import install_required
+
+
+def install_dependencies(minifi_options: MinifiOptions):
+    install_required(minifi_options)
+
+
+def run_cmake(minifi_options: MinifiOptions):
+    if not os.path.exists(minifi_options.build_dir):
+        os.mkdir(minifi_options.build_dir)
+    os.chdir(minifi_options.build_dir)
+    cmake_cmd = f"cmake -G Ninja {minifi_options.create_cmake_options_str()} 
{minifi_options.source_dir}"
+    print(f"Running {cmake_cmd}")
+    os.system(cmake_cmd)
+
+
+def do_build(minifi_options: MinifiOptions):
+    os.chdir(minifi_options.build_dir)
+    os.system("cmake --build .")
+
+
+def do_one_click_build(minifi_options: MinifiOptions) -> bool:
+    install_dependencies(minifi_options)
+    run_cmake(minifi_options)
+    do_build(minifi_options)
+    return True
+
+
+def modify_bool_options(minifi_options: MinifiOptions):
+    options = [inquirer.Checkbox(
+        "MiNiFi C++ options",
+        message="Select MiNiFi C++ components",
+        choices=[name for name, obj in minifi_options.bool_options.items()],
+        default=[name for name, obj in minifi_options.bool_options.items() if 
obj.value == "ON"]
+    )]
+
+    selection_result = inquirer.prompt(options)
+    for minifi_option in minifi_options.bool_options.values():
+        if minifi_option.name in selection_result:
+            minifi_option.value = "ON"
+        else:
+            minifi_option.value = "OFF"
+
+
+def main_menu(minifi_options: MinifiOptions):
+    done = False
+    while not done:
+        main_menu_options = {
+            f"Build dir: {minifi_options.build_dir}": build_dir_menu,
+            f"Build type: {minifi_options.build_type.value}": build_type_menu,
+            "Build options": bool_menu,
+            "One click build": do_one_click_build,

Review Comment:
   I've added a feature so it only installs if there is some dependency 
missing, so it wont be annoying, would that suffice?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to