#!/bin/bash

lastPatch="315"
vimVersion="7.2"

# download the sources
echo "
Downloading Vim ... "
wget -q -c http://ftp.vim.org/pub/vim/unix/vim-$vimVersion.tar.bz2
echo "Downloading Vim extras ... "
wget -q -c http://ftp.vim.org/pub/vim/extra/vim-$vimVersion-extra.tar.gz
echo "Downloading Vim languages ... "
wget -q -c http://ftp.vim.org/pub/vim/extra/vim-$vimVersion-lang.tar.gz

# extract the sources
echo "
Extracting Vim ... "
tar xjf vim-*.tar.bz2
echo "Extracting Vim extras ... "
tar xzf vim-*-extra.tar.gz
echo "Extracting Vim languages ... 
"
tar xzf vim-*-lang.tar.gz

# switch to the sources directory
cd vim${vimVersion:0:1}${vimVersion:2:1}

# patch the sources
for ((i=1;i<=$lastPatch;i+=1)); do

  # patches 1 to 10
  if [ $i -lt 10 ]; then
    patchFile="http://ftp.vim.org/pub/vim/patches/$vimVersion/$vimVersion.00$i" 
  else
    # patches 10 to 99
    if [ $i -lt 100 ]; then
      patchFile="http://ftp.vim.org/pub/vim/patches/$vimVersion/$vimVersion.0$i" 
    else
      # patches 100+
      patchFile="http://ftp.vim.org/pub/vim/patches/$vimVersion/$vimVersion.$i" 
    fi
  fi
  
  # the patch filename
  localFile=${patchFile:39:${#patchFile}-39}
  
  # download the patch
  echo "Downloading patch $localFile ... "
  wget -q $patchFile
  
  # apply the patch
  echo "Applying patch $localFile ... 
  "
  patch -N -s -p0 < $localFile
  
done
# end of patching

echo "Done."