#!/bin/sh
#
# (C) 2001 Arkadiusz Mi¶kiewicz <misiek@pld.ORG.PL>
#
# DISTROS="nazwy katalogów dystrybucji z FTP/dists/*
# nazwadistros_ARCHS="lista architektur dla nazwadistros"
# Symlinki sa robione z force wiec by miec w poolu symlinki
# do najnowszej wersji softu trzeba w DISTROS wpisywac
# nazwy najstarszych dystrybucji jako pierwsze.

umask 002
FTPROOT="/home/ftp/pub/Linux/PLD"
DISTROS="ac ra"

ra_SRCDIRS="PLD/SRPMS/SRPMS updates/general/SRPMS updates/security/SRPMS"
ra_BINDIRS="PLD/%%/PLD/RPMS updates/general/%% updates/security/%%

ac_SRCDIRS="PLD/SRPMS/SRPMS"
ac_BINDIRS="PLD/%%/PLD/RPMS"

ra_ARCHS="i386 i586 i686 sparc alpha ppc SRPMS"
ac_ARCHS="athlon amd64 i386 i586 i686 sparc alpha ppc SRPMS"

for distros in $DISTROS; do
  eval ARCHS="\$${distros}_ARCHS"
  echo "Doing distribution: ${distros}"

  for archs in ${ARCHS}; do
    echo -n "Doing ${distros} - architecture: ${archs}:"
    case "${archs}" in
      SRPMS)
      find ${FTPROOT}/dists/${distros}/PLD/SRPMS/SRPMS -type f -name "*.rpm" | while read path; do
	RPM_GROUP=""
	RPM_NAME=""
	eval `rpm -qp --queryformat "RPM_GROUP='%{GROUP}'\nRPM_NAME='%{NAME}'\n" \"$path\" 2> /dev/null`
	BN="`basename \"$path\"`"
	if [ -n "$RPM_NAME" ]; then
	  RPM_LETTER="`printf '%.1s' "$RPM_NAME"`"
	  RPM_LETTER="`echo "$RPM_LETTER" | tr '[:upper:]' '[:lower:]'`"
	  if [ ! -d "${FTPROOT}/pool/${RPM_LETTER}/${RPM_NAME}" ]; then
	    mkdir -p "${FTPROOT}/pool/${RPM_LETTER}/${RPM_NAME}"
	  fi
	  ln -sf "../../../dists/${distros}/PLD/SRPMS/SRPMS/$BN" "${FTPROOT}/pool/${RPM_LETTER}/${RPM_NAME}/${BN}"

	  echo -n "+"
	fi
      done
      ;;
      *)
      cd ${FTPROOT}/dists/${distros}/PLD/${archs}/PLD/by-group || continue
      find ${FTPROOT}/dists/${distros}/PLD/${archs}/PLD/RPMS -type f -name "*.rpm" | \
      while read path; do
	RPM_GROUP=""
	RPM_NAME=""
	eval `rpm -qp --queryformat "RPM_GROUP='%{GROUP}'\nRPM_NAME='%{NAME}'\n" \"$path\" 2> /dev/null`
	BN="`basename \"$path\"`"
	if [ -n "$RPM_GROUP" ]; then
	  DIR="$RPM_GROUP"
	  if [ ! -d "$DIR" ]; then
	    mkdir -p "$DIR"
	  fi
	  ln -sf "../../RPMS/$BN" "$DIR/$BN"
	  echo -n "."
	fi
	if [ -n "$RPM_NAME" ]; then
	  RPM_LETTER="`printf '%.1s' "$RPM_NAME"`"
	  RPM_LETTER="`echo "$RPM_LETTER" | tr '[:upper:]' '[:lower:]'`"
	  if [ ! -d "${FTPROOT}/pool/${RPM_LETTER}/${RPM_NAME}" ]; then
	    mkdir -p "${FTPROOT}/pool/${RPM_LETTER}/${RPM_NAME}"
	  fi
	  ln -sf "../../../dists/${distros}/PLD/${archs}/PLD/RPMS/$BN" "${FTPROOT}/pool/${RPM_LETTER}/${RPM_NAME}/${BN}"
	  echo -n "+"
	fi
      done
      ;;
    esac

    symlinks -drsc . > /dev/null 2>&1
    symlinks -drsc . > /dev/null 2>&1
    echo
  done
done

cd ${FTPROOT}/pool/
symlinks -drsc . > /dev/null 2>&1
symlinks -drsc . > /dev/null 2>&1

echo
