diff --git a/power-supply/main.cpp b/power-supply/main.cpp
index b526264..a0be28c 100644
--- a/power-supply/main.cpp
+++ b/power-supply/main.cpp
@@ -121,16 +121,16 @@
         }
 
         std::string name{"ps" + instnum + "_input_power"};
-        std::string basePath =
-            std::string{INPUT_HISTORY_SENSOR_ROOT} + '/' + name;
+        std::string basePath = std::string{INPUT_HISTORY_SENSOR_ROOT} + '/' +
+                               name;
 
         psuDevice->enableHistory(basePath, numRecords, syncGPIOPath, gpioNum);
 
         // Systemd object manager
         sdbusplus::server::manager_t objManager{bus, basePath.c_str()};
 
-        std::string busName =
-            std::string{INPUT_HISTORY_BUSNAME_ROOT} + '.' + name;
+        std::string busName = std::string{INPUT_HISTORY_BUSNAME_ROOT} + '.' +
+                              name;
         bus.request_name(busName.c_str());
     }
 
diff --git a/power-supply/power_supply.cpp b/power-supply/power_supply.cpp
index ce6a43a..1dc383d 100644
--- a/power-supply/power_supply.cpp
+++ b/power-supply/power_supply.cpp
@@ -573,8 +573,8 @@
             return;
         }
 
-        auto logEntryService =
-            util::getService(logEntries[0], LOGGING_IFACE, bus);
+        auto logEntryService = util::getService(logEntries[0], LOGGING_IFACE,
+                                                bus);
         if (logEntryService.empty())
         {
             return;
@@ -654,8 +654,8 @@
 
     try
     {
-        auto service =
-            util::getService(INVENTORY_OBJ_PATH, INVENTORY_MGR_IFACE, bus);
+        auto service = util::getService(INVENTORY_OBJ_PATH, INVENTORY_MGR_IFACE,
+                                        bus);
 
         if (service.empty())
         {
@@ -733,9 +733,9 @@
     }
 
     // Read just the most recent average/max record
-    auto data =
-        pmbusIntf.readBinary(INPUT_HISTORY, pmbus::Type::HwmonDeviceDebug,
-                             history::RecordManager::RAW_RECORD_SIZE);
+    auto data = pmbusIntf.readBinary(INPUT_HISTORY,
+                                     pmbus::Type::HwmonDeviceDebug,
+                                     history::RecordManager::RAW_RECORD_SIZE);
 
     // Update D-Bus only if something changed (a new record ID, or cleared out)
     auto changed = recordManager->add(data);
diff --git a/power-supply/record_manager.cpp b/power-supply/record_manager.cpp
index a182c8c..7b34961 100644
--- a/power-supply/record_manager.cpp
+++ b/power-supply/record_manager.cpp
@@ -62,8 +62,8 @@
                 // If it just rolled over from 0xFF to 0x00, then no
                 // need to clear.  If we see a 0 seemingly out of nowhere,
                 // then it was a sync so clear the old records.
-                auto rolledOver =
-                    (previousID == lastSequenceID) && (id == FIRST_SEQUENCE_ID);
+                auto rolledOver = (previousID == lastSequenceID) &&
+                                  (id == FIRST_SEQUENCE_ID);
 
                 if (!rolledOver)
                 {
diff --git a/power-supply/record_manager.hpp b/power-supply/record_manager.hpp
index 88baa31..0f15b0a 100644
--- a/power-supply/record_manager.hpp
+++ b/power-supply/record_manager.hpp
@@ -28,8 +28,7 @@
 class InvalidRecordException : public std::runtime_error
 {
   public:
-    InvalidRecordException() : std::runtime_error("Invalid history record")
-    {}
+    InvalidRecordException() : std::runtime_error("Invalid history record") {}
 };
 
 /**
