From 5463213e298405a70725bb1b5fea8cb956de5430 Mon Sep 17 00:00:00 2001
From: Olivier Stasse <ostasse@laas.fr>
Date: Mon, 6 Feb 2023 12:35:23 +0100
Subject: [PATCH] [pre-commit] Add pre-commit and makes it happy.

---
 .../workflows/ci_ubuntu20_04_foxy_ros2.yml    |  2 +-
 .gitignore                                    |  2 +-
 .pre-commit-config.yaml                       | 10 +++++++++
 CMakeLists.txt                                |  2 +-
 doc/Doxyfile.extra.in                         |  1 -
 .../ros_python_interpreter_client.hpp         |  2 +-
 include/dynamic_graph_bridge/sot_loader.hh    |  2 +-
 .../dynamic_graph_bridge/sot_loader_basic.hh  |  4 ++--
 src/ros.cpp                                   |  2 +-
 src/ros_parameter.cpp                         |  6 ++---
 src/sot_loader.cpp                            |  2 +-
 tests/impl_test_sot_external_interface.hh     |  4 ++--
 tests/test_sot_loader.cpp                     | 22 +++++++++----------
 travis_custom/Dockerfile                      |  7 ++----
 14 files changed, 37 insertions(+), 31 deletions(-)
 create mode 100644 .pre-commit-config.yaml

diff --git a/.github/workflows/ci_ubuntu20_04_foxy_ros2.yml b/.github/workflows/ci_ubuntu20_04_foxy_ros2.yml
index f3fad5a..0a138d1 100644
--- a/.github/workflows/ci_ubuntu20_04_foxy_ros2.yml
+++ b/.github/workflows/ci_ubuntu20_04_foxy_ros2.yml
@@ -53,7 +53,7 @@ jobs:
           cd $ROS_WORKSPACE/src
           ln -s /home/runner/work/dynamic_graph_bridge/dynamic_graph_bridge .
           git clone -b devel --single-branch --recursive https://github.com/stack-of-tasks/dynamic_graph_bridge_msgs.git
-      
+
       #
       # Build dep and checkout from source.
       #
diff --git a/.gitignore b/.gitignore
index 6100d28..164534a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,4 +7,4 @@ bin/
 build/
 srv_gen/
 *~
-*/__pycache__/*
\ No newline at end of file
+*/__pycache__/*
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000..fd16ba2
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,10 @@
+# See https://pre-commit.com for more information
+# See https://pre-commit.com/hooks.html for more hooks
+repos:
+-   repo: https://github.com/pre-commit/pre-commit-hooks
+    rev: v3.2.0
+    hooks:
+    -   id: trailing-whitespace
+    -   id: end-of-file-fixer
+    -   id: check-yaml
+    -   id: check-added-large-files
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fd447b8..989035c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -84,4 +84,4 @@ install(DIRECTORY include/ DESTINATION include)
 install(FILES package.xml DESTINATION share/${PROJECT_NAME})
 
 #ROS 2 packaging
-ament_package()
\ No newline at end of file
+ament_package()
diff --git a/doc/Doxyfile.extra.in b/doc/Doxyfile.extra.in
index 707e217..f907590 100644
--- a/doc/Doxyfile.extra.in
+++ b/doc/Doxyfile.extra.in
@@ -1,3 +1,2 @@
 INPUT                  = @PROJECT_SOURCE_DIR@/include \
 			 @PROJECT_SOURCE_DIR@/doc
-
diff --git a/include/dynamic_graph_bridge/ros_python_interpreter_client.hpp b/include/dynamic_graph_bridge/ros_python_interpreter_client.hpp
index aa05986..a5b5459 100644
--- a/include/dynamic_graph_bridge/ros_python_interpreter_client.hpp
+++ b/include/dynamic_graph_bridge/ros_python_interpreter_client.hpp
@@ -149,4 +149,4 @@ private:
     DurationSec timeout_connection_s_;
 };
 
-}  // namespace dynamic_graph_bridge
\ No newline at end of file
+}  // namespace dynamic_graph_bridge
diff --git a/include/dynamic_graph_bridge/sot_loader.hh b/include/dynamic_graph_bridge/sot_loader.hh
index 5b4b320..c305476 100644
--- a/include/dynamic_graph_bridge/sot_loader.hh
+++ b/include/dynamic_graph_bridge/sot_loader.hh
@@ -102,7 +102,7 @@ class SotLoader : public SotLoaderBasic {
 
   // \brief Method for the thread implementing the starting and stopping part of dynamic_graph
   void workThreadLoader();
-  
+
   // \brief Join the thread.
   void lthread_join();
   typedef std::shared_ptr<SotLoader> SharedPtr;
diff --git a/include/dynamic_graph_bridge/sot_loader_basic.hh b/include/dynamic_graph_bridge/sot_loader_basic.hh
index fd38405..a1f1871 100644
--- a/include/dynamic_graph_bridge/sot_loader_basic.hh
+++ b/include/dynamic_graph_bridge/sot_loader_basic.hh
@@ -73,7 +73,7 @@ class SotLoaderBasic {
 
   // Node reference
   rclcpp::Node::SharedPtr nh_;
-  
+
   // Joint state to be published.
   sensor_msgs::msg::JointState joint_state_;
 
@@ -100,7 +100,7 @@ class SotLoaderBasic {
 
   // Returns nodeHandle
   rclcpp::Node::SharedPtr returnsNodeHandle();
-  
+
   /// \brief Unload the library which handles the robot device.
   void CleanUp();
 
diff --git a/src/ros.cpp b/src/ros.cpp
index 8255cf4..ae62ced 100644
--- a/src/ros.cpp
+++ b/src/ros.cpp
@@ -286,7 +286,7 @@ RosNodePtr get_ros_node(std::string node_name)
         GLOBAL_LIST_OF_ROS_NODE[node_name] =
             std::make_shared<RosNode>(
                 node_name, "dynamic_graph_bridge");
-        
+
     }
     /** Return a reference to the node handle so any function can use it */
     return GLOBAL_LIST_OF_ROS_NODE[node_name];
diff --git a/src/ros_parameter.cpp b/src/ros_parameter.cpp
index 57dcfd1..485fd10 100644
--- a/src/ros_parameter.cpp
+++ b/src/ros_parameter.cpp
@@ -19,7 +19,7 @@ namespace dynamicgraph {
       {
         nh->declare_parameter("robot_description",std::string(""));
       }
-    
+
     std::string robot_description;
     std::string parameter_name("robot_description");
     nh->get_parameter(parameter_name,robot_description);
@@ -29,9 +29,9 @@ namespace dynamicgraph {
                      "Parameter robot_description is empty");
         return false;
       }
-    
+
     std::string model_name("robot");
-    
+
     // Search for the robot util related to robot_name.
     sot::RobotUtilShrPtr aRobotUtil = sot::getRobotUtil(model_name);
     // If does not exist then it is created.
diff --git a/src/sot_loader.cpp b/src/sot_loader.cpp
index 66511e4..81e57ba 100644
--- a/src/sot_loader.cpp
+++ b/src/sot_loader.cpp
@@ -277,5 +277,5 @@ void SotLoader::workThreadLoader() {
   std::cerr << "End of this thread: "
             << std::this_thread::get_id()
             << std::endl;
-    
+
 }
diff --git a/tests/impl_test_sot_external_interface.hh b/tests/impl_test_sot_external_interface.hh
index bfca53b..9b6a86b 100644
--- a/tests/impl_test_sot_external_interface.hh
+++ b/tests/impl_test_sot_external_interface.hh
@@ -21,9 +21,9 @@ public:
                                  dynamicgraph::sot::SensorValues> &) final;
   virtual void getControl(std::map<std::string,
                           dynamicgraph::sot::ControlValues> &) final;
-  
+
   virtual void setSecondOrderIntegration(void);
-  
+
   virtual void setNoIntegration(void);
 
 protected:
diff --git a/tests/test_sot_loader.cpp b/tests/test_sot_loader.cpp
index b914ee2..e4b1897 100644
--- a/tests/test_sot_loader.cpp
+++ b/tests/test_sot_loader.cpp
@@ -4,7 +4,7 @@
 #include "dynamic_graph_bridge/sot_loader.hh"
 
 class MockSotLoaderTest: public ::testing::Test {
-  
+
 public:
 
   class MockSotLoader : public SotLoader {
@@ -20,7 +20,7 @@ public:
       std::cerr << "Stop Dynamic Graph " << std::endl;
       dynamic_graph_stopped_ = true;
     }
-    
+
     void testLoadController() {
       // Set input  call
       int argc=2;
@@ -33,14 +33,14 @@ public:
 
       std::string finalname("libimpl_test_sot_external_interface.so");
       EXPECT_TRUE(finalname == dynamicLibraryName_);
-      
+
       // Performs initialization of libimpl_test_sot_external_interface.so
       loadController();
       EXPECT_TRUE(sotRobotControllerLibrary_ != 0);
       EXPECT_TRUE(sotController_ != nullptr);
       // initialize start/stop and runCommand services
       initializeServices();
-      
+
       // Constructor should default freeFlyerPose
       EXPECT_TRUE( freeFlyerPose_.header.frame_id == std::string("odom"));
       EXPECT_TRUE( freeFlyerPose_.child_frame_id == std::string("base_link"));
@@ -51,22 +51,22 @@ public:
 
       // Start the control loop thread.
       startControlLoop();
-      
+
       // Start the thread generating events.
       std::thread local_events(&MockSotLoader::generateEvents,this);
 
       // Wait for each threads.
       SotLoader::lthread_join(); // Wait 100 ms
-      local_events.join();      
+      local_events.join();
     }
   };
-  
+
 public:
   MockSotLoader* mockSotLoader_ptr_;
-  
+
   void SetUp() {
     mockSotLoader_ptr_ = new MockSotLoader();
-    mockSotLoader_ptr_->initialize(); 
+    mockSotLoader_ptr_->initialize();
   }
 
   void TearDown() {
@@ -81,11 +81,11 @@ TEST_F(MockSotLoaderTest,TestLoadController)
   mockSotLoader_ptr_->testLoadController();
 }
 
-  
+
 int main(int argc, char **argv) {
   ::testing::InitGoogleTest(&argc, argv);
   rclcpp::init(argc, argv);
-  
+
   int r=RUN_ALL_TESTS();
 
   rclcpp::shutdown();
diff --git a/travis_custom/Dockerfile b/travis_custom/Dockerfile
index 4be6b24..8d0bd72 100644
--- a/travis_custom/Dockerfile
+++ b/travis_custom/Dockerfile
@@ -28,12 +28,9 @@ RUN more /etc/apt/sources.list
 #
 RUN sudo apt-get install -y g++ python2.7 python2.7-dev
 RUN sudo apt-get install -y cppcheck doxygen libboost-system-dev libboost-test-dev libboost-filesystem-dev libboost-program-options-dev libeigen3-dev libtinyxml-dev
-RUN sudo apt-get install -y ros-indigo-tf ros-indigo-tf2-bullet ros-indigo-realtime-tools 
-RUN sudo apt-get install -y robotpkg-pinocchio 
+RUN sudo apt-get install -y ros-indigo-tf ros-indigo-tf2-bullet ros-indigo-realtime-tools
+RUN sudo apt-get install -y robotpkg-pinocchio
 RUN sudo apt-get install -y robotpkg-dynamic-graph-v3 robotpkg-py27-dynamic-graph-v3 robotpkg-dynamic-graph-bridge-msgs
 RUN sudo apt-get install -y robotpkg-sot-core-v3 robotpkg-py27-sot-tools-v3 robotpkg-sot-dynamic-pinocchio-v3
 RUN sudo apt-get install -y libboost-python-dev robotpkg-py27-eigenpy python2.7-dev python-numpy python-sphinx
 RUN env
-
-
-
-- 
GitLab