#!/bin/bash
#
# Instala el repositorio APT Ceibal y ejecuta por primera vez ceibal-update 
# para instalar las actualizaciones existentes.
#

# El script aborta si cualquiera de los comandos falla. 
set -e

unset CDPATH

if [[ $UID -ne 0 ]]; then 
    echo "El script debe ser ejecutado como root." >&2
    exit 1;
fi

mkdir -p /var/spool/ceibal-update-check/

# Copiar scripts de actualizacion
cp ceibal-loggly /usr/bin/
chmod 755 /usr/bin/ceibal-loggly

cp ceibal-update-* /usr/sbin/
chmod 755 /usr/sbin/ceibal-update-*

cp ceibal-update-check /usr/sbin/
chmod 755 /usr/sbin/ceibal-update-check

cp ceibal-update-fix /usr/sbin/
chmod 755 /usr/sbin/ceibal-update-fix

cp ceibal-update-configure-repo-* /usr/sbin/
chmod 755 /usr/sbin/ceibal-update-configure-repo-*

# Configurar opciones especiales del repositorio
mkdir -p /etc/apt/preferences.d/
chmod 755 /etc/apt/preferences.d/
cp 90ceibal.pref /etc/apt/preferences.d/
chmod 644 /etc/apt/preferences.d/90ceibal.pref

# Crear directorio para pedidos de actualizacion creados
# por otros paquetes
mkdir -p /etc/ceibal-update.d/
	
# Copiar archivos a doc
mkdir -p /usr/share/doc/ceibal-repo-update/
chmod 755 /usr/share/doc/ceibal-repo-update/
cp apt-ceibal.gpg.key /usr/share/doc/ceibal-repo-update/
cp ceibal.list /usr/share/doc/ceibal-repo-update/
chmod 644 /usr/share/doc/ceibal-repo-update/*
	
# Instalar clave GPG del repositorio
cat /usr/share/doc/ceibal-repo-update/apt-ceibal.gpg.key | apt-key add - > /dev/null

# Configurar el repositorio
RELEASE=`lsb_release -c -s`
case $RELEASE in
utopic|trusty)
    CODENAME=tero
    ;;
precise)
    CODENAME=tatu
    ;;
esac

if [ "${CODENAME}" != "" ]; then
    cp /usr/share/doc/ceibal-repo-update/ceibal.list /etc/apt/sources.list.d/ceibal.list
    chmod 644 /etc/apt/sources.list.d/ceibal.list
    sed -i -e "s,//CODENAME//,${CODENAME}," "/etc/apt/sources.list.d/ceibal.list"
else
    logger "No se pudo determinar el nombre de la distribucion: ${RELEASE}"
    exit 1
fi

# Copiar script de cron para actualizaciones
cp debian/ceibal-repo-update.cron.d /etc/cron.d/ceibal-repo-update
chmod 644 /etc/cron.d/ceibal-repo-update

# Copiar librerias
mkdir -p /usr/lib/ceibal-repo-update
chmod 755 /usr/lib/ceibal-repo-update
cp utils /usr/lib/ceibal-repo-update/
chmod 755 /usr/lib/ceibal-repo-update/utils

# Crear sn de instalacion
if [ ! -f '/etc/ceibal-repo-update-sn' ]; then
    cat /proc/sys/kernel/random/uuid > /etc/ceibal-repo-update-sn 2>&1
fi
