mirror of
https://github.com/status-im/status-react.git
synced 2025-01-09 10:42:53 +00:00
Jakub Sokołowski
20a0cc01f6
Refactoring the derivation that fetches all the POMs, JARs, and AARs in order to make it more generic and easier to extend. The main change is adding `files` key in `deps.json` which contains a dict of all the files reletad to given package. This way we can more easily include other files that might be available for download, like AARs with ASC suffix, or `nodeps` JARs. This is also necessary for the React Native upgrade: https://github.com/status-im/status-mobile/pull/15203 Signed-off-by: Jakub Sokołowski <jakub@status.im>
38 lines
1.2 KiB
Bash
Executable File
38 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# This script generates a list of dependencies for the main project and its
|
|
# sub-projects defined using Gradle config files. It parses Gradle output of
|
|
# 'dependencies' and 'buildEnvironment` tasks using AWK.
|
|
|
|
set -Eeuo pipefail
|
|
|
|
GIT_ROOT=$(cd "${BASH_SOURCE%/*}" && git rev-parse --show-toplevel)
|
|
# Gradle needs to be run in 'android' subfolder.
|
|
cd "${GIT_ROOT}/android"
|
|
|
|
# Show Gradle log in case of failure.
|
|
GRADLE_LOG_FILE='/tmp/gradle.log'
|
|
function show_gradle_log() { cat "${GRADLE_LOG_FILE}" >&2; }
|
|
trap show_gradle_log ERR
|
|
|
|
# Run the gradle command for a project:
|
|
# - ':buildEnvironment' to get build tools
|
|
# - ':dependencies' to get direct deps limited those by
|
|
# implementation config to avoid test dependencies
|
|
DEPS=("${@}")
|
|
declare -a BUILD_DEPS
|
|
declare -a NORMAL_DEPS
|
|
for i in "${!DEPS[@]}"; do
|
|
BUILD_DEPS[${i}]="${DEPS[${i}]}:buildEnvironment"
|
|
NORMAL_DEPS[${i}]="${DEPS[${i}]}:dependencies"
|
|
done
|
|
|
|
# And clean up the output using AWK script.
|
|
AWK_SCRIPT="${GIT_ROOT}/nix/deps/gradle/gradle_parser.awk"
|
|
|
|
./gradlew --no-daemon --console plain \
|
|
"${BUILD_DEPS[@]}" \
|
|
"${NORMAL_DEPS[@]}" \
|
|
| tee "${GRADLE_LOG_FILE}" \
|
|
| awk -f "${AWK_SCRIPT}"
|