-
Pietro Incardona authoredPietro Incardona authored
update_openfpm 3.48 KiB
source script/show_solutions
function update_openfpm()
{
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"
rm tmp_brc
wget -O tmp_brc $url_update
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
git remote set-url origin "$repo"
git remote update
n_commit=$(git rev-list --count origin/master...master)
if [ $n_commit -eq 0 ]; then
echo -e "\033[1m There are no-updates \033[0m"
return
fi
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"
fi
if [ x"$for_opt" != x"" ]; then
for_opt="-c $for_opt"
fi
if [ x"$1" == x"update" ]; then
git stash -u
git submodule foreach 'git stash'
git pull --no-edit origin master
else
#### 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
fi
rm -rf {,.[!.],..?}*
echo "Cloning Repo: $repo"
git clone $repo .
fi
#### Check if we have to force upgrade
force_up=$(cat force_upgrade)
if [ x"$1" == x"update" -a x"$force_up" == x"" ]; then
source $HOME/openfpm_vars
sh autogen.sh
# Reconfigure
conf_command=$(cat config.log)
$conf_command
if [ $? -ne 0 ]; then
echo -e "Update summary\033[91;5;1m FAILED \033[0m"
return
fi
make
if [ $? -ne 0 ]; then
echo -e "Update summary\033[91;5;1m FAILED \033[0m"
return
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"
return
fi
else
#### Remove .deps for fresh install
./install $dir_prev_inst $for_opt
if [ $? -ne 0 ]; then
echo -e "Upgrade summary\033[91;5;1m FAILED \033[0m"
return
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"
rm force_upgrade
return
fi
fi
## end
}