blob: fcb9dad8043cdd8537abbdf06df241693e1e840a [file] [log] [blame]
#!/usr/bin/env bash
set -euo pipefail
# Replace the load statements
find ./ -type f -name BUILD* -exec sed -i '' -e 's/gmaven_rules/rules_jvm_external/g' {} \;
# Remove the explicit packaging type from the coordinates
find ./ -type f -name BUILD* -exec sed -i '' -e '/gmaven_artifact(/s/:aar//g; /gmaven_artifact(/s/:jar//g;' {} \;
# Replace all occurrences of gmaven_artifact with artifact
find ./ -type f -name BUILD* -exec sed -i '' -e 's/gmaven_artifact/artifact/g' {} \;
echo ""
echo "Paste this into your WORKSPACE file:"
echo "-------------------------"
echo ""
cat <<-EOF
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
RULES_JVM_EXTERNAL_TAG = "1.2"
RULES_JVM_EXTERNAL_SHA = "e5c68b87f750309a79f59c2b69ead5c3221ffa54ff9496306937bfa1c9c8c86b"
http_archive(
name = "rules_jvm_external",
strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
sha256 = RULES_JVM_EXTERNAL_SHA,
url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
)
load("@rules_jvm_external//:defs.bzl", "maven_install")
maven_install(
name = "maven",
artifacts = [
EOF
# Grep for all Maven artifact IDs and uniquify them.
# Steps
# 1. Get the list of maven_artifact declarations
# 2. Remove the explicit packaging type
# 3. Get the string to the left of the right bracket
# 4. Get the string to the right of the left bracket
# 5. Sort and de-duplicate
# 6. Format for WORKSPACE
find ./ -type f -name BUILD* -exec grep "artifact(.*)" {} \; \
| sed -e "s/:aar//; s/:jar//" \
| cut -d')' -f1 \
| cut -d'(' -f2 \
| sort \
| uniq \
| sed 's/^/ /; s/$/,/;'
cat <<-EOF
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
EOF
echo ""
echo "-------------------------"
echo ""
echo "Note that gmaven_rules only handled artifacts hosted on Google Maven, so you may need to add more repositories into `maven_install.repositories`."