diff --git a/bmc/firmware-handler/meson.build b/bmc/firmware-handler/meson.build
index 2d935a3..42c14ba 100644
--- a/bmc/firmware-handler/meson.build
+++ b/bmc/firmware-handler/meson.build
@@ -3,124 +3,130 @@
 # phosphor-ipmi-flash config
 config_data = []
 if get_option('update-type') == 'static-layout'
-  if get_option('reboot-update')
-    config_data += 'config-static-bmc-reboot.json'
-  else
-    if get_option('update-status')
-      config_data += 'config-static-bmc-with-update-status.json'
+    if get_option('reboot-update')
+        config_data += 'config-static-bmc-reboot.json'
     else
-      config_data += 'config-static-bmc.json'
+        if get_option('update-status')
+            config_data += 'config-static-bmc-with-update-status.json'
+        else
+            config_data += 'config-static-bmc.json'
+        endif
     endif
-  endif
 endif
 
 if get_option('host-bios')
-  config_data += 'config-bios.json'
+    config_data += 'config-bios.json'
 endif
 
 foreach data : config_data
-  configure_file(
-    input: data + '.in',
-    output: data,
-    configuration: conf_data,
-    install: true,
-    install_dir: get_option('datadir') / 'phosphor-ipmi-flash')
+    configure_file(
+        input: data + '.in',
+        output: data,
+        configuration: conf_data,
+        install: true,
+        install_dir: get_option('datadir') / 'phosphor-ipmi-flash',
+    )
 endforeach
 
 # temp files
 install_data(
-  'phosphor-ipmi-flash.conf',
-  install_dir: get_option('libdir') / 'tmpfiles.d')
+    'phosphor-ipmi-flash.conf',
+    install_dir: get_option('libdir') / 'tmpfiles.d',
+)
 
 # systemd configs
 systemd_data = [
-  'phosphor-ipmi-flash-bmc-prepare.target',
-  'phosphor-ipmi-flash-bmc-verify.target',
-  'phosphor-ipmi-flash-bmc-update.target',
+    'phosphor-ipmi-flash-bmc-prepare.target',
+    'phosphor-ipmi-flash-bmc-verify.target',
+    'phosphor-ipmi-flash-bmc-update.target',
 ]
 
 if get_option('host-bios')
-  systemd_data += [
-    'phosphor-ipmi-flash-bios-prepare.target',
-    'phosphor-ipmi-flash-bios-verify.target',
-    'phosphor-ipmi-flash-bios-update.target']
+    systemd_data += [
+        'phosphor-ipmi-flash-bios-prepare.target',
+        'phosphor-ipmi-flash-bios-verify.target',
+        'phosphor-ipmi-flash-bios-update.target',
+    ]
 endif
 
 systemd = dependency('systemd')
 if systemd.found()
-  foreach data : systemd_data
-    configure_file(
-      input: data + '.in',
-      output: data,
-      configuration: conf_data,
-      install: true,
-      install_dir: systemd.get_variable('systemdsystemunitdir'))
-  endforeach
+    foreach data : systemd_data
+        configure_file(
+            input: data + '.in',
+            output: data,
+            configuration: conf_data,
+            install: true,
+            install_dir: systemd.get_variable('systemdsystemunitdir'),
+        )
+    endforeach
 endif
 
 firmware_source = [
-  'firmware_handlers_builder.cpp',
-  'firmware_handler.cpp',
-  'lpc_handler.cpp']
+    'firmware_handlers_builder.cpp',
+    'firmware_handler.cpp',
+    'lpc_handler.cpp',
+]
 
 if (get_option('lpc-type') == 'aspeed-lpc' or
-    get_option('tests').allowed())
-  firmware_source += 'lpc_aspeed.cpp'
+get_option('tests').allowed())
+    firmware_source += 'lpc_aspeed.cpp'
 endif
 
 if (get_option('lpc-type') == 'nuvoton-lpc' or
-    get_option('tests').allowed())
-  firmware_source += 'lpc_nuvoton.cpp'
+get_option('tests').allowed())
+    firmware_source += 'lpc_nuvoton.cpp'
 endif
 
 if (get_option('p2a-type') == 'aspeed-p2a' or
-    get_option('tests').allowed())
-  firmware_source += 'pci_handler.cpp'
+get_option('tests').allowed())
+    firmware_source += 'pci_handler.cpp'
 endif
 
 if get_option('p2a-type') == 'nuvoton-p2a-vga'
-  firmware_source += 'pci_nuvoton_handler.cpp'
+    firmware_source += 'pci_nuvoton_handler.cpp'
 endif
 
 if get_option('p2a-type') == 'nuvoton-p2a-mbox'
-  firmware_source += 'pci_nuvoton_handler.cpp'
+    firmware_source += 'pci_nuvoton_handler.cpp'
 endif
 
 if get_option('net-bridge')
-  firmware_source += 'net_handler.cpp'
+    firmware_source += 'net_handler.cpp'
 endif
 
 firmware_pre = declare_dependency(
-  include_directories: [root_inc, bmc_inc, firmware_inc],
-  dependencies: [
-    dependency('sdbusplus', fallback: ['sdbusplus', 'sdbusplus_dep']),
-    common_dep,
-    blobs_dep,
-    sys_dep,
-  ])
+    include_directories: [root_inc, bmc_inc, firmware_inc],
+    dependencies: [
+        dependency('sdbusplus', fallback: ['sdbusplus', 'sdbusplus_dep']),
+        common_dep,
+        blobs_dep,
+        sys_dep,
+    ],
+)
 
 firmware_lib = static_library(
-  'firmwareblob',
-  firmware_source,
-  conf_h,
-  implicit_include_directories: false,
-  dependencies: firmware_pre)
+    'firmwareblob',
+    firmware_source,
+    conf_h,
+    implicit_include_directories: false,
+    dependencies: firmware_pre,
+)
 
 firmware_dep = declare_dependency(
-  link_with: firmware_lib,
-  dependencies: firmware_pre)
+    link_with: firmware_lib,
+    dependencies: firmware_pre,
+)
 
 shared_module(
-  'firmwareblob',
-  'main.cpp',
-  implicit_include_directories: false,
-  dependencies: [
-    firmware_dep,
-    dependency('libipmid'),
-  ],
-  install: true,
-  install_dir: get_option('libdir') / 'blob-ipmid')
+    'firmwareblob',
+    'main.cpp',
+    implicit_include_directories: false,
+    dependencies: [firmware_dep, dependency('libipmid')],
+    install: true,
+    install_dir: get_option('libdir') / 'blob-ipmid',
+)
 
 if get_option('tests').allowed()
-  subdir('test')
+    subdir('test')
 endif
diff --git a/bmc/firmware-handler/test/meson.build b/bmc/firmware-handler/test/meson.build
index 4ea436e..846ee2a 100644
--- a/bmc/firmware-handler/test/meson.build
+++ b/bmc/firmware-handler/test/meson.build
@@ -1,43 +1,53 @@
 firmware_tests = [
-  'handler',
-  'stat',
-  'canhandle',
-  'write',
-  'writemeta',
-  'open',
-  'close',
-  'sessionstat',
-  'commit',
-  'state_notyetstarted',
-  'state_uploadinprogress',
-  'state_verificationpending',
-  'state_verificationstarted',
-  'state_verificationcompleted',
-  'state_updatepending',
-  'state_updatestarted',
-  'state_updatecompleted',
-  'state_notyetstarted_tarball',
-  'multiplebundle',
-  'json',
-  'skip']
+    'handler',
+    'stat',
+    'canhandle',
+    'write',
+    'writemeta',
+    'open',
+    'close',
+    'sessionstat',
+    'commit',
+    'state_notyetstarted',
+    'state_uploadinprogress',
+    'state_verificationpending',
+    'state_verificationstarted',
+    'state_verificationcompleted',
+    'state_updatepending',
+    'state_updatestarted',
+    'state_updatecompleted',
+    'state_notyetstarted_tarball',
+    'multiplebundle',
+    'json',
+    'skip',
+]
 
 foreach t : firmware_tests
-  test(
-    t,
-    executable(
-      t.underscorify(), 'firmware_' + t + '_unittest.cpp',
-      build_by_default: false,
-      implicit_include_directories: false,
-      include_directories: [root_inc, bmc_test_inc, firmware_inc],
-      dependencies:
-        [firmware_dep, image_mock_dep, triggerable_mock_dep, gtest, gmock]))
+    test(
+        t,
+        executable(
+            t.underscorify(),
+            'firmware_' + t + '_unittest.cpp',
+            build_by_default: false,
+            implicit_include_directories: false,
+            include_directories: [root_inc, bmc_test_inc, firmware_inc],
+            dependencies: [
+                firmware_dep,
+                image_mock_dep,
+                triggerable_mock_dep,
+                gtest,
+                gmock,
+            ],
+        ),
+    )
 endforeach
 
 file_handler_test = executable(
-  'file_handler',
-  'file_handler_unittest.cpp',
-  build_by_default: false,
-  implicit_include_directories: false,
-  include_directories: [root_inc, bmc_inc, bmc_test_inc, firmware_inc],
-  dependencies: [common_dep, blobs_dep, gtest, gmock])
+    'file_handler',
+    'file_handler_unittest.cpp',
+    build_by_default: false,
+    implicit_include_directories: false,
+    include_directories: [root_inc, bmc_inc, bmc_test_inc, firmware_inc],
+    dependencies: [common_dep, blobs_dep, gtest, gmock],
+)
 test('file_handler', file_handler_test)
diff --git a/bmc/log-handler/meson.build b/bmc/log-handler/meson.build
index 5fad0cf..6230826 100644
--- a/bmc/log-handler/meson.build
+++ b/bmc/log-handler/meson.build
@@ -1,35 +1,30 @@
 log_inc = include_directories('.')
 
 log_pre = declare_dependency(
-  include_directories: [root_inc, log_inc],
-  dependencies : [
-    common_dep,
-    firmware_dep,
-  ])
+    include_directories: [root_inc, log_inc],
+    dependencies: [common_dep, firmware_dep],
+)
 
 log_lib = static_library(
-  'logblob',
-  'log_handler.cpp',
-  'log_handlers_builder.cpp',
-  implicit_include_directories: false,
-  dependencies: log_pre)
+    'logblob',
+    'log_handler.cpp',
+    'log_handlers_builder.cpp',
+    implicit_include_directories: false,
+    dependencies: log_pre,
+)
 
 
-log_dep = declare_dependency(
-  link_with: log_lib,
-  dependencies: common_pre)
+log_dep = declare_dependency(link_with: log_lib, dependencies: common_pre)
 
 shared_module(
-  'logblob',
-  'main.cpp',
-  implicit_include_directories: false,
-  dependencies: [
-    log_dep,
-    dependency('libipmid'),
-  ],
-  install: true,
-  install_dir: get_option('libdir') / 'blob-ipmid')
+    'logblob',
+    'main.cpp',
+    implicit_include_directories: false,
+    dependencies: [log_dep, dependency('libipmid')],
+    install: true,
+    install_dir: get_option('libdir') / 'blob-ipmid',
+)
 
 if get_option('tests').allowed()
-  subdir('test')
-endif
\ No newline at end of file
+    subdir('test')
+endif
diff --git a/bmc/log-handler/test/meson.build b/bmc/log-handler/test/meson.build
index 36b4917..475f798 100644
--- a/bmc/log-handler/test/meson.build
+++ b/bmc/log-handler/test/meson.build
@@ -1,14 +1,15 @@
-log_tests = [
-  'canhandle_enumerate',
-  'createhandler']
+log_tests = ['canhandle_enumerate', 'createhandler']
 
 foreach t : log_tests
-  test(
-    t,
-    executable(
-      t.underscorify(), 'log_' + t + '_unittest.cpp',
-      build_by_default: false,
-      implicit_include_directories: false,
-      include_directories: [root_inc, bmc_test_inc, log_inc],
-      dependencies: [log_dep, blobs_dep, gtest, gmock]))
+    test(
+        t,
+        executable(
+            t.underscorify(),
+            'log_' + t + '_unittest.cpp',
+            build_by_default: false,
+            implicit_include_directories: false,
+            include_directories: [root_inc, bmc_test_inc, log_inc],
+            dependencies: [log_dep, blobs_dep, gtest, gmock],
+        ),
+    )
 endforeach
diff --git a/bmc/meson.build b/bmc/meson.build
index 7a5ebad..05ca743 100644
--- a/bmc/meson.build
+++ b/bmc/meson.build
@@ -1,25 +1,25 @@
 bmc_inc = include_directories('.')
 
 common_pre = declare_dependency(
-  dependencies: [nlohmann_json_dep],
-  include_directories: [root_inc, bmc_inc])
+    dependencies: [nlohmann_json_dep],
+    include_directories: [root_inc, bmc_inc],
+)
 
 common_lib = static_library(
-  'common',
-  'buildjson.cpp',
-  'file_handler.cpp',
-  'fs.cpp',
-  'general_systemd.cpp',
-  'skip_action.cpp',
-  implicit_include_directories: false,
-  dependencies: common_pre)
+    'common',
+    'buildjson.cpp',
+    'file_handler.cpp',
+    'fs.cpp',
+    'general_systemd.cpp',
+    'skip_action.cpp',
+    implicit_include_directories: false,
+    dependencies: common_pre,
+)
 
-common_dep = declare_dependency(
-  link_with: common_lib,
-  dependencies: common_pre)
+common_dep = declare_dependency(link_with: common_lib, dependencies: common_pre)
 
 if get_option('tests').allowed()
-  subdir('test')
+    subdir('test')
 endif
 
 subdir('firmware-handler')
diff --git a/bmc/test/meson.build b/bmc/test/meson.build
index 61d4767..48e9cff 100644
--- a/bmc/test/meson.build
+++ b/bmc/test/meson.build
@@ -1,28 +1,30 @@
 bmc_test_inc = include_directories('.')
 
-image_mock_pre = declare_dependency(
-  include_directories: [root_inc, bmc_inc])
+image_mock_pre = declare_dependency(include_directories: [root_inc, bmc_inc])
 
 image_mock_lib = static_library(
-  'image_mock',
-  'image_mock.cpp',
-  implicit_include_directories: false,
-  dependencies: image_mock_pre)
+    'image_mock',
+    'image_mock.cpp',
+    implicit_include_directories: false,
+    dependencies: image_mock_pre,
+)
 
 image_mock_dep = declare_dependency(
-  link_with: image_mock_lib,
-  dependencies: image_mock_pre)
+    link_with: image_mock_lib,
+    dependencies: image_mock_pre,
+)
 
 
-triggerable_mock_pre = declare_dependency(
-  include_directories: [root_inc])
+triggerable_mock_pre = declare_dependency(include_directories: [root_inc])
 
 triggerable_mock_lib = static_library(
-  'triggerable_mock',
-  'triggerable_mock.cpp',
-  implicit_include_directories: false,
-  dependencies: triggerable_mock_pre)
+    'triggerable_mock',
+    'triggerable_mock.cpp',
+    implicit_include_directories: false,
+    dependencies: triggerable_mock_pre,
+)
 
 triggerable_mock_dep = declare_dependency(
-  link_with: triggerable_mock_lib,
-  dependencies: triggerable_mock_pre)
+    link_with: triggerable_mock_lib,
+    dependencies: triggerable_mock_pre,
+)
diff --git a/bmc/version-handler/meson.build b/bmc/version-handler/meson.build
index 6059dd4..867812c 100644
--- a/bmc/version-handler/meson.build
+++ b/bmc/version-handler/meson.build
@@ -1,35 +1,33 @@
 version_inc = include_directories('.')
 
 version_pre = declare_dependency(
-  include_directories: [root_inc, version_inc],
-  dependencies : [
-    common_dep,
-    firmware_dep,
-  ])
+    include_directories: [root_inc, version_inc],
+    dependencies: [common_dep, firmware_dep],
+)
 
 version_lib = static_library(
-  'versionblob',
-  'version_handler.cpp',
-  'version_handlers_builder.cpp',
-  implicit_include_directories: false,
-  dependencies: version_pre)
+    'versionblob',
+    'version_handler.cpp',
+    'version_handlers_builder.cpp',
+    implicit_include_directories: false,
+    dependencies: version_pre,
+)
 
 
 version_dep = declare_dependency(
-  link_with: version_lib,
-  dependencies: common_pre)
+    link_with: version_lib,
+    dependencies: common_pre,
+)
 
 shared_module(
-  'versionblob',
-  'main.cpp',
-  implicit_include_directories: false,
-  dependencies: [
-    version_dep,
-    dependency('libipmid'),
-  ],
-  install: true,
-  install_dir: get_option('libdir') / 'blob-ipmid')
+    'versionblob',
+    'main.cpp',
+    implicit_include_directories: false,
+    dependencies: [version_dep, dependency('libipmid')],
+    install: true,
+    install_dir: get_option('libdir') / 'blob-ipmid',
+)
 
 if get_option('tests').allowed()
-  subdir('test')
-endif
\ No newline at end of file
+    subdir('test')
+endif
diff --git a/bmc/version-handler/test/meson.build b/bmc/version-handler/test/meson.build
index 4c12464..d371591 100644
--- a/bmc/version-handler/test/meson.build
+++ b/bmc/version-handler/test/meson.build
@@ -1,19 +1,23 @@
 version_tests = [
-  'json',
-  'canhandle_enumerate',
-  'createhandler',
-  'open',
-  'close',
-  'read',
-  'stat']
+    'json',
+    'canhandle_enumerate',
+    'createhandler',
+    'open',
+    'close',
+    'read',
+    'stat',
+]
 
 foreach t : version_tests
-  test(
-    t,
-    executable(
-      t.underscorify(), 'version_' + t + '_unittest.cpp',
-      build_by_default: false,
-      implicit_include_directories: false,
-      include_directories: [root_inc, bmc_test_inc, version_inc],
-      dependencies: [version_dep, blobs_dep, gtest, gmock]))
+    test(
+        t,
+        executable(
+            t.underscorify(),
+            'version_' + t + '_unittest.cpp',
+            build_by_default: false,
+            implicit_include_directories: false,
+            include_directories: [root_inc, bmc_test_inc, version_inc],
+            dependencies: [version_dep, blobs_dep, gtest, gmock],
+        ),
+    )
 endforeach
