#!/bin/sh
# Filename:      install-packages-useful
# Purpose:       install useful packages on grml-system
# Authors:       grml-team (grml.org), Venkat "robotgeek" Raghavan  <venkatraghavan@gmail.com>, (c) Michael Prokop <mika@grml.org>
# Bug-Reports:   see http://grml.org/bugs/
# License:       This file is licensed under the GPL v2.
# Latest change: Son Jn 07 14:25:54 CET 2007 [mika]
################################################################################
# Some ideas taken from Ubuntu's EasyUbunt and EasyBreezy
# https://launchpad.net/products/easyubuntu/
# http://www.giannaros.org/buntu/easybreezy-0.35.tar.gz
################################################################################

if [ $UID != 0 ]; then
   echo "Error: Please run this script as user root. Exiting"
   exit -1
fi

if [[ $1 == '-force' ]]; then
  echo "Option force detected - installing all packages without any further questions."
  FORCE="-y --allow-unauthenticated"
fi

LANG=C
LC_ALL=C
PN=$(basename "$0")
TMPFILE=$(mktemp)
TMPFILE2=$(mktemp)
ERRORFILE=$(mktemp)
APTFILE=$(mktemp)
SOURCES_LIST='/etc/apt/sources.list.useful'

# main program
interface(){
  dialog --title "$PN" \
        --single-quoted \
        --checklist "Please select the software packages you would like to install." 0 0 0 \
        "Multimedia codecs"       "Install commonly needed audio and video codecs" OFF \
        "Macromedia Flash Player" "Install the Flash player and Firefox Plugin" OFF \
        "MS TTF Fonts"            "Install the MS TTF fonts" OFF \
        "ATI driver"              "Install ATI binary driver for Xorg" OFF \
        "Nvidia driver"           "Install Nvidia binary driver for Xorg" OFF \
        "Acrobat Reader"          "Install Adobe Reader and Firefox plugins" OFF \
        "Multimedia Editing"      "Install Audio (Audacity) Video (Kino) and ID3 Tag (Easytag) editors" OFF \
        "DVD Ripper"              "Install DVD ripper (dvdrip)" OFF \
        "Mplayer"                 "Install mplayer from debian-multimedia.org" OFF \
        "Media Players"           "Install Totem-xine and VLC" OFF \
        "Opera Browser"           "Install Opera Web Browser" OFF \
        "Sun Java 5 JDK"          "Install Sun's Java version 5 Development Kit" OFF \
        "Sun Java 5 JRE"          "Install Sun's Java version 5 Runtime Environment" OFF \
        "Sun Java 6 JDK"          "Install Sun's Java version 6 Development Kit" OFF \
        "Sun Java 6 JRE"          "Install Sun's Java version 6 Runtime Environment" OFF \
  2>$TMPFILE
retval=$?
choice=`cat $TMPFILE`

if echo $choice | grep -q "Multimedia codecs"; then
    echo "sox" >> $TMPFILE2
    echo "ffmpeg" >> $TMPFILE2
    echo "vorbis-tools" >> $TMPFILE2
    echo "w32codecs" >> $TMPFILE2
    echo "libdvdcss2" >> $TMPFILE2
    echo "libdvdread3" >> $TMPFILE2
    echo "libdvdnav4" >> $TMPFILE2
    echo "libxvidcore4" >> $TMPFILE2
    echo "deb     http://www.debian-multimedia.org sid main" >>$APTFILE
fi

if echo $choice | grep -q "Macromedia Flash Player"; then
    echo "flashplugin-nonfree" >> $TMPFILE2
#    echo "swf-player" >> $TMPFILE2
fi

if echo $choice | grep -q "MS TTF Fonts"; then
    echo "msttcorefonts" >> $TMPFILE2
fi

if echo $choice | grep -q "ATI driver"; then
    echo "fglrx-control" >> $TMPFILE2
    echo "fglrx-driver" >> $TMPFILE2
    echo "fglrx-kernel-$(uname -r)" >> $TMPFILE2
fi

if echo $choice | grep -q "Nvidia driver"; then
    echo "nvidia-glx" >> $TMPFILE2
    echo "nvidia-kernel-common" >> $TMPFILE2
    echo "nvidia-settings" >> $TMPFILE2
    echo "nvidia-kernel-$(uname -r)" >> $TMPFILE2
fi

if echo $choice | grep -q "Acrobat Reader"; then
    echo "acroread" >> $TMPFILE2
    echo "mozilla-acroread" >> $TMPFILE2
    echo "deb     http://www.debian-multimedia.org sid main" >>$APTFILE
fi

if echo $choice | grep -q "Multimedia Editing"; then
    echo "vorbis-tools" >> $TMPFILE2
    echo "sox" >> $TMPFILE2
    echo "ffmpeg" >> $TMPFILE2
    echo "imagemagick" >> $TMPFILE2
    echo "toolame" >> $TMPFILE2
    echo "mpeg2dec" >> $TMPFILE2
    echo "a52dec" >> $TMPFILE2
    echo "kino" >> $TMPFILE2
    echo "kinoplus" >> $TMPFILE2
    echo "kino-timfx" >> $TMPFILE2
    echo "kino-dvtitler" >> $TMPFILE2
    echo "audacity" >> $TMPFILE2
    echo "easytag" >> $TMPFILE2
fi

if echo $choice | grep -q "DVD Ripper"; then
    echo "dvdrip" >> $TMPFILE2
    echo "vcdimager" >> $TMPFILE2
    echo "cdrdao" >> $TMPFILE2
    echo "subtitleripper" >> $TMPFILE2
    echo "deb     http://www.debian-multimedia.org sid main" >>$APTFILE
fi

if echo $choice | grep -q "Mplayer"; then
    echo "mplayer-nogui" >> $TMPFILE2
#    echo "mozilla-mplayer" >> $TMPFILE2
    echo "deb     http://www.debian-multimedia.org sid main" >>$APTFILE
fi

if echo $choice | grep -q "Media Players"; then
    echo "vlc" >> $TMPFILE2
    echo "vlc-plugin-alsa" >> $TMPFILE2
    echo "wxvlc" >> $TMPFILE2
fi

if echo $choice | grep -q "Opera Browser"; then
    echo "opera" >> $TMPFILE2
    echo "deb http://deb.opera.com/opera sid non-free" >> $APTFILE
fi

#if echo $choice | grep -q "Wine"; then
#    echo "wine" >> $TMPFILE2
#    echo "deb http://wine.sourceforge.net/apt/ binary/" >> $APTFILE
#fi

if echo $choice | grep -q "Sun Java 5 JDK"; then
    echo "sun-java5-jdk" >> $TMPFILE2
fi

if echo $choice | grep -q "Sun Java 5 JRE"; then
    echo "sun-java5-jre" >> $TMPFILE2
fi

if echo $choice | grep -q "Sun Java 6 JDK"; then
    echo "sun-java6-jdk" >> $TMPFILE2
fi

if echo $choice | grep -q "Sun Java 6 JRE"; then
    echo "sun-java6-jre" >> $TMPFILE2
fi

case $retval in
  0)
    ;;
  1)
    echo "Exiting as Cancel pressed.";
    exit 1;;
  255)
    echo "Esc pressed, exiting.";
    exit 1;;
  *)
    echo "Unexpected return code: $retval (ok would be 0)"
    exit 1;;
esac
}

interface

if [[ `cat $TMPFILE2 | tr -d '\n'` == '' ]] ; then
  dialog --title "$PN" --msgbox "No packages(s) selected." 0 0
else
  echo "Starting installation of selected packages."
  echo
  echo "Creating $SOURCES_LIST and running apt-get update..."
  echo

  cat >$SOURCES_LIST <<EOT
deb     http://deb.grml.org/ grml-stable  main
deb     http://ftp.de.debian.org/debian        unstable        main contrib non-free
EOT
  cat $APTFILE >> $SOURCES_LIST

  apt-get $FORCE -o Dir::Etc::SourceList=$SOURCES_LIST update 2>>$ERRORFILE

  echo
  echo "Running apt-get install for selected packages..."
  echo
  RC=''
  apt-get $FORCE -o Dir::Etc::SourceList=$SOURCES_LIST install `cat $TMPFILE2` 2>>$ERRORFILE && RC=0

  if [ -n "$RC" ] ; then
     dialog --title "$PN" --msgbox "Finished installation." 0 0
  else
     dialog --title "$PN" --msgbox "Sorry, there was an error executing the installation of selected packages.

$(cat ${ERRORFILE})" 0 0
  fi
fi
rm -f $TMPFILE $APTFILE

## END OF FILE #################################################################
