Add script to check the bin distribution

上级 83f867e7
......@@ -62,6 +62,7 @@
<exclude>dubbo-admin-distribution/src/LICENSE</exclude>
<exclude>dubbo-admin-distribution/src/NOTICE</exclude>
<exclude>dubbo-admin-distribution/src/licenses/**</exclude>
<exclude>dubbo-admin-distribution/src/bin-distribution-check.sh</exclude>
</excludes>
</fileSet>
</fileSets>
......
#!bin/sh
# HOW TO RUN THIS SCRIPT
# 1. unzip the bin-release file.
# 2. place this script under your unzipped bin-release directory.
# 3. if you want to check the javascript dependencies,
# copy the package.json file to the directory.
# 4. run this script.
# Step 1: check all the dependendcies list in LICENSE are acutally bundled.
echo "Step 1: check all the dependendcies list in LICENSE are acutally bundled"
echo "================"
files=($(grep jar LICENSE | awk -F ' ' '{ print $2 }'))
for i in "${files[@]}"; do
file=$(echo $i | tr -d '\r')
if [ ! -f "BOOT-INF/lib/$file" ]; then
echo "jar file $file is listed in LICENSE but not found in BOOT-INF/lib."
fi
done
echo "\n"
# Step 2: check all the jar files under BOOT-INF/lib are listed in LICENSE.
echo "Step 2: check all the jar files under BOOT-INF/lib are listed in LICENSE."
echo "================"
for i in BOOT-INF/lib/*.jar; do
jar=$(echo $i | awk -F '/' '{print $3}')
if [ $(grep -c $jar LICENSE) -eq 0 ]; then
echo "Found $i but not listed in LICENSE"
fi
done
echo "\n"
# Step 3: if a project is Apache Licensed and has NOTICE, it should be listed in NOTICE
echo "Step 3: if a project is Apache Licensed and has NOTICE, it should be listed in NOTICE"
echo "================="
licenses=($(echo $(grep "Apache 2.0" LICENSE | awk -F ' ' '{if ($0 ~ /^.*\*/) printf "%s,%s\\n",$3,$5}')))
for i in "${licenses[@]}"; do
name=$(echo $i | awk -F ',' '{print $1}')
# echo "checking $name..."
license=$(echo $i | awk -F ',' '{print $2}' | awk '{if (toupper($0) ~ /.*LICENSE.*/) print $0}')
# remove the trailing LICENSE.txt
notice="${license%/*}/NOTICE"
noticeTxt="$notice.txt"
if [ $(curl --write-out %{http_code} --head --output /dev/null -s $notice | grep -c 200) -ne 0 ] \
|| [ $(curl --write-out %{http_code} --head --output /dev/null -s $noticeTxt | grep -c 200) -ne 0 ]; then
# echo "found Notice file, checking it is listed in NOTICE"
if [ $(grep -c $name NOTICE) -eq 0 ]; then
echo "$name should be added to NOTICE"
fi
fi
done
# Step 4: check javascript dependencies, ensure they are listed in LICENSE.
# TODO
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册