66 lines
1.9 KiB
Bash
66 lines
1.9 KiB
Bash
#!/bin/bash
|
|
echo "--------------The Fat Rat Repokey 1.0----------"
|
|
echo ".....Checking Dependencies....."
|
|
if [ $(id -u) != "0" ]; then
|
|
echo "Root Previledge is required to run this script"
|
|
exit 0
|
|
fi
|
|
which apt-key > /dev/null 2>&1
|
|
if [ "$?" != "0" ]; then
|
|
echo "APT Package Management is not installed"
|
|
exit 0
|
|
fi
|
|
|
|
echo ".....Dependencies Check Done....."
|
|
|
|
rchk () {
|
|
apt-get update &> /tmp/aptkey.log
|
|
awk '{print $1}' RS='NO_PUBKEY' /tmp/aptkey.log | sed '1d' > /tmp/expkeys.log
|
|
awk '{print $1}' RS='EXPKEYSIG' /tmp/aptkey.log | sed '1d' >> /tmp/expkeys.log
|
|
sort /tmp/expkeys.log | uniq > /tmp/expkeystmp.log
|
|
rm /tmp/expkeys.log && mv /tmp/expkeystmp.log /tmp/expkeys.log
|
|
cntk=$(wc -l /tmp/expkeys.log | awk '{print$1}' | sed 's/ //g')
|
|
if [[ "$cntk" == "0" ]]
|
|
then
|
|
echo "No Keys to be processed"
|
|
exit 0
|
|
else
|
|
echo "Unable to process key for $dist"
|
|
echo ""
|
|
echo "Possible Causes"
|
|
echo "- Check if you are connected to Internet"
|
|
echo "- Any unofficial repository in /etc/apt/sources.list"
|
|
echo "- Key not validated yet by the repository maintainers"
|
|
echo ""
|
|
exit 0
|
|
fi
|
|
}
|
|
keyapt () {
|
|
apt-get update &> /tmp/aptkey.log
|
|
awk '{print $1}' RS='NO_PUBKEY' /tmp/aptkey.log | sed '1d' > /tmp/expkeys.log
|
|
awk '{print $1}' RS='EXPKEYSIG' /tmp/aptkey.log | sed '1d' >> /tmp/expkeys.log
|
|
cat /tmp/expkeys.log | sort | uniq > /tmp/expkeystmp.log
|
|
rm /tmp/expkeys.log && mv /tmp/expkeystmp.log /tmp/expkeys.log
|
|
cntk=$(wc -l /tmp/expkeys.log | awk '{print$1}' | sed 's/ //g')
|
|
if [[ "$cntk" == "0" ]]
|
|
then
|
|
echo "No Keys to be processed"
|
|
exit 0
|
|
fi
|
|
for i in $(seq $cntk)
|
|
do
|
|
gtkey=$(sed -n ${i}p /tmp/expkeys.log)
|
|
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $gtkey &> /tmp/gtkey.log
|
|
kout=$(grep -w "Total number processed:" /tmp/gtkey.log | awk -F'Total number processed:' '{print $2}' | sed 's/ //g')
|
|
dist=$(grep -o '".*"' /tmp/gtkey.log | sed 's/"//g')
|
|
if [[ "$kout" == "1" ]]
|
|
then
|
|
echo "Succefull Key processed for $dist"
|
|
else
|
|
rchk
|
|
fi
|
|
done
|
|
exit 0
|
|
}
|
|
keyapt
|