#!/bin/bash
if [[ $EUID -ne 0 ]]; then
   echo "Execute sudo $0, $USER does not have sudo privileges necessary to continue." 
   exit 1
fi
if [ ! -d /Developer ]; then
echo "Could not find Xcode at /Developer, please install the latest Xcode for Leopard."
exit 1
fi
if [ ! -d /opt ]; then
echo "Could not find MacPorts, please install the latest MacPorts for Leopard."
exit 1
fi

rm -rf /opt/local/var/macports/build/*
cd "$(dirname "$0")"
cp archive_sites.conf /opt/local/etc/macports/
cp macports.conf /opt/local/etc/macports/
cp pubkeys.conf /opt/local/etc/macports/
rm -rf /var/tmp/macports-gcc49
mkdir -p /var/tmp/macports-gcc49
cp -rv software/* /var/tmp/macports-gcc49
#From MacPorts docs on signing
PRIVKEY="/opt/local/share/macports/local-privkey.pem"
PUBKEY="/opt/local/share/macports/local-pubkey.pem"
SOFTWARE="/var/tmp/macports-gcc49"
openssl genrsa -out $PRIVKEY 2048
openssl rsa -in $PRIVKEY -pubout -out $PUBKEY
# First, clear out any outdated signatures
for SIGNATURE in "$SOFTWARE"/*/*.rmd160
do
    ARCHIVE_DIR="$(dirname "$SIGNATURE")"
    ARCHIVE="$(basename "$SIGNATURE" .rmd160)"

    if [ "$SIGNATURE" -ot "$ARCHIVE_DIR"/"$ARCHIVE" -o ! -f "$ARCHIVE_DIR"/"$ARCHIVE" ]
    then
        /bin/echo removing outdated signature: "$SIGNATURE"
        /bin/rm -f "$SIGNATURE"
    fi
done

# Now, find every archive that doesn't have a signature
for ARCHIVE in "$SOFTWARE"/*/*.{tbz2,tgz,tar,tbz,tlz,txz,xar,zip,cpgz,cpio}
do
    PORTNAME="$(basename "$(dirname "$ARCHIVE")")"
    ANAME="$(basename "$ARCHIVE")"

    if [ "$ARCHIVE" -nt "$ARCHIVE".rmd160 ]
    then
        /bin/echo -n signing archive: "$ANAME "
        /usr/bin/openssl dgst -ripemd160 -sign "$PRIVKEY" -out "$ARCHIVE".rmd160 "$ARCHIVE"
        /usr/bin/openssl dgst -ripemd160 -verify "$PUBKEY" -signature "$ARCHIVE".rmd160 "$ARCHIVE"
    fi
done
yes | port -d  install cmake 
cp /opt/local/etc/macports/archive_sites.conf.default /opt/local/etc/macports/archive_sites.conf
cp /opt/local/etc/macports/macports.conf.default /opt/local/etc/macports/macports.conf
cp /opt/local/etc/macports/pubkeys.conf.default /opt/local/etc/macports/pubkeys.conf
rm -rf /var/tmp/macports-gcc49
port installed
echo "Complete"

