Skip to content

Commit a02fb8a

Browse files
Properly pass arguments to Cargo in build-apk.sh
The `build-apk.sh` script broke in b6e0545 due to quoting a variable containing a string with space seperated arguments. While it is best practice to quote variables to prevent word splitting, word splitting was the behavior that we wanted in this particular case. This commit fixes this issue by building an array of arguments instead, which when expanded will pass along the arguments to `cargo build` properly as multiple strings. The script now works, and `shellcheck` is happy!
1 parent 6328b94 commit a02fb8a

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

build-apk.sh

+6-6
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ BUILD_TYPE="release"
1515
GRADLE_BUILD_TYPE="release"
1616
GRADLE_TASKS=(createOssProdReleaseDistApk createPlayProdReleaseDistApk)
1717
BUNDLE_TASKS=(createPlayProdReleaseDistBundle)
18-
CARGO_ARGS="--release"
18+
CARGO_ARGS=( "--release" )
1919
EXTRA_WGGO_ARGS=""
2020
BUILD_BUNDLE="no"
2121
CARGO_TARGET_DIR=${CARGO_TARGET_DIR:-"target"}
@@ -25,7 +25,7 @@ while [ -n "${1:-""}" ]; do
2525
if [[ "${1:-""}" == "--dev-build" ]]; then
2626
BUILD_TYPE="debug"
2727
GRADLE_BUILD_TYPE="debug"
28-
CARGO_ARGS=""
28+
CARGO_ARGS=()
2929
GRADLE_TASKS=(createOssProdDebugDistApk)
3030
BUNDLE_TASKS=(createOssProdDebugDistBundle)
3131
elif [[ "${1:-""}" == "--fdroid" ]]; then
@@ -55,9 +55,9 @@ fi
5555
if [[ "$BUILD_TYPE" == "release" && "$PRODUCT_VERSION" != *"-dev-"* ]]; then
5656
echo "Removing old Rust build artifacts"
5757
cargo clean
58-
CARGO_ARGS+=" --locked"
58+
CARGO_ARGS+=( "--locked" )
5959
else
60-
CARGO_ARGS+=" --features api-override"
60+
CARGO_ARGS+=( "--features" "api-override" )
6161
GRADLE_TASKS+=(createPlayDevmoleReleaseDistApk createPlayStagemoleReleaseDistApk)
6262
BUNDLE_TASKS+=(createPlayDevmoleReleaseDistBundle createPlayStagemoleReleaseDistBundle)
6363
fi
@@ -103,7 +103,7 @@ for ARCHITECTURE in ${ARCHITECTURES:-aarch64 armv7 x86_64 i686}; do
103103
esac
104104

105105
echo "Building mullvad-daemon for $TARGET"
106-
cargo build "$CARGO_ARGS" --target "$TARGET" --package mullvad-jni
106+
cargo build "${CARGO_ARGS[@]}" --target "$TARGET" --package mullvad-jni
107107

108108
STRIP_TOOL="${NDK_TOOLCHAIN_DIR}/llvm-strip"
109109
TARGET_LIB_PATH="$SCRIPT_DIR/android/app/build/extraJni/$ABI/libmullvad_jni.so"
@@ -117,7 +117,7 @@ for ARCHITECTURE in ${ARCHITECTURES:-aarch64 armv7 x86_64 i686}; do
117117
done
118118

119119
echo "Updating relays.json..."
120-
cargo run --bin relay_list "$CARGO_ARGS" > build/relays.json
120+
cargo run --bin relay_list "${CARGO_ARGS[@]}" > build/relays.json
121121

122122
cd "$SCRIPT_DIR/android"
123123
$GRADLE_CMD --console plain "${GRADLE_TASKS[@]}"

0 commit comments

Comments
 (0)