#! /bin/sh
# Package Init  -  @2000 by Antonio Gallo
# agx@linux.it - www.badpenguin.org - www.linux.it/~agx
# 20 May 2000, This script creates all the necessary configuration 
# files and directories used by the Bad Penguin package system.
# Mon Jul 17 20:59:06 2000, updated to BPP 2.0.0
# Mon Aug 21 23:06:33 2000, contribution from Biagio Lucini
# Wed Sep 13 20:55:40 2000, restored WORKDIR


echo "----------------------------------------------------------------------"
echoc CYAN -n "(*) package init"
echo "> checking if all the config files and dirs are there ..."

XDIST_VERSION="/etc/badpenguin/release"
XPACKAGE_CONF="/etc/badpenguin/bpp/package.conf"
XPACKAGE_DEPOTS="/etc/badpenguin/bpp/package.depots"
XSOURCE_DEPOTS="/etc/badpenguin/bpp/sourcedepots"
XPKG_PKGDEPOT="/opt/badpenguin/packages"
XPKG_SRCDEPOT="/opt/badpenguin/sources"
XPKG_PORTSDIR="/opt/badpenguin/ports"
XPKG_SPOOLDIR="/var/spool/badpenguin"
XPKG_WORKDIR="/opt/badpenguin/workdir"
XPKG_VERSION="2.0.3"
XPKG_CATEGORIES="base devel"

# Directories
mkdir -p -m 755 /etc/badpenguin/bpp


# BADPENGUIN.CONF
echo "> updating $XDIST_VERSION"
touch $XDIST_VERSION
. $XDIST_VERSION
> $XDIST_VERSION
MAJOR=0
MINOR=9
PATCHLEVEL=1
echo "NAME=\"Bad Penguin\"" 	>> $XDIST_VERSION
echo "COMPATIBLE=\"Debian\"" 	>> $XDIST_VERSION
echo "MAJOR=$MAJOR" 		>> $XDIST_VERSION
echo "MINOR=$MINOR"		>> $XDIST_VERSION
echo "PATCHLEVEL=$PATCHLEVEL"	>> $XDIST_VERSION
echo "VERSION=\"$MAJOR.$MINOR.$PATCHLEVEL\"" >> $XDIST_VERSION
echo "CODENAME=\"Waters\""	>> $XDIST_VERSION
echo "RELEASEDATE=\"`date`\"" 	>> $XDIST_VERSION


# PACKAGE.CONF
if [ ! -f $XPACKAGE_CONF ]; then
  echoc YELLOW "> creating $XPACKAGE_CONF"
  mkdir -p `dirname $XPACKAGE_CONF`
  > $XPACKAGE_CONF
else
  echo "- reading $XPACKAGE_CONF"
  . "$XPACKAGE_CONF"
fi
# Check Main vars
if [ "$DIST_VERSION" = "" ]; then
  echoc YELLOW "> setting DIST_VERSION"
  echo "DIST_VERSION=\"$XDIST_VERSION\"" >>"$XPACKAGE_CONF"
  DIST_VERSION="$XDIST_VERSION"
fi
if [ "$PACKAGE_CONF" = "" ]; then
  echoc YELLOW "> setting PACKAGE_CONF"
  echo "PACKAGE_CONF=\"$XPACKAGE_CONF\"" >>"$XPACKAGE_CONF"
  PACKAGE_CONF="$XPACKAGE_CONF"
fi
# Check vars
if [ "$PKG_PKGDEPOT" = "" ]; then
  echoc YELLOW "> setting PKG_PKGDEPOT"
  echo "PKG_PKGDEPOT=\"$XPKG_PKGDEPOT\"" >>"$XPACKAGE_CONF"
  PKG_PKGDEPOT="$XPKG_PKGDEPOT"
fi
if [ "$PKG_SRCDEPOT" = "" ]; then
  echoc YELLOW "> setting PKG_SRCDEPOT"
  echo "PKG_SRCDEPOT=\"$XPKG_SRCDEPOT\"" >>"$XPACKAGE_CONF"
  PKG_SRCDEPOT="$XPKG_SRCDEPOT"
fi
if [ "$PKG_PORTSDIR" = "" ]; then
  echoc YELLOW "> setting PKG_PORTSDIR"
  echo "PKG_PORTSDIR=\"$XPKG_PORTSDIR\"" >>"$XPACKAGE_CONF"
  PKG_PORTSDIR="$XPKG_PORTSDIR"
fi
if [ "$PKG_SPOOLDIR" = "" ]; then
  echoc YELLOW "> setting PKG_SPOOLDIR"
  echo "PKG_SPOOLDIR=\"$XPKG_SPOOLDIR\"" >>"$XPACKAGE_CONF"
  PKG_SPOOLDIR="$XPKG_SPOOLDIR"
fi
if [ "$PKG_VERSION" = "" ]; then
  echoc YELLOW "> setting PKG_VERSION"
  echo "PKG_VERSION=\"$XPKG_VERSION\"" >>"$XPACKAGE_CONF"
  PKG_VERSION="$XPKG_VERSION"
fi
if [ "$PKG_VERSION" != "$XPKG_VERSION" ]; then
  echoc GREEN "> updating PKG_VERSION from $PKG_VERSION to $XPKG_VERSION"
  echo "PKG_VERSION=\"$XPKG_VERSION\"" >>"$XPACKAGE_CONF"
  PKG_VERSION="$XPKG_VERSION"
fi
if [ "$PKG_WORKDIR" = "" ]; then
  echoc GREEN "> setting PKG_WORKDIR"
  echo "PKG_WORKDIR=\"${XPKG_WORKDIR}\"" >>"$XPACKAGE_CONF"
  PKG_WORKDIR="$XPKG_WORKDIR"
fi
if [ "$PKG_CATEGORIES" != "$XPKG_CATEGORIES" ]; then
  echoc GREEN "> setting PKG_CATEGORIES"
  echo "PKG_CATEGORIES=\"${XPKG_CATEGORIES}\"" >>"$XPACKAGE_CONF"
  PKG_CATEGORIES="$XPKG_CATEGORIES"
fi
if [ "$SOURCE_DEPOTS" != "$XSOURCE_DEPOTS" ]; then
  echoc GREEN "> updating SOURCE_DEPOTS from $SOURCE_DEPOTS to $XSOURCE_DEPOTS"
  echo "SOURCE_DEPOTS=\"$XSOURCE_DEPOTS\"" >>"$XPACKAGE_CONF"
  SOURCE_DEPOTS="$XSOURCE_DEPOTS"
fi

# DIRECTORIES
echo "> checking directories ..."
for i in "$PKG_PKGDEPOT" "$PKG_SRCDEPOT" "$PKG_PORTSDIR" "$PKG_SPOOLDIR"  "$SOURCE_DEPOTS"  "$PKG_WORKDIR"
do
  if [ ! -d "$i" ]; then
    echoc YELLOW "> making dir $i"
    mkdir -p $i
  else
    echo "- directory ok: $i"
  fi
done



add_pkg_depot () {
  grep -q "^$1" "$XPACKAGE_DEPOTS"
  if [ $? -ne 0 ]; then
    echo "> adding pkgdepot '$1'"
    case $1 in
      ftp:*|http:*)
        echo "$1   ${PKG_SPOOLDIR}/depot.`tempname`.db   0" >> "${XPACKAGE_DEPOTS}"
        ;;
      *)
        echo "$1" >> "${XPACKAGE_DEPOTS}"
        ;;
    esac
  fi
}


# PACKAGE.DEPOTS
if [ ! -f $XPACKAGE_DEPOTS ]; then
  echoc YELLOW "> creating $XPACKAGE_DEPOTS"
  mkdir -p `dirname $XPACKAGE_DEPOTS`
  > $XPACKAGE_DEPOTS
fi
# PKGDEPOT - add lines in order
add_pkg_depot "/cdrom/badpenguin/packages"
add_pkg_depot "$PKG_PKGDEPOT"
add_pkg_depot "ftp://ftp3.linux.it/pub/Linux/Badpenguin/packages"

#ok
echoc GREEN "! done."
