blob: eec8ce6f991a979f0e4f115da93041b8fa1ca1e5 [file] [log] [blame] [edit]
#!/bin/bash
## This is a helper script invoked by ./generation/diff_files.sh
## All the inputs to this script are provided by diff_files.sh
## You do not need to do anything for this script to run.
## Inputs provided in sequential order are :
## 1. ${mavenURL} -> The URL for artifact's latest version directory on maven central
## 2. ${sonatypeURL} -> The URL for artifact's staging directory on google sonatype
## 3. ${artifactId} -> self-explanatory
## 4. ${groupId} -> artifact's groupId
## output for this script are 2 files:
# 1. diff-files-summary.txt : This will show success for artifacts which have same files on maven-central and sonatype,
# and if they differ, it will show a diff failure message along with the names of the files that differ.
# 2. total-diff.txt : For every artifact, this will show 4 things:
# a. Sonatype directory URL
# b. Files that exist on sonatype (with version omitted, since we only care about the file generated)
# c. Maven directory URL
# d. Files that exist on Maven (with version omitted, since we only care about the file generated)
mavenCentralURL=$1
sonatypeURL=$2
artifactId=$3
groupId=$4
wget -O sonatypeFile --recursive -nd --no-parent ${sonatypeURL}
##why --header="User-Agent: ? -> Maven central denies CLI requests to browse a directory URL, so imitating a browser's behaviour by using this header.
wget -O mavenFile --referer --recursive -nd --no-parent \
--header="User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36" \
${mavenCentralURL}
sed -n 's/.*href="\([^"]*\).*/\1/p' mavenFile >mavenContents.txt
sed -n 's/.*href="\([^"]*\).*/\1/p' sonatypeFile >sonatypeContents.txt
awk "/${groupId}/" sonatypeContents.txt >temp.txt
if [[ "${groupId}" = *api* ]]; then
cat temp.txt | while read line; do
echo ${line} | awk -F '[/]' '{print $13}' | sed 's/[0-9]*//g' >>finalSonatype.txt
done
else
cat temp.txt | while read line; do
echo ${line} | awk -F '[/]' '{print $12}' | sed 's/[0-9]*//g' >>finalSonatype.txt
done
fi
cat mavenContents.txt | while read line; do
echo ${line} | sed 's/[0-9]*//g' >>finalMaven.txt
done
sed -i '' '1d' finalMaven.txt
echo "###################################################################################################################################" >>total-diff.txt
echo "----${artifactId} Sonatype files : ${sonatypeURL}" >>total-diff.txt
cat finalSonatype.txt >>total-diff.txt
echo "----${artifactId} Maven files : ${mavenCentralURL}" >>total-diff.txt
cat finalMaven.txt >>total-diff.txt
echo "--------------------------------------------------------------------------------------------" >>diff-files-summary.txt
if diff finalMaven.txt finalSonatype.txt >/dev/null; then
echo -e "${artifactId} File match success" >>diff-files-summary.txt
else
echo "---------------------------------^NEW-DIFF-FOUND^-----------------------------------------" >>diff-files-summary.txt
echo "${artifactId} diff:" >>diff-files-summary.txt
diff finalMaven.txt finalSonatype.txt >>diff-files-summary.txt
fi
rm -f mavenFile
rm -f sonatypeFile
rm -f mavenContents.txt
rm -f sonatypeContents.txt
rm -f finalSonatype.txt
rm -f finalMaven.txt
rm -f temp.txt