diff --git a/meson.build b/meson.build
index 34ef4fb..6c5fff4 100644
--- a/meson.build
+++ b/meson.build
@@ -1,52 +1,53 @@
 project(
-  'fb-ipmi-oem',
-  'cpp',
-  version: '0.1',
-  meson_version: '>=1.1.1',
-  default_options: [
-    'werror=true',
-    'warning_level=3',
-    'cpp_std=c++23',
-  ])
+    'fb-ipmi-oem',
+    'cpp',
+    version: '0.1',
+    meson_version: '>=1.1.1',
+    default_options: ['werror=true', 'warning_level=3', 'cpp_std=c++23'],
+)
 
 # Project Arguments
 cpp = meson.get_compiler('cpp')
 add_project_arguments(
-  cpp.get_supported_arguments([
-    '-DBOOST_ERROR_CODE_HEADER_ONLY',
-    '-DBOOST_SYSTEM_NO_DEPRECATED',
-    '-DBOOST_ALL_NO_LIB',
-    '-DBOOST_NO_RTTI',
-    '-DBOOST_NO_TYPEID',
-    '-DBOOST_ASIO_DISABLE_THREADS',
-    '-DBOOST_COROUTINES_NO_DEPRECATION_WARNING',
-    '-Wno-psabi',
-    '-Wno-pedantic',
-  ]),
-  language : 'cpp')
+    cpp.get_supported_arguments(
+        [
+            '-DBOOST_ERROR_CODE_HEADER_ONLY',
+            '-DBOOST_SYSTEM_NO_DEPRECATED',
+            '-DBOOST_ALL_NO_LIB',
+            '-DBOOST_NO_RTTI',
+            '-DBOOST_NO_TYPEID',
+            '-DBOOST_ASIO_DISABLE_THREADS',
+            '-DBOOST_COROUTINES_NO_DEPRECATION_WARNING',
+            '-Wno-psabi',
+            '-Wno-pedantic',
+        ],
+    ),
+    language: 'cpp',
+)
 
 fs = import('fs')
 
 host_instances = '0'
 if get_option('host-instances') != ''
-  host_instances = get_option('host-instances')
+    host_instances = get_option('host-instances')
 endif
 
 conf_data = configuration_data()
-conf_data.set_quoted('INSTANCES',host_instances)
+conf_data.set_quoted('INSTANCES', host_instances)
 conf_data.set('POST_CODE_BYTES', get_option('post-code-bytes'))
 conf_data.set('DEBUG_CARD_FRAME_SIZE', get_option('debug-card-frame-size'))
 
-configure_file(input: 'meson_config.h.in',
-               output: 'config.h',
-               configuration: conf_data)
+configure_file(
+    input: 'meson_config.h.in',
+    output: 'config.h',
+    configuration: conf_data,
+)
 
 if get_option('bic').allowed()
-  add_project_arguments(
-    cpp.get_supported_arguments([
-        '-DBIC_ENABLED',
-    ]),
-    language : 'cpp')
+    add_project_arguments(
+        cpp.get_supported_arguments(['-DBIC_ENABLED']),
+        language: 'cpp',
+    )
 endif
 
 root_inc = include_directories('.', 'include')
@@ -62,50 +63,48 @@
 nlohmann_json_dep = dependency('nlohmann_json', include_type: 'system')
 
 zfboemcmds_pre = declare_dependency(
-  include_directories: root_inc,
-  dependencies: [
-    channellayer_dep,
-    ipmid_dep,
-    nlohmann_json_dep,
-    phosphor_dbus_interfaces_dep,
-    phosphor_logging_dep,
-    sdbusplus_dep,
-    userlayer_dep,
-  ])
+    include_directories: root_inc,
+    dependencies: [
+        channellayer_dep,
+        ipmid_dep,
+        nlohmann_json_dep,
+        phosphor_dbus_interfaces_dep,
+        phosphor_logging_dep,
+        sdbusplus_dep,
+        userlayer_dep,
+    ],
+)
 
 zfboemcmds_lib = library(
-  'zfboemcmds',
-  'src/commandutils.cpp',
-  'src/oemcommands.cpp',
-  'src/appcommands.cpp',
-  'src/storagecommands.cpp',
-  'src/usb-dbg.cpp',
-  'src/selcommands.cpp',
-  'src/transportcommands.cpp',
-  'src/biccommands.cpp',
-  'src/groupextcommands.cpp',
-  implicit_include_directories: false,
-  dependencies: zfboemcmds_pre,
-  version: meson.project_version(),
-  override_options: ['b_lundef=false'],
-  install: true,
-  install_dir: get_option('libdir') / 'ipmid-providers')
+    'zfboemcmds',
+    'src/commandutils.cpp',
+    'src/oemcommands.cpp',
+    'src/appcommands.cpp',
+    'src/storagecommands.cpp',
+    'src/usb-dbg.cpp',
+    'src/selcommands.cpp',
+    'src/transportcommands.cpp',
+    'src/biccommands.cpp',
+    'src/groupextcommands.cpp',
+    implicit_include_directories: false,
+    dependencies: zfboemcmds_pre,
+    version: meson.project_version(),
+    override_options: ['b_lundef=false'],
+    install: true,
+    install_dir: get_option('libdir') / 'ipmid-providers',
+)
 
 if get_option('machine') != ''
-  configfile = [
-        'cri_sensors.json',
-        'gpio_desc.json',
-        'post_desc.json'
-   ]
-   foreach c : configfile
-      file = join_paths('configs', get_option('machine'), c)
-      if not fs.is_file(file)
-         warning('Missing config file: ' + file)
-      else
-          install_data(
-              sources : file,
-              install_dir : get_option('datadir') / 'lcd-debug'
-          )
-      endif
-   endforeach
+    configfile = ['cri_sensors.json', 'gpio_desc.json', 'post_desc.json']
+    foreach c : configfile
+        file = join_paths('configs', get_option('machine'), c)
+        if not fs.is_file(file)
+            warning('Missing config file: ' + file)
+        else
+            install_data(
+                sources: file,
+                install_dir: get_option('datadir') / 'lcd-debug',
+            )
+        endif
+    endforeach
 endif
diff --git a/meson.options b/meson.options
index 61a698a..3d67850 100644
--- a/meson.options
+++ b/meson.options
@@ -1,12 +1,16 @@
 option('tests', type: 'feature', description: 'Build tests')
 option('bic', type: 'feature', description: 'Enable bic handlers')
-option('post-code-bytes', type: 'integer', description: 'Post code byte size.', value: 1)
-option('debug-card-frame-size', type: 'integer', description: 'debug card frame size.', value: 2)
 option(
-  'host-instances',
-  type: 'string',
-  description: 'Host Instances')
+    'post-code-bytes',
+    type: 'integer',
+    description: 'Post code byte size.',
+    value: 1,
+)
 option(
-  'machine',
-  type: 'string',
-  description: 'Machine')
+    'debug-card-frame-size',
+    type: 'integer',
+    description: 'debug card frame size.',
+    value: 2,
+)
+option('host-instances', type: 'string', description: 'Host Instances')
+option('machine', type: 'string', description: 'Machine')
