run.sh 2.72 KB
Newer Older
1 2 3
# Basic Libraries And Applications for Robotics (BLAAR)
# Copyright  ETIS — ENSEA, University of Cergy-Pontoise, CNRS (2011 - 2017)
# Author: Arnaud Blanchard
Arnaud Blanchard's avatar
Arnaud Blanchard committed
4
#
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
# This software is governed by the CeCILL v2.1 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 v2.1 license as circulated by CEA, CNRS and INRIA at the following URL "http://www.cecill.info".
# 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.
# In this respect, the user's attention is drawn to the risks associated with loading, using, modifying and/or developing or reproducing the software by the user in light of its specific status of free software,
# that may mean  that it is complicated to manipulate, and that also therefore means that it is reserved for developers and experienced professionals having in-depth computer knowledge.
# Users are therefore encouraged to load and test the software's suitability as regards their requirements in conditions enabling the security of their systems and/or data to be ensured  and, more generally, to use and operate it in the same conditions as regards security.
# The fact that you are presently reading this means that you have had knowledge of the CeCILL v2.1 license and that you accept its terms.

#!/usr/bin/env bash #Use your $PATH to find bash
set -o errexit  #Exit on first error
set -o nounset  #Error if a variable is used but nont defined
set -o pipefail #Error if a pipe fail

usage(){
    echo "usage: run.sh <project dir> [args ...]"
21 22
}

23 24
#We will redirect all stdout to stderr ( 1>&2 ) in order to not mix with the stdout of the program we run
{
25
    [ $# -lt 1 ] && { echo "Missing project directory."; usage; exit 1; }
26

27 28 29 30 31 32 33
    #We go in the project directory
    cd $1
    project_dir="$PWD"
    project_name=$(basename $project_dir)
    cd - > /dev/null

   #We go in blaar directory
34 35 36
    cd $(dirname $0)
    blaar_dir="$PWD"
    blaar_build_dir="${blaar_dir}_build"
37

Arnaud Blanchard's avatar
Arnaud Blanchard committed
38
    mkdir  -p /tmp/blaar
39
    cd $blaar_dir
40 41 42
    ./compile.sh "$project_dir" "Release" "$project_name" 
    
    #> /tmp/blaar/compile_$project_name.log || { echo "Fail compiling '$project_dir'"; cat /tmp/blaar/compile_$project_name.log; exit 2; }
Arnaud Blanchard's avatar
Arnaud Blanchard committed
43

44
    bin_dir="$blaar_build_dir/Release"
Arnaud Blanchard's avatar
Arnaud Blanchard committed
45

46
    shift   #remove $0 i.e. run.sh from $@
Arnaud Blanchard's avatar
Arnaud Blanchard committed
47
    echo "Compile and execute: $bin_dir/$project_name $@"
48
} 1>&2
49

Arnaud Blanchard's avatar
Arnaud Blanchard committed
50 51
#Finaly we launch it. We have to avoid intermediate variable otherwise $@ does not keep " " effect
$bin_dir/$project_name "$@"
52 53