#!/bin/bash
# for upgrading see also
# http://debgen.simplylinux.ch/
#
# $1 = dir
# $2 = apt-key
# $3 = apt-get
# $4 = $WGET

DL=yes
KS=yes
APT=yes
APTDIR=/etc/apt
APTKEY=`which apt-key`


while [ "$1" != "" ]; do
  case $1 in
     -h)
      echo "Usage: `basename $0` [ -[no-]dl ] [ -[no-]keyserver ] [ -[no-]aptget ] [ -apt-key APTKEYSCRIPT ] [ APTDIR ]"
         exit 0
         ;;
     -dl)
         DL=yes
         shift
         ;;
     -no-dl)
         DL=no
         shift
         ;;
     -keyserver)
         KS=yes
         shift
         ;;
     -no-keyserver)
         KS=no
         shift
         ;;
     -aptget)
         APT=yes
         shift
         ;;
     -no-aptget)
         APT=no
         shift
         ;;
     -apt-key)
         APTKEY=$2
         shift
         shift
         ;;
     *) 
	 APTDIR=$1
         shift
	 ;;
   esac
done


_getkeyfromserver () {
    if [ $KS = yes ]; then 
     if [ -z "$3" ]; then
        KEYSERVER=pgp.mit.edu
     else
        KEYSERVER=$3
     fi
	 echo "Installing key for $2 from $KEYSERVER..."
	    # gpg --keyserver pgp.mit.edu --recv-keys 0x$1 && gpg --export --armor 0x$1 | $APTKEY add -
        set -x
        apt-key adv --recv-keys --keyserver $KEYSERVER 0x$1
        set +x
     else
	 echo "Disabled Installing key for $2 ..."
	 # echo "CALL BY HAND: gpg --keyserver pgp.mit.edu --recv-keys 0x$1 && gpg --export --armor 0x$1 | $APTKEY add -"
	 echo "CALL BY HAND: pt-key adv --recv-keys --keyserver $KEYSERVER 0x$1"
    fi
}

_getviaapt () {
    if [ $APT = yes ]; then 
	echo "Installing key for $2 ..."
        set -x
	apt-get --reinstall --force-yes --yes install $1
        set +x
    else
	echo "Disabled Installing key for $2 ..."
	echo "CALL BY HAND: apt-get --reinstall --yes install $1"
    fi
}

_getviawget () {
    if [ $DL = yes ]; then 
	echo "Installing key for $2 ..."
        set -x
	wget -q -O - $1 | $APTKEY add -
        set +x
    else
	echo "Disabled installing key for $2..."
	echo "CALL BY HAND: wget -q -O - $1 | $APTKEY add -"
    fi
}

_saveandrmfile () {
	if [ -f ${1}.4 ]; then rm ${1}.4 ; fi
	if [ -f ${1}.3 ]; then mv ${1}.3 ${1}.4 ; fi
	if [ -f ${1}.2 ]; then mv ${1}.2 ${1}.3 ; fi
	if [ -f ${1}.1 ]; then mv ${1}.1 ${1}.2 ; fi
	if [ -f ${1}   ]; then 
           mv ${1}   ${1}.1 ; 
	   touch ${1}
	   chmod 600 ${1}
        fi
}

# General Keys
if [ $APT = yes ]; then
  apt-get update && apt-get install debian-archive-keyring
fi

# echo "Regenerating base debian keys ..."
# $APTKEY update

for resfile in $APTDIR/sources.list.d/*.list; do 
   sn=`basename "$resfile" | cut -d. -f1`
   scriptfile=$APTDIR/getkeys.d/$sn.sh
   if [ -f $scriptfile ]; then
     echo "Sourcing $scriptfile"
     source $scriptfile
   fi
done


