From 15be44f3a1377f25451f077fce51d59c4f649b28 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Thu, 24 Sep 2026 22:19:08 +0900 Subject: [PATCH 1/5] GH-51485: [Dev][Tutorial] Fix SC2086 errors in cpp/examples/tutorial_examples directory --- .pre-commit-config.yaml | 2 +- cpp/examples/tutorial_examples/build_arrow.sh | 8 ++++---- cpp/examples/tutorial_examples/build_example.sh | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f370ff055b18..789e06716e58 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -286,7 +286,7 @@ repos: ?^ci/.*\.sh$| ?^cpp/build-support/.*\.sh$| ?^cpp/examples/minimal_build/run\.sh$| - ?^cpp/examples/tutorial_examples/run\.sh$| + ?^cpp/examples/tutorial_examples/.*\.sh$| ?^cpp/src/.*\.sh$| ?^cpp/thirdparty/download_dependencies\.sh$| ?^dev/release/05-binary-upload\.sh$| diff --git a/cpp/examples/tutorial_examples/build_arrow.sh b/cpp/examples/tutorial_examples/build_arrow.sh index 4c08abdaae69..031f93f2edd0 100755 --- a/cpp/examples/tutorial_examples/build_arrow.sh +++ b/cpp/examples/tutorial_examples/build_arrow.sh @@ -20,8 +20,8 @@ set -ex NPROC=$(nproc) -mkdir -p $ARROW_BUILD_DIR -pushd $ARROW_BUILD_DIR +mkdir -p "$ARROW_BUILD_DIR" +pushd "$ARROW_BUILD_DIR" # Enable the CSV reader as it's used by the example third-party build cmake /arrow/cpp \ @@ -30,9 +30,9 @@ cmake /arrow/cpp \ -DARROW_FILESYSTEM=ON \ -DARROW_PARQUET=ON \ -DARROW_MIMALLOC=OFF \ - $ARROW_CMAKE_OPTIONS + "$ARROW_CMAKE_OPTIONS" -make -j$NPROC +make -j"$NPROC" make install popd diff --git a/cpp/examples/tutorial_examples/build_example.sh b/cpp/examples/tutorial_examples/build_example.sh index 0b279890a78e..550b179ca9a6 100755 --- a/cpp/examples/tutorial_examples/build_example.sh +++ b/cpp/examples/tutorial_examples/build_example.sh @@ -18,8 +18,8 @@ set -ex -mkdir -p $EXAMPLE_BUILD_DIR -pushd $EXAMPLE_BUILD_DIR +mkdir -p "$EXAMPLE_BUILD_DIR" +pushd "$EXAMPLE_BUILD_DIR" cmake /io $EXAMPLE_CMAKE_OPTIONS make From 26b47925873add3e8571e63ef7ec85898e5d13ea Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Thu, 24 Sep 2026 22:26:10 +0900 Subject: [PATCH 2/5] GH-51485: [Dev][Tutorial] Fix SC2086 errors in cpp/examples/tutorial_examples directory --- cpp/examples/tutorial_examples/build_example.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/examples/tutorial_examples/build_example.sh b/cpp/examples/tutorial_examples/build_example.sh index 550b179ca9a6..2bf31bdbbb61 100755 --- a/cpp/examples/tutorial_examples/build_example.sh +++ b/cpp/examples/tutorial_examples/build_example.sh @@ -21,7 +21,7 @@ set -ex mkdir -p "$EXAMPLE_BUILD_DIR" pushd "$EXAMPLE_BUILD_DIR" -cmake /io $EXAMPLE_CMAKE_OPTIONS +cmake /io "$EXAMPLE_CMAKE_OPTIONS" make popd From 192968683e9f0075a2b637963ef5d501df06a3d3 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Fri, 25 Sep 2026 11:46:55 +0900 Subject: [PATCH 3/5] Convert variable into an array --- cpp/examples/tutorial_examples/build_example.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cpp/examples/tutorial_examples/build_example.sh b/cpp/examples/tutorial_examples/build_example.sh index 2bf31bdbbb61..596841cdd9e8 100755 --- a/cpp/examples/tutorial_examples/build_example.sh +++ b/cpp/examples/tutorial_examples/build_example.sh @@ -21,7 +21,11 @@ set -ex mkdir -p "$EXAMPLE_BUILD_DIR" pushd "$EXAMPLE_BUILD_DIR" -cmake /io "$EXAMPLE_CMAKE_OPTIONS" +# Convert the space-separated CMake options into a Bash array. +# This avoids ShellCheck SC2086 and preserves argument boundaries. +read -r -a EXAMPLE_CMAKE_OPTIONS_ARRAY <<< "$EXAMPLE_CMAKE_OPTIONS" + +cmake /io "$EXAMPLE_CMAKE_OPTIONS_ARRAY[@]" make popd From 4267a0ce79255bf8ebc4e569831a2b6ba4c3750f Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Fri, 25 Sep 2026 11:55:00 +0900 Subject: [PATCH 4/5] Fix shellcheck --- cpp/examples/tutorial_examples/build_example.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/examples/tutorial_examples/build_example.sh b/cpp/examples/tutorial_examples/build_example.sh index 596841cdd9e8..1a671759de13 100755 --- a/cpp/examples/tutorial_examples/build_example.sh +++ b/cpp/examples/tutorial_examples/build_example.sh @@ -25,7 +25,7 @@ pushd "$EXAMPLE_BUILD_DIR" # This avoids ShellCheck SC2086 and preserves argument boundaries. read -r -a EXAMPLE_CMAKE_OPTIONS_ARRAY <<< "$EXAMPLE_CMAKE_OPTIONS" -cmake /io "$EXAMPLE_CMAKE_OPTIONS_ARRAY[@]" +cmake /io "${EXAMPLE_CMAKE_OPTIONS_ARRAY[@]}" make popd From b01de087a6ffcb23a6d947d3309326dbd9657b3d Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Fri, 25 Sep 2026 12:53:57 +0900 Subject: [PATCH 5/5] Convert variable into an array --- cpp/examples/tutorial_examples/build_arrow.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cpp/examples/tutorial_examples/build_arrow.sh b/cpp/examples/tutorial_examples/build_arrow.sh index 031f93f2edd0..e6486daee5fd 100755 --- a/cpp/examples/tutorial_examples/build_arrow.sh +++ b/cpp/examples/tutorial_examples/build_arrow.sh @@ -23,6 +23,10 @@ NPROC=$(nproc) mkdir -p "$ARROW_BUILD_DIR" pushd "$ARROW_BUILD_DIR" +# Convert the space-separated CMake options into a Bash array. +# This avoids ShellCheck SC2086 and preserves argument boundaries. +read -r -a ARROW_CMAKE_OPTIONS_ARRAY <<< "$ARROW_CMAKE_OPTIONS" + # Enable the CSV reader as it's used by the example third-party build cmake /arrow/cpp \ -DARROW_CSV=ON \ @@ -30,7 +34,7 @@ cmake /arrow/cpp \ -DARROW_FILESYSTEM=ON \ -DARROW_PARQUET=ON \ -DARROW_MIMALLOC=OFF \ - "$ARROW_CMAKE_OPTIONS" + "${ARROW_CMAKE_OPTIONS_ARRAY[@]}" make -j"$NPROC" make install