From 8987c596864a8a2fd7786e6aea59cdd03904ae14 Mon Sep 17 00:00:00 2001 From: davila Date: Mon, 5 Jan 2015 17:15:43 +0100 Subject: [PATCH] #2493 creaToolsTools Feature New - NormalPrepare and Install binary CreaTools version - Linux --- Linux/installscript | 111 +----------------- Linux/scripts/CreaTools-GenerateBinTGZ.sh | 26 ++++- Linux/scripts/CreaTools-install.sh | 1 + Linux/scripts/Install-Creatools-Bin.sh | 14 +-- Linux/scripts/LocalFunctions.sh | 134 ++++++++++++++++++++++ 5 files changed, 161 insertions(+), 125 deletions(-) create mode 100644 Linux/scripts/LocalFunctions.sh diff --git a/Linux/installscript b/Linux/installscript index c8112ea..b5209a5 100755 --- a/Linux/installscript +++ b/Linux/installscript @@ -29,115 +29,8 @@ scriptDirName=$(dirname $(readlink -f $0) ) ############ Local Functions ####################################### ######################################################################### -########################################## -# check that $1 is one of $2, $3, ... -function checkVal { - local val=$1 - shift - for x in $* ; do - if [ "$val" == "$x" ] ; then - echo "true" - return - fi - done - echo "false" -} - -########################################### -function bigDisplay { - echo " ================================================================================================" - echo " ================================================================================================" - echo " ======= $1" - echo " ================================================================================================" - echo " ================================================================================================" -} - -########################################### -function checkDistrib { - local OS=$1 - - if [ "`checkVal $OS MacOS Fedora Ubuntu Mandriva`" == "false" ] ; then - echo "Operating System not supported: $OS" - echo "Currently supported system: Fedora Ubuntu MacOS" - exit 1 - fi -} - -########################################### -function getDistrib { - local OS=`uname` - - if [ "$OS" == Darwin ] ; then OS=MacOS; - elif [ "$OS" == Linux ] ; then OS=`awk 'NR==1{print $1}' /etc/issue` - else OS="" - fi - -# checkDistrib $OS - - echo $OS -} - -########################################### -function getncore { - if [ `uname` == Darwin ] ; then # MacOS - system_profiler | grep Processor | awk '$1=="Number" {print $4}' - else - cat /proc/cpuinfo | grep processor | wc -l - fi -} - -########################################### -function getbashrc { - if [ ! -f $HOME/.bashrc ] ; then - touch $HOME/.bashrc - fi - echo $HOME/.bashrc - - -# # Do it, while we are under user, not under root! # JPR -# if [ -f $HOME/.bashrc ] ; then -# echo $HOME/.bashrc -# else -# if [ -f $HOME/.profile ] ; then -# echo $HOME/.profile -# else -# echo "=============== BIG TROUBLE : neither $HOME/.bashrc nor $HOME/.profile file found" > /dev/stderr -# echo "=============== You'd better abort the program and (try to) fix the issue" > /dec/stderr -# read a # just to let the user time enough to read the message... -# fi -# fi -} - - -########################################### -function printconfig { - - echo - echo "Current Configuration:" - echo " Operating System : $OperatingSystem" - echo " Number of Cores : $corenumber" - echo " Name of the Generation Directory : $generationdir" - echo " Install Prefix for Third Party Libraries : $installPrefixThird" - echo " Install Prefix for CreaTools : $installPrefix" - echo " Boolean for Doc Generation : $docgeneration" - echo " Where do you want to get source files from : $sourcesFrom" - echo " Login User Name : $loginUserName" - echo " Login Group Name : $loginGroupName" - echo " Build type : $buildType" - echo " Gdcm version : $gdcmVersion" - echo " ITK version : $ITKVersion" - echo - -} - - -################################################################################################## -################################################################################################## -################################################################################################## -################################################################################################## -################################################################################################## -################################################################################################## +source scripts/LocalFunctions.sh configureFile="scripts/CreaTools-configure.sh" @@ -156,7 +49,7 @@ loginGroupName=`groups | awk '{print $1}'` buildType=Release gdcmVersion=GDCM1 ITKVersion=ITK3 -export ETC_BASHRC=~/.bashrc +export ETC_BASHRC=`getbashrc` function usage { diff --git a/Linux/scripts/CreaTools-GenerateBinTGZ.sh b/Linux/scripts/CreaTools-GenerateBinTGZ.sh index 2b12aa4..efcd59a 100644 --- a/Linux/scripts/CreaTools-GenerateBinTGZ.sh +++ b/Linux/scripts/CreaTools-GenerateBinTGZ.sh @@ -28,22 +28,40 @@ #if [ $UID = 0 ] #then # Set all local variables + source $PWD/scripts/LocalFunctions.sh source $PWD/scripts/CreaTools-configure.sh if [ -e $generationdir ] then cd $generationdir source creatools_install/share/creatools/Version.sh - fileTGZ=CreaTools-Release-$creatoolsMajorVersion.$creatoolsMinorVersion.$creatoolsBuildVersion-Linux.tgz + fileTGZ=CreaTools-Release-$creatoolsMajorVersion.$creatoolsMinorVersion.$creatoolsBuildVersion-`getDistrib`-`getDistribVersion`.tgz tar -cvzf $fileTGZ creatools_install thirdparty_install + echo --------- + echo scp $fileTGZ tux.creatis.insa-lyon.fr:creatools/creaTools/v$creatoolsMajorVersion.$creatoolsMinorVersion.x/$fileTGZ + scp $fileTGZ tux.creatis.insa-lyon.fr:creatools/creaTools/v$creatoolsMajorVersion.$creatoolsMinorVersion.x/$fileTGZ + echo "##" > creatools-Linux-BinVersion.sh + echo "## Generated by CreaTools-GeneratedBinTGZ.sh" >> creatools-Linux-BinVersion.sh + echo "##" >> creatools-Linux-BinVersion.sh + + echo "wget http://www.creatis.insa-lyon.fr/software/public/creatools/creaTools/v$creatoolsMajorVersion.$creatoolsMinorVersion.x/$fileTGZ" >> creatools-DownloadLastVersion.sh + echo "tar -xvzf $fileTGZ" >> creatools-Linux-BinVersion.sh + + + echo "source creatools_install/share/creatools/LocalFunctions.sh" >> creatools-Linux-BinVersion.sh + echo "ETC_BASHRC=\`getbashrc\`" >> creatools-Linux-BinVersion.sh + echo "installPrefix=$(pwd)/creatools_install" >> creatools-Linux-BinVersion.sh + echo "installPrefixThird=$(pwd)/thirdparty_install" >> creatools-Linux-BinVersion.sh + echo "OperatingSystem=\`getDistrib\`" >> creatools-Linux-BinVersion.sh - echo "wget http://www.creatis.insa-lyon.fr/software/public/creatools/creaTools/v$creatoolsMajorVersion.$creatoolsMinorVersion.x/$fileTGZ" > creatools-DownloadLastVersion.sh - echo "tar -xvzf $fileTGZ" >> creatools-DownloadLastVersion.sh + echo "source thirdparty_install/share/creatools/ThirdParty-install-Base-Stuff.sh $OperatingSystem" >> creatools-Linux-BinVersion.sh + echo "source thirdparty_install/share/creatools/ThirdParty-bashrc.sh" >> creatools-Linux-BinVersion.sh + echo "source creatools_install/share/creatools/CreaTools-bashrc.sh" >> creatools-Linux-BinVersion.sh - scp creatools-DownloadLastVersion.sh tux.creatis.insa-lyon.fr:creatools/creaTools/creatools-DownloadLastVersion.sh + scp creatools-Linux-BinVersion.sh tux.creatis.insa-lyon.fr:creatools/creaTools/. echo "" echo "" diff --git a/Linux/scripts/CreaTools-install.sh b/Linux/scripts/CreaTools-install.sh index a9516cc..c75afa7 100644 --- a/Linux/scripts/CreaTools-install.sh +++ b/Linux/scripts/CreaTools-install.sh @@ -55,6 +55,7 @@ export baseLibraryCreatoolsDir=$installPrefix/share/creatools mkdir -p $baseLibraryCreatoolsDir cp CreaTools-bashrc.sh $baseLibraryCreatoolsDir/. + cp LocalFunctions.sh $baseLibraryCreatoolsDir/. #create creatools_base_library_config.sh at the very begining, so we can write "export xxx_BIN=..." inside installmod.sh. JPRx 3 mars 2011 echo '## This file is call from .bashrc' > $baseLibraryCreatoolsDir/creatools_base_library_config.sh diff --git a/Linux/scripts/Install-Creatools-Bin.sh b/Linux/scripts/Install-Creatools-Bin.sh index e5698e6..38040b1 100755 --- a/Linux/scripts/Install-Creatools-Bin.sh +++ b/Linux/scripts/Install-Creatools-Bin.sh @@ -27,17 +27,7 @@ rm -rf Creatools mkdir Creatools cd Creatools -wget http://www.creatis.insa-lyon.fr/software/public/creatools/creaTools/creatools-DownloadLastVersion.sh -source creatools-DownloadLastVersion.sh - -ETC_BASHRC=~/.bashrc -installPrefix=$(pwd)/creatools_install -installPrefixThird=$(pwd)/thirdparty_install -OperatingSystem=`getDistrib` - -source thirdparty_install/share/creatools/ThirdParty-install-Base-Stuff.sh $OperatingSystem -source thirdparty_install/share/creatools/ThirdParty-bashrc.sh -source creatools_install/share/creatools/CreaTools-bashrc.sh - +wget http://www.creatis.insa-lyon.fr/software/public/creatools/creaTools/creatools-Linux-BinVersion.sh +source creatools-Linux-BinVersion.sh cd .. diff --git a/Linux/scripts/LocalFunctions.sh b/Linux/scripts/LocalFunctions.sh new file mode 100644 index 0000000..8d61359 --- /dev/null +++ b/Linux/scripts/LocalFunctions.sh @@ -0,0 +1,134 @@ +# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Santé) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ + +#!/bin/bash -e + + + +########################################## +# check that $1 is one of $2, $3, ... +function checkVal { + local val=$1 + shift + for x in $* ; do + if [ "$val" == "$x" ] ; then + echo "true" + return + fi + done + echo "false" +} + +########################################### +function bigDisplay { + echo " ================================================================================================" + echo " ================================================================================================" + echo " ======= $1" + echo " ================================================================================================" + echo " ================================================================================================" +} + +########################################### +function checkDistrib { + local OS=$1 + if [ "`checkVal $OS MacOS Fedora Ubuntu Mandriva`" == "false" ] ; then + echo "Operating System not supported: $OS" + echo "Currently supported system: Fedora Ubuntu MacOS" + exit 1 + fi +} + +########################################### +function getDistrib { + local OS=`uname` + + if [ "$OS" == Darwin ] ; then OS=MacOS; + elif [ "$OS" == Linux ] ; then OS=`awk 'NR==1{print $1}' /etc/issue` + else OS="" + fi +# checkDistrib $OS + echo $OS +} + +########################################### +function getDistribVersion { + local OS=`uname` + + if [ "$OS" == Darwin ] ; then OSVesion=VOID_Darwin_EED; + elif [ "$OS" == Linux ] ; then OSVersion=`awk 'NR==1{print $3}' /etc/issue` + else OSVersion="VOID_EED" + fi + echo $OSVersion +} + +########################################### +function getncore { + if [ `uname` == Darwin ] ; then # MacOS + system_profiler | grep Processor | awk '$1=="Number" {print $4}' + else + cat /proc/cpuinfo | grep processor | wc -l + fi +} + +########################################### +function getbashrc { + if [ ! -f $HOME/.bashrc ] ; then + touch $HOME/.bashrc + fi + echo $HOME/.bashrc + + +# # Do it, while we are under user, not under root! # JPR +# if [ -f $HOME/.bashrc ] ; then +# echo $HOME/.bashrc +# else +# if [ -f $HOME/.profile ] ; then +# echo $HOME/.profile +# else +# echo "=============== BIG TROUBLE : neither $HOME/.bashrc nor $HOME/.profile file found" > /dev/stderr +# echo "=============== You'd better abort the program and (try to) fix the issue" > /dec/stderr +# read a # just to let the user time enough to read the message... +# fi +# fi +} + +########################################### +function printconfig { + echo + echo "Current Configuration:" + echo " Operating System : $OperatingSystem" + echo " Number of Cores : $corenumber" + echo " Name of the Generation Directory : $generationdir" + echo " Install Prefix for Third Party Libraries : $installPrefixThird" + echo " Install Prefix for CreaTools : $installPrefix" + echo " Boolean for Doc Generation : $docgeneration" + echo " Where do you want to get source files from : $sourcesFrom" + echo " Login User Name : $loginUserName" + echo " Login Group Name : $loginGroupName" + echo " Build type : $buildType" + echo " Gdcm version : $gdcmVersion" + echo " ITK version : $ITKVersion" + echo +} + + -- 2.44.0