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