opentelemetry-java-instrume.../.github/scripts/check-package-names.sh

62 lines
2.0 KiB
Bash
Executable File

#!/bin/bash -e
# shellcheck disable=SC2001
for dir in $(find instrumentation -name "*.java" | grep library/src/main/java | sed 's#/[^/]*$##' | sort -u); do
module_name=$(echo "$dir" | sed 's#.*/\([^/]*\)/library/src/main/java/.*#\1#')
if [[ "$module_name" =~ java-* ]]; then
continue
fi
if [[ "$module_name" == "jdbc" ]]; then
continue
fi
if [[ "$module_name" == "jmx-metrics" ]]; then
continue
fi
if [[ "$module_name" == "resources" ]]; then
continue
fi
if [[ "$module_name" == "oshi" ]]; then
continue
fi
# these are possibly problematic
if [[ "$dir" == "instrumentation/grpc-1.6/library/src/main/java/io/grpc/override" ]]; then
continue
fi
if [[ "$dir" == "instrumentation/lettuce/lettuce-5.1/library/src/main/java/io/lettuce/core/protocol" ]]; then
continue
fi
# some common modules don't have any base version
# - lettuce-common
# - netty-common
if [[ ! "$module_name" =~ [0-9]$ && "$module_name" != "lettuce-common" && "$module_name" != "netty-common" ]]; then
echo "module name doesn't have a base version: $dir"
exit 1
fi
simple_module_name=$(echo "$module_name" | sed 's/-[0-9.]*$//' | sed 's/-//g')
base_version=$(echo "$module_name" | sed 's/.*-\([0-9.]*\)$/\1/' | sed 's/\./_/')
if [[ ! "$module_name" =~ [0-9]$ && "$module_name" != "lettuce-common" && "$module_name" != "netty-common" ]]; then
expected_package_name="io/opentelemetry/instrumentation/$simple_module_name/v$base_version"
else
expected_package_name="io/opentelemetry/instrumentation/$simple_module_name"
fi
package_name=$(echo "$dir" | sed 's#.*/src/main/java/##')
# deal with differences like module name elasticsearch-rest and package name elasticsearch.rest
expected_package_name_normalized=$(echo "$expected_package_name" | sed 's#/##g')
package_name_normalized=$(echo "$package_name" | sed 's#/##g')
if [[ "$package_name_normalized" != "$expected_package_name_normalized"* ]]; then
echo "ERROR: $dir"
exit 1
fi
done