summaryrefslogtreecommitdiffhomepage
path: root/build-apk.sh
diff options
context:
space:
mode:
authorMarkus Pettersson <markus.pettersson@mullvad.net>2024-02-02 13:49:08 +0100
committerMarkus Pettersson <markus.pettersson@mullvad.net>2024-02-02 16:08:13 +0100
commita02fb8a3815db0a39c802715a03dd289e7ea70fa (patch)
treedf64221d4277687cf230a773b48a772de3205e88 /build-apk.sh
parent6328b942bbd713dee109a9d715a6e53a2be1ac92 (diff)
downloadmullvadvpn-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-xbuild-apk.sh12
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[@]}"