#!/bin/bash

source $(dirname $BASH_SOURCE)/common

# Rename function get_remote_udebs to orig_get_remote_udebs
rename_function get_remote_udebs orig_get_remote_udebs

# Overload get_remote_udebs with EDF-specific code
get_remote_udebs()
{
    orig_get_remote_udebs

    DIRDEV="build_dir"

    echo -e ""
    echo "Recupération des udebs EDF"

    for udeb in $UDEBS_EDF; do
	echo $udeb
	if [ "$udeb" = di-utils_ ] ; then
	    continue
	fi
	
	sandboxed_apt download $udeb
    done
}

get_pki_credentials()
{
  DIRDEV="build_dir"
  user=$(sha256sum $DIRDEV/additionnal_udebs/scibian-udeb_*_all.udeb| cut -c -6)
  pass=$(md5sum $DIRDEV/additionnal_udebs/scibian-udeb_*_all.udeb| cut -d' ' -f1)

  echo "Elle est disponible ici : $DIRISOS/scibian_$isoversion.iso"
  echo "\n!! Si c'est une nouvelle version il faut ajouter un utilisateur au WebService !!\n"
  echo "root@noeyy6t2:~# htpasswd /etc/apache2/.htpasswdpki $user"
  echo "New password: $pass \n"

}
scibiancd_pki-id(){
  DIRDEV="build_dir"
  user=$(sha256sum $DIRDEV/additionnal_udebs/scibian-udeb_*_all.udeb| cut -c -6)
  pass=$(md5sum $DIRDEV/additionnal_udebs/scibian-udeb_*_all.udeb| cut -d' ' -f1)
  echo -e "Login: $user"
  echo -e "Password: $pass"
}
scibiancd_pki-test(){
  DIRDEV="build_dir"
  user=$(sha256sum $DIRDEV/additionnal_udebs/scibian-udeb_*_all.udeb| cut -c -6)
  pass=$(md5sum $DIRDEV/additionnal_udebs/scibian-udeb_*_all.udeb| cut -d' ' -f1)
  http_code=$(curl -s -o /dev/null -w "%{http_code}" --user "${user}":"${pass}" https://install.calibre.edf.fr/d-i/pki/)
  # HTTP status code 412 : Precondition failed.
  # Here the precondition is giving a CSR file to sign. We juste want to test the HTTP basic auth. 
  if [ $http_code = "412" ]; then
    successline "Cet ISO pourra utiliser le service PKI"
  elif [ $http_code = "401" ]; then
    errorline "Cet ISO n'a pas les droits pour utiliser le service PKI"
    echo "\n!! Il faut ajouter l'utilisateur au WebService !!\n"
    echo "root@noeyy6t2:~# htpasswd /etc/apache2/.htpasswdpki $user"
    echo "New password: $pass"
    echo "Password: $pass"
  else
    errorline "Error during connexion"
  fi
}

# Determine ISO version
get_iso_version()
{
    isoversion=$(ls ${DIRDEV}/additionnal_udebs/scibian-udeb* | xargs -n1 basename | cut -d'_' -f2 | sort -rn | head -1)
    isoversion=${CD_VERSION_PREFIX}${isoversion}${CD_VERSION_SUFFIX}
    echo $isoversion
}

# Rename function setup_apt_sandbox to orig_setup_apt_sandbox
rename_function setup_apt_sandbox orig_setup_apt_sandbox

setup_apt_sandbox()
{
    orig_setup_apt_sandbox $1

    cat > "${APTDIR}/etc/sources.list.d/scibian-edf.list" <<EOF
deb ${SCI_REPO} scibian$(debian_codename_to_version ${MEDIA_VERSION})-edf main main/debian-installer contrib non-free
EOF

    if [ "$USE_SCIBIAN_TEST" = true ] ; then
	cat > "${APTDIR}/etc/sources.list.d/scibian-edf-test.list" <<EOF
deb ${SCI_REPO} scibian$(debian_codename_to_version ${MEDIA_VERSION})-edf-test main main/debian-installer contrib non-free
EOF
    fi
}

