Commit 91cea09f authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

added functions for sudo/not sudo and echo/not echo

parent c352b357
#!/bin/bash
## FUNCTIONS
func_make_install () {
if [ "$UID" -eq 0 -o "$EUID" -eq 0 ]; then
make install
else
sudo make install
fi
}
func_echo () {
if [ $VERBOSE == "true" ]; then
echo "$1"
fi
}
# verbose
VERBOSE="true"
while getopts "he" option; do
......@@ -11,27 +26,23 @@ while getopts "he" option; do
done
CORES=$(nproc)
if [ $VERBOSE == "true" ]; then
echo "The number of available cores on this machine is $CORES"
fi
func_echo "The number of available cores on this machine is $CORES"
RUN_PATH=$PWD
# UBUNTU
apt install -y lsb-core
if [ "$UID" -eq 0 -o "$EUID" -eq 0 ]; then
apt install -y lsb-core
else
sudo apt install -y lsb-core
fi
UBUNTU_DISTRO=$(lsb_release -rs);
if [ $UBUNTU_DISTRO == "16.04" ]; then
if [ $VERBOSE == "true" ]; then
echo "Ubuntu 16.04 - OK"
fi
func_echo "Ubuntu 16.04 - OK"
elif [ $UBUNTU_DISTRO == "18.04" ]; then
if [ $VERBOSE == "true" ]; then
echo "Ubuntu 18.04 - OK"
fi
func_echoo "Ubuntu 18.04 - OK"
elif [ $UBUNTU_DISTRO == "20.04" ]; then
if [ $VERBOSE == "true" ]; then
echo "Ubuntu 20.04 - OK"
fi
func_echo "Ubuntu 20.04 - OK"
else
echo "Non-supported Ubuntu version: $UBUNTU_DISTRO"
exit 1
......@@ -39,28 +50,25 @@ fi
# WOLF DEPENDENCIES #####################################################
if [ $VERBOSE == "true" ]; then
echo "You are in folder $PWD"
fi
func_echo "You are in folder $PWD"
echo "Enter path for dependencies (either /global/path or relative/path):"
read DEPS_PATH
cd $DEPS_PATH
DEPS_PATH=$PWD
if [ $VERBOSE == "true" ]; then
echo "path dependencies: $DEPS_PATH"
fi
func_echo "path dependencies: $DEPS_PATH"
if [ $VERBOSE == "true" ]; then
echo "Installing dependencies via apt install..."
func_echo "Installing dependencies via apt install..."
if [ "$UID" -eq 0 -o "$EUID" -eq 0 ]; then
apt install -y git wget unzip dh-autoreconf cmake build-essential libgoogle-glog-dev libgflags-dev libatlas-base-dev libsuitesparse-dev git libboost-all-dev libyaml-cpp-dev wget unzip
else
sudo apt install -y git wget unzip dh-autoreconf cmake build-essential libgoogle-glog-dev libgflags-dev libatlas-base-dev libsuitesparse-dev git libboost-all-dev libyaml-cpp-dev wget unzip
fi
apt install -y git wget unzip dh-autoreconf cmake build-essential libgoogle-glog-dev libgflags-dev libatlas-base-dev libsuitesparse-dev git libboost-all-dev libyaml-cpp-dev wget unzip
# Eigen
# Ubuntu 16.04 - Eigen 3.3.7 required
if [ $UBUNTU_DISTRO == "16.04" ]; then
if [ $VERBOSE == "true" ]; then
echo "Installing Eigen 3.3.7 via source..."
fi
func_echo "Installing Eigen 3.3.7 via source..."
# todo check if installed, check version, check
wget https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.zip
unzip eigen-3.3.7.zip
......@@ -69,18 +77,14 @@ if [ $UBUNTU_DISTRO == "16.04" ]; then
mkdir build
cd build
cmake ..
make install
func_make_install
else
if [ $VERBOSE == "true" ]; then
echo "Installing Eigen 3 via apt install"
fi
func_echo "Installing Eigen 3 via apt install"
apt install -y libeigen3-dev
fi
# ceres
if [ $VERBOSE == "true" ]; then
echo "Installing ceres 2.0 via source..."
fi
func_echo "Installing ceres 2.0 via source..."
cd $DEPS_PATH
git clone https://ceres-solver.googlesource.com/ceres-solver
cd ceres-solver
......@@ -90,12 +94,10 @@ mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$CORES
make test
make install
func_make_install
# spdlog
if [ $VERBOSE == "true" ]; then
echo "Installing spdlog 0.17 via source..."
fi
func_echo "Installing spdlog 0.17 via source..."
cd $DEPS_PATH
git clone https://github.com/gabime/spdlog.git
cd spdlog
......@@ -104,50 +106,37 @@ git pull
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -fPIC" ..
make -j$CORES
make install
func_make_install
# WOLF #####################################################
cd $RUN_PATH
if [ $VERBOSE == "true" ]; then
echo "You are in folder $PWD"
fi
func_echo "You are in folder $PWD"
echo "Enter path for wolf folder (either /global/path or relative/path):"
read WOLF_PATH
cd $WOLF_PATH
mkdir wolf
cd wolf
WOLF_PATH=$PWD
if [ $VERBOSE == "true" ]; then
echo "wolf folder path: $PWD/wolf"
fi
func_echo "wolf folder path: $PWD/wolf"
# CORE -----------------------------------------------------
if [ $VERBOSE == "true" ]; then
echo "Cloning wolf core..."
fi
func_echo "Cloning wolf core..."
cd $WOLF_PATH
git clone https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/wolf.git
git clone -b master https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/wolf.git
cd wolf
git pull
if [ $VERBOSE == "true" ]; then
echo "Compiling wolf core..."
fi
func_echo "Compiling wolf core..."
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_DEMOS=ON -DBUILD_TESTS=ON ..
cd build
make -j$CORES
if [ $VERBOSE == "true" ]; then
echo "Installing wolf core..."
fi
make install
func_echo "Installing wolf core..."
func_make_install
if [ $VERBOSE == "true" ]; then
echo "Testing wolf core..."
fi
func_echo "Testing wolf core..."
ctest -j$CORES
......@@ -156,35 +145,24 @@ echo "Do you want to download and install plugin imu? (y/n)"
read INSTALL_IMU
if [ $INSTALL_IMU == "y" ]; then
if [ $VERBOSE == "true" ]; then
echo "Cloning plugin imu..."
fi
func_echo "Cloning plugin imu..."
cd $WOLF_PATH
git clone https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/imu.git
git clone -b master https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/imu.git
cd imu
git pull
if [ $VERBOSE == "true" ]; then
echo "Compiling plugin imu..."
fi
func_echo "Compiling plugin imu..."
mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPW=Release
cd build
make -j$CORES
if [ $VERBOSE == "true" ]; then
echo "Installing plugin imu..."
fi
make install
func_echo "Installing plugin imu..."
func_make_install
if [ $VERBOSE == "true" ]; then
echo "Testing plugin imu..."
fi
func_echo "Testing plugin imu..."
ctest -j$CORES
else
if [ $VERBOSE == "true" ]; then
echo "Skipping plugin imu."
fi
func_echo "Skipping plugin imu."
fi
# GNSS --------------------------------------------------
......@@ -192,9 +170,7 @@ echo "Do you want to download and install plugin gnss? (y/n)"
read INSTALL_GNSS
if [ $INSTALL_GNSS == "y" ]; then
if [ $VERBOSE == "true" ]; then
echo "Installing plugin gnss dependencies..."
fi
func_echo "Installing plugin gnss dependencies..."
cd $DEPS_PATH
git clone https://gitlab.iri.upc.edu/mobile_robotics/gauss_project/gnss_utils.git
cd gnss_utils
......@@ -203,37 +179,26 @@ if [ $INSTALL_GNSS == "y" ]; then
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_DEMOS=ON -DBUILD_TESTS=ON ..
make -j$CORES
ctest -j$CORES
make install
func_make_install
if [ $VERBOSE == "true" ]; then
echo "Cloning plugin gnss..."
fi
func_echo "Cloning plugin gnss..."
cd $WOLF_PATH
git clone https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/gnss.git
git clone -b master https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/gnss.git
cd gnss
git pull
if [ $VERBOSE == "true" ]; then
echo "Compiling plugin gnss..."
fi
func_echo "Compiling plugin gnss..."
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_DEMOS=ON -DBUILD_TESTS=ON ..
cd build
make -j$CORES
if [ $VERBOSE == "true" ]; then
echo "Installing plugin gnss..."
fi
make install
func_echo "Installing plugin gnss..."
func_make_install
if [ $VERBOSE == "true" ]; then
echo "Testing plugin gnss..."
fi
func_echo "Testing plugin gnss..."
ctest -j$CORES
else
if [ $VERBOSE == "true" ]; then
echo "Skipping plugin gnss."
fi
func_echo "Skipping plugin gnss."
fi
......@@ -242,9 +207,7 @@ echo "Do you want to download and install plugin laser? (y/n)"
read INSTALL_LASER
if [ $INSTALL_LASER == "y" ]; then
if [ $VERBOSE == "true" ]; then
echo "Installing plugin laser dependencies..."
fi
func_echo "Installing plugin laser dependencies..."
# CSM
echo "Do you want to install CSM to enable ICP processors? (y/n)"
......@@ -256,11 +219,9 @@ if [ $INSTALL_LASER == "y" ]; then
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$CORES
make install
func_make_install
else
if [ $VERBOSE == "true" ]; then
echo "Skipping CSM."
fi
func_echo "Skipping CSM."
fi
# FALKO
......@@ -273,17 +234,13 @@ if [ $INSTALL_LASER == "y" ]; then
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$CORES
make install
func_make_install
else
if [ $VERBOSE == "true" ]; then
echo "Skipping Falko."
fi
func_echo "Skipping Falko."
fi
# LASER_SCAN_UTILS
if [ $VERBOSE == "true" ]; then
echo "Installing laser_scan_utils (required)..."
fi
func_echo "Installing laser_scan_utils (required)..."
cd $DEPS_PATH
ldconfig
git clone https://gitlab.iri.upc.edu/labrobotica/algorithms/laser_scan_utils.git
......@@ -292,40 +249,29 @@ if [ $INSTALL_LASER == "y" ]; then
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$CORES
ctest -j$CORES
make install
func_make_install
# PLUGIN
if [ $VERBOSE == "true" ]; then
echo "Cloning plugin laser..."
fi
func_echo "Cloning plugin laser..."
cd $WOLF_PATH
ldconfig
git clone https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/laser.git
git clone -b master https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/laser.git
cd laser
git pull
if [ $VERBOSE == "true" ]; then
echo "Compiling plugin laser..."
fi
func_echo "Compiling plugin laser..."
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_DEMOS=ON -DBUILD_TESTS=ON ..
cd build
make -j$CORES
if [ $VERBOSE == "true" ]; then
echo "Installing plugin laser..."
fi
make install
func_echo "Installing plugin laser..."
func_make_install
if [ $VERBOSE == "true" ]; then
echo "Testing plugin laser..."
fi
func_echo "Testing plugin laser..."
ldconfig
ctest -j$CORES
else
if [ $VERBOSE == "true" ]; then
echo "Skipping plugin laser."
fi
func_echo "Skipping plugin laser."
fi
# VISION --------------------------------------------------
......@@ -333,55 +279,42 @@ echo "Do you want to download and install plugin vision (requires to install ope
read INSTALL_VISION
if [ $INSTALL_VISION == "y" ]; then
if [ $VERBOSE == "true" ]; then
echo "Installing plugin vision dependencies..."
fi
func_echo "Installing plugin vision dependencies..."
cd $DEPS_PATH
#install opencv
wget https://github.com/opencv/opencv/archive/3.3.0.zip -O temp.zip
unzip temp.zip
rm temp.zip
cd opencv-3.3.0
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout 3.3.0
cd ..
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_CXX_FLAGS="-fPIC -std=c++14" -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..
make -j8
make install
if [ $VERBOSE == "true" ]; then
echo "Cloning plugin vision..."
fi
unzip temp.zip
rm temp.zip
cd opencv-3.3.0
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout 3.3.0
cd ..
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_CXX_FLAGS="-fPIC -std=c++14" -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..
make -j$CORES
func_make_install
func_echo "Cloning plugin vision..."
cd $WOLF_PATH
git clone https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/vision.git
git clone -b master https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/vision.git
cd vision
git pull
if [ $VERBOSE == "true" ]; then
echo "Compiling plugin vision..."
fi
func_echo "Compiling plugin vision..."
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_DEMOS=ON -DBUILD_TESTS=ON ..
cd build
make -j$CORES
if [ $VERBOSE == "true" ]; then
echo "Installing plugin vision..."
fi
make install
func_echo "Installing plugin vision..."
func_make_install
if [ $VERBOSE == "true" ]; then
echo "Testing plugin vision..."
fi
func_echo "Testing plugin vision..."
ctest -j$CORES
else
if [ $VERBOSE == "true" ]; then
echo "Skipping plugin vision."
fi
func_echo "Skipping plugin vision."
fi
# APRILTAG --------------------------------------------------
......@@ -390,9 +323,7 @@ if [ $INSTALL_VISION == "y" ]; then
read INSTALL_APRILTAG
if [ $INSTALL_APRILTAG == "y" ]; then
if [ $VERBOSE == "true" ]; then
echo "Installing plugin apriltag dependencies..."
fi
func_echo "Installing plugin apriltag dependencies..."
cd $DEPS_PATH
git clone https://github.com/AprilRobotics/apriltag apriltaglib
cd apriltaglib
......@@ -400,42 +331,29 @@ if [ $INSTALL_VISION == "y" ]; then
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$CORES
ctest -j$CORES
make install
func_make_install
if [ $VERBOSE == "true" ]; then
echo "Cloning plugin apriltag..."
fi
func_echo "Cloning plugin apriltag..."
cd $WOLF_PATH
git clone https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/apriltag.git
git clone -b master https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/apriltag.git
cd apriltag
git pull
if [ $VERBOSE == "true" ]; then
echo "Compiling plugin apriltag..."
fi
func_echo "Compiling plugin apriltag..."
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_DEMOS=ON -DBUILD_TESTS=ON ..
cd build
make -j$CORES
if [ $VERBOSE == "true" ]; then
echo "Installing plugin apriltag..."
fi
make install
func_echo "Installing plugin apriltag..."
func_make_install
if [ $VERBOSE == "true" ]; then
echo "Testing plugin apriltag..."
fi
func_echo "Testing plugin apriltag..."
ctest -j$CORES
else
if [ $VERBOSE == "true" ]; then
echo "Skipping plugin apriltag."
fi
func_echo "Skipping plugin apriltag."
fi
else
if [ $VERBOSE == "true" ]; then
echo "Skipping plugin apriltag since plugin vision was not installed."
fi
func_echo "Skipping plugin apriltag since plugin vision was not installed."
fi
# BODYDYNAMICS --------------------------------------------------
......@@ -444,38 +362,27 @@ if [ $INSTALL_IMU == "y" ]; then
read INSTALL_BD
if [ $INSTALL_BD == "y" ]; then
if [ $VERBOSE == "true" ]; then
echo "Cloning plugin bodydynamics..."
fi
func_echo "Cloning plugin bodydynamics..."
cd $WOLF_PATH
git clone https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/bodydynamics.git
git clone -b master https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/plugins/bodydynamics.git
cd bodydynamics
git pull
if [ $VERBOSE == "true" ]; then
echo "Compiling plugin bodydynamics..."
fi
func_echo "Compiling plugin bodydynamics..."
mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPW=Release
cd build
make -j$CORES
if [ $VERBOSE == "true" ]; then
echo "Installing plugin bodydynamics..."
fi
make install
func_echo "Installing plugin bodydynamics..."
func_make_install
if [ $VERBOSE == "true" ]; then
echo "Testing plugin bodydynamics..."
fi
func_echo "Testing plugin bodydynamics..."
ctest -j$CORES
else
if [ $VERBOSE == "true" ]; then
echo "Skipping plugin bodydynamics."
fi
func_echo "Skipping plugin bodydynamics."
fi
else
if [ $VERBOSE == "true" ]; then
echo "Skipping plugin bodydynamics since plugin imu was not installed."
fi
func_echo "Skipping plugin bodydynamics since plugin imu was not installed."
fi
func_echo "Done! Enjoy!"
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment