This is an automated email from the ASF dual-hosted git repository.

fgerlits pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git


The following commit(s) were added to refs/heads/main by this push:
     new abad71d59 MINIFICPP-2864 Handle paths containing spaces in the 
bootstrap script (#2215)
abad71d59 is described below

commit abad71d59935f6e8cef2c8722707b2f958f6c297
Author: Ferenc Gerlits <[email protected]>
AuthorDate: Thu Aug 6 15:42:38 2026 +0200

    MINIFICPP-2864 Handle paths containing spaces in the bootstrap script 
(#2215)
---
 bootstrap/cli.py             | 18 +++++++++---------
 bootstrap/cmake_parser.py    |  4 ++--
 bootstrap/package_manager.py |  4 ++--
 3 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/bootstrap/cli.py b/bootstrap/cli.py
index c01463042..c18b20882 100644
--- a/bootstrap/cli.py
+++ b/bootstrap/cli.py
@@ -43,7 +43,7 @@ def export_custom_conan_recipes(minifi_options: 
MinifiOptions, package_manager:
                 version = next(iter(data["versions"]))
 
                 print(f"Exporting the custom Conan recipe {root} with version 
{version}")
-                if not package_manager.run_cmd(f"conan export {root} 
--version={version} --user=minifi --channel=develop"):
+                if not package_manager.run_cmd(f'conan export "{root}" 
--version={version} --user=minifi --channel=develop'):
                     print(f"Exporting the custom Conan recipe {root} failed")
                     return False
     return True
@@ -81,8 +81,8 @@ def run_conan_install(minifi_options: MinifiOptions, 
package_manager: PackageMan
     if not package_manager.run_cmd(conan_remote_add_cmd):
         print("Adding the nifi-conan remote failed")
         return False
-    build_cmd = f"conan install {minifi_options.source_dir} 
--output-folder={minifi_options.build_dir} --build=missing {conan_options} " \
-                
f"--settings=build_type={minifi_options.build_type.value}{generator_setting}{compiler_settings}"
+    build_cmd = f'conan install "{minifi_options.source_dir}" 
--output-folder="{minifi_options.build_dir}" --build=missing {conan_options} ' \
+                
f'--settings=build_type={minifi_options.build_type.value}{generator_setting}{compiler_settings}'
     res = package_manager.run_cmd(build_cmd)
     print("Conan install was successful" if res else "Conan install was 
unsuccessful")
     return res
@@ -98,27 +98,27 @@ def _conan_build_env_prefix(minifi_options: MinifiOptions) 
-> str:
 def run_cmake(minifi_options: MinifiOptions, package_manager: PackageManager):
     if not os.path.exists(minifi_options.build_dir):
         os.mkdir(minifi_options.build_dir)
-    cmake_cmd = f"{_conan_build_env_prefix(minifi_options)}cmake 
{minifi_options.create_cmake_generator_str()} 
{minifi_options.create_cmake_use_conan_str()} " \
-                f"{minifi_options.create_cmake_options_str()} 
{minifi_options.source_dir} -B {minifi_options.build_dir}"
+    cmake_cmd = f'{_conan_build_env_prefix(minifi_options)}cmake 
{minifi_options.create_cmake_generator_str()} 
{minifi_options.create_cmake_use_conan_str()} ' \
+                f'{minifi_options.create_cmake_options_str()} 
"{minifi_options.source_dir}" -B "{minifi_options.build_dir}"'
     res = package_manager.run_cmd(cmake_cmd)
     print("CMake command run successfully" if res else "CMake command run 
unsuccessfully")
     return res
 
 
 def do_build(minifi_options: MinifiOptions, package_manager: PackageManager):
-    build_cmd = f"{_conan_build_env_prefix(minifi_options)}cmake --build 
{str(minifi_options.build_dir)} {minifi_options.create_cmake_build_flags_str()}"
+    build_cmd = f'{_conan_build_env_prefix(minifi_options)}cmake --build 
"{str(minifi_options.build_dir)}" 
{minifi_options.create_cmake_build_flags_str()}'
     res = package_manager.run_cmd(build_cmd)
     print("Build was successful" if res else "Build was unsuccessful")
     return res
 
 
 def do_package(minifi_options: MinifiOptions, package_manager: PackageManager):
-    build_cmd = f"{_conan_build_env_prefix(minifi_options)}cmake --build 
{str(minifi_options.build_dir)} --target package 
{minifi_options.create_cmake_build_flags_str()}"
+    build_cmd = f'{_conan_build_env_prefix(minifi_options)}cmake --build 
"{str(minifi_options.build_dir)}" --target package 
{minifi_options.create_cmake_build_flags_str()}'
     return package_manager.run_cmd(build_cmd)
 
 
 def do_docker_build(minifi_options: MinifiOptions, package_manager: 
PackageManager):
-    build_cmd = f"cmake --build {str(minifi_options.build_dir)} --target 
docker"
+    build_cmd = f'cmake --build "{str(minifi_options.build_dir)}" --target 
docker'
     return package_manager.run_cmd(build_cmd)
 
 
@@ -213,7 +213,7 @@ def build_dir_menu(minifi_options: MinifiOptions, 
_package_manager: PackageManag
     answers = inquirer.prompt(questions)
     if answers is None:
         return True
-    minifi_options.build_dir = answers["build_dir"]
+    minifi_options.build_dir = Path(answers["build_dir"]).resolve()
     minifi_options.save_option_state()
     return False
 
diff --git a/bootstrap/cmake_parser.py b/bootstrap/cmake_parser.py
index 4c9fae362..ff450d42d 100644
--- a/bootstrap/cmake_parser.py
+++ b/bootstrap/cmake_parser.py
@@ -45,10 +45,10 @@ def create_cmake_cache(cmake_path: str, cmake_options: str, 
directory: str, pack
         cmake_lists_file.write(f'include("{cmake_path}")\n')
 
     if cmake_options is None:
-        assert package_manager.run_cmd(f'cmake -G Ninja -Wno-dev 
--log-level=ERROR {directory} -B {directory}')
+        assert package_manager.run_cmd(f'cmake -G Ninja -Wno-dev 
--log-level=ERROR "{directory}" -B "{directory}"')
     else:
         assert package_manager.run_cmd(
-            f'cmake -G Ninja -Wno-dev --no-warn-unused-cli --log-level=ERROR 
{cmake_options} {directory} -B {directory}')
+            f'cmake -G Ninja -Wno-dev --no-warn-unused-cli --log-level=ERROR 
{cmake_options} "{directory}" -B "{directory}"')
     return os.path.join(directory, 'CMakeCache.txt')
 
 
diff --git a/bootstrap/package_manager.py b/bootstrap/package_manager.py
index 67c7b2162..b2389acad 100644
--- a/bootstrap/package_manager.py
+++ b/bootstrap/package_manager.py
@@ -236,7 +236,7 @@ def _get_activate_venv_path():
 def _minifi_setup_env_str(vs_where_location: VsWhereLocation) -> str:
     return f"""
 call refreshenv
-call {_get_activate_venv_path()}
+call "{_get_activate_venv_path()}"
 call {_get_vs_dev_cmd(vs_where_location)}
 setlocal EnableDelayedExpansion
   set PATH=!PATH:C:\\Strawberry\\c\\bin;=!;C:\\Program Files\\NASM;
@@ -302,7 +302,7 @@ class ChocolateyPackageManager(PackageManager):
 
     def run_cmd(self, cmd: str) -> bool:
         env_bat_path = pathlib.Path(__file__).parent.resolve() / 
"build_environment.bat"
-        res = subprocess.run(f"{env_bat_path} & {cmd}", check=True, text=True)
+        res = subprocess.run(f'"{env_bat_path}" & {cmd}', check=True, 
text=True)
 
         return res.returncode == 0
 

Reply via email to