#!/bin/sh

## Set up apt-tree
DEST=/tmp/language-installer

APTTreeTemplate="etc/apt var/lib/apt/lists/partial var/lib/dpkg var/cache/apt/archives/partial"

mkdir -p $DEST

for d in $APTTreeTemplate; do
    mkdir -p $DEST/$d
done

cat > $DEST/etc/apt/sources.list << EOF
deb file:///archive /
EOF

APT_OPTIONS="-o Dir=$DEST"

apt-get $APT_OPTIONS update
## Done with apt-tree

LANGCODE="${LANG%%_*}"
LANGCODE="${LANGCODE%%.*}"
LANGCODE="${LANGCODE%%@*}"

LOCALECODE="${LANG%%.*}"
LOCALECODE="${LOCALECODE%%@*}"

MAYBE_PKGS="language-support-$LANGCODE language-pack-$LANGCODE language-pack-gnome-$LANGCODE language-pack-kde-$LANGCODE"

# Translate standard language codes to Adobe language codes
if   [ "$LANGCODE" = "ca" ];      then ADOBE_LANG="esp" # Catalan
elif [ "$LANGCODE" = "da" ];      then ADOBE_LANG="dan" # Danish
elif [ "$LANGCODE" = "de" ];      then ADOBE_LANG="deu" # German
elif [ "$LANGCODE" = "es" ];      then ADOBE_LANG="esp" # Spanish
elif [ "$LANGCODE" = "eu" ];      then ADOBE_LANG="esp" # Basque
elif [ "$LANGCODE" = "fi" ];      then ADOBE_LANG="suo" # Finnish
elif [ "$LANGCODE" = "fr" ];      then ADOBE_LANG="fra" # French
elif [ "$LANGCODE" = "gl" ];      then ADOBE_LANG="esp" # Galician
elif [ "$LANGCODE" = "it" ];      then ADOBE_LANG="ita" # Italian
elif [ "$LANGCODE" = "ja" ];      then ADOBE_LANG="jpn" # Japanese
elif [ "$LANGCODE" = "ko" ];      then ADOBE_LANG="kor" # Korean
elif [ "$LANGCODE" = "nl" ];      then ADOBE_LANG="nld" # Dutch
elif [ "$LANGCODE" = "no" ];      then ADOBE_LANG="nor" # Norwegian
elif [ "$LANGCODE" = "pt" ];      then ADOBE_LANG="ptb" # Portuguese
elif [ "$LANGCODE" = "sv" ];      then ADOBE_LANG="sve" # Swedish
elif [ "$LOCALECODE" = "zh_CN" ]; then ADOBE_LANG="chs" # Chinese Simplified
elif [ "$LOCALECODE" = "zh_TW" ]; then ADOBE_LANG="cht" # Chinese Traditional
elif [ "$LANGCODE" = "zh" ];      then ADOBE_LANG="chs" # Chinese
else                                   ADOBE_LANG="enu"
fi
MAYBE_PKGS="adobereader-$ADOBE_LANG $MAYBE_PKGS"

# Make sure the packages are in the apt cache.  If we try to install one that
# isn't, the apt-get line will fail.  So we filter here.
PKGS=""
for pkg in $MAYBE_PKGS; do
  # It would be nice if apt-cache returned an error code, but this will do
  if [ "`apt-cache $APT_OPTIONS search "^$pkg$"`" != "" ]; then
    PKGS="$PKGS $pkg"
  fi
done

apt-get $APT_OPTIONS install -y --force-yes --ignore-missing $PKGS

# Also run any hooks that want to run after oem-config, but before we log in
export APT_OPTIONS
export LANGCODE
export LOCALECODE
for hook in /usr/share/language-installer/hooks/*; do
  if [ -x "$hook" ]; then
    "$hook" || true
  fi
done

rm -rf /archive
rm -rf $DEST

exit 0
