Skip to content
Snippets Groups Projects
update_openfpm 3.37 KiB
Newer Older
#! /bin/bash

source script/show_solutions

function update_openfpm()
{
Pietro Incardona's avatar
Pietro Incardona committed
  echo -e "\033[1;5;31m WARNING: the update will destroy any changes you made in the OpenFPM source code  \033[0m"
  
  possible_solutions "${commands[@]}"

  ## Get the name of the updating branch

  url_update=$(cat $1)
  echo "Checking for update from $url_update"
Pietro Incardona's avatar
Pietro Incardona committed
  rm tmp_brc
  wget -O tmp_brc $url_update
Pietro Incardona's avatar
Pietro Incardona committed
  repo=$(cat tmp_brc)
  echo "Update repo $repo"
  if [ x"$repo" == x"" ]; then
    echo -e "\033[1m There are no-updates \033[0m"
    return
  fi


Pietro Incardona's avatar
Pietro Incardona committed
  git remote set-url origin "$repo"
Pietro Incardona's avatar
Pietro Incardona committed
  git remote update
  n_commit=$(git rev-list --count origin/master...master)
Pietro Incardona's avatar
Pietro Incardona committed
  if [ $n_commit -eq 0 ]; then
    echo -e "\033[1m There are no-updates \033[0m"
    return
Pietro Incardona's avatar
Pietro Incardona committed
  dir_prev_inst=$(cat dependencies_dir)
  for_opt=$(cat foward_options)
  if [ x"$dir_prev_inst" != x"" ]; then
    dir_prev_inst="-i $dir_prev_inst"
Pietro Incardona's avatar
Pietro Incardona committed
  fi
Pietro Incardona's avatar
Pietro Incardona committed
  if [ x"$for_opt" != x"" ]; then
    for_opt="-c $for_opt"
Pietro Incardona's avatar
Pietro Incardona committed
  if [ x"$1" == x"update" ]; then
    git stash -u
    git submodule foreach 'git stash'
Pietro Incardona's avatar
Pietro Incardona committed
    git pull origin master
  else

Pietro Incardona's avatar
Pietro Incardona committed
    #### New version require new version of CMAKE

    dgc_major=$(cmake --version | grep "cmake version" | sed 's/.*\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\1/g')
    dgc_middle=$(cmake --version | grep "cmake version" | sed 's/.*\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\2/g')
    dgc_minor=$(cmake --version | grep "cmake version" | sed 's/.*\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\3/g')

    cmake_result=0
    if [ $dgc_major -gt 3 ]; then
        echo -e "cmake $dgc_major.$dgc_middle.$dgc_minor \033[92;1m SUCCESS \033[0m"
	cmake_result=1
    elif [ $dgc_major -lt 3 ]; then
        echo -e "cmake $dgc_major.$dgc_middle.$dgc_minor \033[91;5;1m FAILED \033[0m your cmake $dgc_major.$dgc_middle;$dgc_minor is too old, 3.8.X or higher is required"
    elif [ $dgc_middle -gt 8  ]; then
        echo -e "cmake $dgc_major.$dgc_middle.$dgc_minor \033[92;1m SUCCESS \033[0m"
	cmake_result=1
    elif [ $dgc_middle -lt 8 ]; then
        echo -e "cmake $dgc_major.$dgc_middle.$dgc_minor \033[91;5;1m FAILED \033[0m your cmake $dgc_major.$dgc_middle;$dgc_minor is too old, 3.8.X or higher is required"
    else
        echo -e "cmake $dgc_major.$dgc_middle.$dgc_minor \033[92;1m SUCCESS \033[0m"
	cmake_result=1
    fi

    if [ $cmake_result -ne 0 ]; then
      echo -e "Upgrade summary\033[91;5;1m FAILED \033[0m"
      return
Pietro Incardona's avatar
Pietro Incardona committed
    rm -rf {,.[!.],..?}*
    echo "Cloning Repo: $repo"
    git clone $repo .
Pietro Incardona's avatar
Pietro Incardona committed
  fi
Pietro Incardona's avatar
Pietro Incardona committed
  #### Check if we have to force upgrade
  force_up=$(cat force_upgrade)

Pietro Incardona's avatar
Pietro Incardona committed
  if [ x"$1" == x"update" -a x"$force_up" == x"" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
    source $HOME/openfpm_vars
    sh autogen.sh
    ./config.status
    if [ $? -ne 0 ]; then
      echo -e "Update summary\033[91;5;1m FAILED \033[0m"
    fi
    make
    if [ $? -ne 0 ]; then
      echo -e "Update summary\033[91;5;1m FAILED \033[0m"
    else
      echo -e "Update summary\033[92;5;1m SUCCEED \033[0m"
      echo -e "To make the update active do: \033[1m make install \033[0m"
    fi
Pietro Incardona's avatar
Pietro Incardona committed
  else
Pietro Incardona's avatar
Pietro Incardona committed
    #### Remove .deps for fresh install
Pietro Incardona's avatar
Pietro Incardona committed
    ./install $dir_prev_inst $for_opt
    if [ $? -ne 0 ]; then
      echo -e "Upgrade summary\033[91;5;1m FAILED \033[0m"
    else
      echo -e "Upgrade summary\033[92;5;1m SUCCEED \033[0m"
      echo -e "To make the upgrade active do: \033[1m make install \033[0m"
Pietro Incardona's avatar
Pietro Incardona committed
      rm force_upgrade