#!/bin/bash

DLDIR="https://ftp.halpanet.org/source"
cd $(dirname $0) ; CWD=$(pwd)
find . -maxdepth 1 -type l -exec rm {} +

. ./kernel-tom.info

# Version -libre ?
libre=no
[[ -n "$(echo $LOCALVERSION | grep libre)" ]] && libre=yes

# $EXTRAVERSION est nécessaire uniquement pour les versions rc.
# Il n'existe pas de version -libre rc.
if [ -n "$EXTRAVERSION" ] && [ "$libre" = "yes" ]; then
  echo "Une version -libre ne peut pas être une version rc."
  exit 1
fi

# Extension des sources
if [ -n "$EXTRAVERSION" ] && [ "$SUBLEVEL" = "0" ]; then
  ext="tar.gz"

elif [ -n "$EXTRAVERSION" ] && [ "$SUBLEVEL" != "0" ]; then
  ext="tar.zst"
  pext="gz"

else
  ext="tar.zst"
  pext="xz"

fi

# On va dans /var/cache/sbopkg/linux
[[ ! -d /var/cache/sbopkg/linux ]] && mkdir -p /var/cache/sbopkg/linux
cd /var/cache/sbopkg/linux

# On télécharge et fait un lien dans le rep $CWD.
if [ "$libre" = "no" ]; then

  # On télécharge linux-6.11-rc1.tar.gz
  if [ -n $EXTRAVERSION ] && [ "$SUBLEVEL" = "0" ]; then
    [[ ! -f linux-${VERSION}.${PATCHLEVEL}${EXTRAVERSION}.${ext} ]] && wget -c ${DLDIR}/linux/linux-${VERSION}.${PATCHLEVEL}${EXTRAVERSION}.${ext}
    ( cd $CWD ; ln -fs /var/cache/sbopkg/linux/linux-${VERSION}.${PATCHLEVEL}${EXTRAVERSION}.${ext} )

  # On télécharge linux-6.11.tar.zst
  else
    [[ ! -f linux-${VERSION}.${PATCHLEVEL}.${ext} ]] && wget -c ${DLDIR}/linux/linux-${VERSION}.${PATCHLEVEL}.${ext}
    ( cd $CWD ; ln -fs /var/cache/sbopkg/linux/linux-${VERSION}.${PATCHLEVEL}.${ext} )
  fi
  
  # On télécharge le patch
  if [ "$SUBLEVEL" != "0" ]; then
    [[ ! -f patch-${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}.${pext} ]] && wget -c ${DLDIR}/linux/patch-${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}.${pext}
    ( cd $CWD ; ln -fs /var/cache/sbopkg/linux/patch-${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}.${pext} )

  # On télécharge le patch précédent si celui demandé est une version rc.  
    if [ -n "$EXTRAVERSION" ]; then
      let PREVSUBLEVEL=$SUBLEVEL-1
      [[ ! -f patch-${VERSION}.${PATCHLEVEL}.${PREVSUBLEVEL}.xz ]] && wget -c ${DLDIR}/linux/patch-${VERSION}.${PATCHLEVEL}.${PREVSUBLEVEL}.xz
      ( cd $CWD ; ln -fs /var/cache/sbopkg/linux/patch-${VERSION}.${PATCHLEVEL}.${PREVSUBLEVEL}.xz )
    fi
  fi


elif [ "$libre" = "yes" ]; then

  [[ ! -f linux-libre-${VERSION}.${PATCHLEVEL}-gnu.${ext} ]] && wget -c ${DLDIR}/linux-libre/linux-libre-${VERSION}.${PATCHLEVEL}-gnu.${ext}
  ( cd $CWD ; ln -fs /var/cache/sbopkg/linux/linux-libre-${VERSION}.${PATCHLEVEL}-gnu.${ext} )

  if [ "$SUBLEVEL" != "0" ]; then
    [[ ! -f patch-${VERSION}.${PATCHLEVEL}-gnu-${VERSION}.${PATCHLEVEL}.${SUBLEVEL}-gnu.${pext} ]] && wget -c ${DLDIR}/linux-libre/patch-${VERSION}.${PATCHLEVEL}-gnu-${VERSION}.${PATCHLEVEL}.${SUBLEVEL}-gnu.${pext}
    ( cd $CWD ; ln -fs /var/cache/sbopkg/linux/patch-${VERSION}.${PATCHLEVEL}-gnu-${VERSION}.${PATCHLEVEL}.${SUBLEVEL}-gnu.${pext} )

   fi
fi
