diff --git a/src/chassiscommands.cpp b/src/chassiscommands.cpp
index 8a40017..8e5c836 100644
--- a/src/chassiscommands.cpp
+++ b/src/chassiscommands.cpp
@@ -97,8 +97,8 @@
     try
     {
         std::string service = LEDService.getService(*bus);
-        ipmi::Value enabled = getDbusProperty(*bus, service, objName,
-                                              ledInterface, ledProp);
+        ipmi::Value enabled =
+            getDbusProperty(*bus, service, objName, ledInterface, ledProp);
         state = std::get<bool>(enabled);
     }
     catch (const sdbusplus::exception_t& e)
@@ -227,8 +227,8 @@
 
     try
     {
-        auto service = ipmi::getService(*busp, powerRestoreIntf,
-                                        powerRestorePath);
+        auto service =
+            ipmi::getService(*busp, powerRestoreIntf, powerRestorePath);
 
         ipmi::Value result =
             ipmi::getDbusProperty(*busp, service, powerRestorePath,
@@ -279,8 +279,8 @@
             "/xyz/openbmc_project/state/chassis0";
         constexpr const char* chassisStateIntf =
             "xyz.openbmc_project.State.Chassis";
-        auto service = ipmi::getService(*busp, chassisStateIntf,
-                                        chassisStatePath);
+        auto service =
+            ipmi::getService(*busp, chassisStateIntf, chassisStatePath);
 
         ipmi::Value variant =
             ipmi::getDbusProperty(*busp, service, chassisStatePath,
@@ -377,8 +377,8 @@
         "xyz.openbmc_project.Control.Host.RestartCause";
 
     std::string service;
-    boost::system::error_code ec = ipmi::getService(ctx, restartCauseIntf,
-                                                    restartCausePath, service);
+    boost::system::error_code ec =
+        ipmi::getService(ctx, restartCauseIntf, restartCausePath, service);
 
     if (!ec)
     {
