diff options
| author | Markus Pettersson <markus.pettersson@mullvad.net> | 2024-02-02 13:49:08 +0100 |
|---|---|---|
| committer | Markus Pettersson <markus.pettersson@mullvad.net> | 2024-02-02 16:08:13 +0100 |
| commit | a02fb8a3815db0a39c802715a03dd289e7ea70fa (patch) | |
| tree | df64221d4277687cf230a773b48a772de3205e88 /build-apk.sh | |
| parent | 6328b942bbd713dee109a9d715a6e53a2be1ac92 (diff) | |
| download | mullvadvpn-a02fb8a3815db0a39c802715a03dd289e7ea70fa.tar.xz mullvadvpn-a02fb8a3815db0a39c802715a03dd289e7ea70fa.zip | |
Properly pass arguments to Cargo in `build-apk.sh`
The `build-apk.sh` script broke in b6e0545e1b5ae2fbcb6655bd4d28739cf9f943d6
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!
Diffstat (limited to 'build-apk.sh')
| -rwxr-xr-x | build-apk.sh | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/build-apk.sh b/build-apk.sh index 006b014cb3..952fb8b5a6 100755 --- a/build-apk.sh +++ b/build-apk.sh @@ -15,7 +15,7 @@ BUILD_TYPE="release" GRADLE_BUILD_TYPE="release" GRADLE_TASKS=(createOssProdReleaseDistApk createPlayProdReleaseDistApk) BUNDLE_TASKS=(createPlayProdReleaseDistBundle) -CARGO_ARGS="--release" +CARGO_ARGS=( "--release" ) EXTRA_WGGO_ARGS="" BUILD_BUNDLE="no" CARGO_TARGET_DIR=${CARGO_TARGET_DIR:-"target"} @@ -25,7 +25,7 @@ while [ -n "${1:-""}" ]; do if [[ "${1:-""}" == "--dev-build" ]]; then BUILD_TYPE="debug" GRADLE_BUILD_TYPE="debug" - CARGO_ARGS="" + CARGO_ARGS=() GRADLE_TASKS=(createOssProdDebugDistApk) BUNDLE_TASKS=(createOssProdDebugDistBundle) elif [[ "${1:-""}" == "--fdroid" ]]; then @@ -55,9 +55,9 @@ fi if [[ "$BUILD_TYPE" == "release" && "$PRODUCT_VERSION" != *"-dev-"* ]]; then echo "Removing old Rust build artifacts" cargo clean - CARGO_ARGS+=" --locked" + CARGO_ARGS+=( "--locked" ) else - CARGO_ARGS+=" --features api-override" + CARGO_ARGS+=( "--features" "api-override" ) GRADLE_TASKS+=(createPlayDevmoleReleaseDistApk createPlayStagemoleReleaseDistApk) BUNDLE_TASKS+=(createPlayDevmoleReleaseDistBundle createPlayStagemoleReleaseDistBundle) fi @@ -103,7 +103,7 @@ for ARCHITECTURE in ${ARCHITECTURES:-aarch64 armv7 x86_64 i686}; do esac echo "Building mullvad-daemon for $TARGET" - cargo build "$CARGO_ARGS" --target "$TARGET" --package mullvad-jni + cargo build "${CARGO_ARGS[@]}" --target "$TARGET" --package mullvad-jni STRIP_TOOL="${NDK_TOOLCHAIN_DIR}/llvm-strip" 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 done echo "Updating relays.json..." -cargo run --bin relay_list "$CARGO_ARGS" > build/relays.json +cargo run --bin relay_list "${CARGO_ARGS[@]}" > build/relays.json cd "$SCRIPT_DIR/android" $GRADLE_CMD --console plain "${GRADLE_TASKS[@]}" |
