#!/bin/sh
#
### BEGIN INIT INFO
# Provides:          fliwi-install-base-packages
# Required-Start:    $local_fs $remote_fs fliwi-initialise
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Installs some base packages for fliwi
# Description:       This installs some base packages that filwi requires and
#                    which can not be installed inside the initial chroot.
### END INIT INFO

NAME=fliwi-install-base-packages

. /lib/lsb/init-functions

do_start()
{
  echo ""

  #### Always install some basic packages
  packages="fliwi-dependencies"
  apt_get_update_needed=1
  for package in $packages
  do
    echo "Checking if package $package is installed..."
    if [ $(dpkg --get-selections | grep -c -E -e "^$package[[:space:]]+install$") -le 0 ]; then
      echo "INFO: Package $package is not installed..."
      if [ $apt_get_update_needed -eq 1 ]; then
        echo "INFO: Updating package informations..."
        apt-get update
        if [ $? -ne 0 ]; then
          echo "ERROR: Failed to update package informations" 1>&2
          break
        fi
        apt_get_update_needed=0
      fi
      echo "INFO: Installing package $package..."
      DEBIAN_FRONTEND=noninteractive apt-get --yes install $package
      if [ $? -ne 0 ]; then
        echo "WARNING: Failed to install $package" 1>&2
        continue
      fi
    else
      echo "INFO: Package $package is installed"
      continue
    fi
  done

  return 0
}


case "$1" in
  start|restart)
    log_begin_msg "Caring about Fliwi base-packages..."
    do_start
    log_end_msg $?
  ;;

  reload|force-reload|force-stop|status)
    echo "Error: argument '$1' not supported" >&2
    exit 3
  ;;

  stop)
  ;;

  *)
    echo "Usage: /etc/init.d/$NAME {start|stop|restart}"
    exit 3
  ;;
esac

exit 0
