diff --git a/tools/dreport.d/ibm.d/gendumpheader b/tools/dreport.d/ibm.d/gendumpheader
index b1de37e..cc49177 100755
--- a/tools/dreport.d/ibm.d/gendumpheader
+++ b/tools/dreport.d/ibm.d/gendumpheader
@@ -24,19 +24,19 @@
 declare -x FILE="/tmp/dumpheader_$EPOCHTIME"
 declare -x dumpSize=$(ls -al $name_dir.tar.xz | awk '{print $5}')
 declare -x modelNo=$(busctl get-property $INVENTORY_MANAGER $INVENTORY_PATH \
-$INVENTORY_ASSET_INT Model | cut -d " " -f 2 | sed "s/^\(\"\)\(.*\)\1\$/\2/g")
+    $INVENTORY_ASSET_INT Model | cut -d " " -f 2 | sed "s/^\(\"\)\(.*\)\1\$/\2/g")
 
 declare -x serialNo=$(busctl get-property $INVENTORY_MANAGER $INVENTORY_PATH \
-$INVENTORY_ASSET_INT SerialNumber | cut -d " " -f 2 | sed "s/^\(\"\)\(.*\)\1\$/\2/g")
+    $INVENTORY_ASSET_INT SerialNumber | cut -d " " -f 2 | sed "s/^\(\"\)\(.*\)\1\$/\2/g")
 
 declare -x dDay=$(date -d @$EPOCHTIME +'%Y%m%d%H%M%S')
 
 declare -x bmcSerialNo=$(busctl call $INVENTORY_MANAGER $INVENTORY_BMC_BOARD \
-org.freedesktop.DBus.Properties Get ss $INVENTORY_ASSET_INT \
-SerialNumber | cut -d " " -f 3 | sed "s/^\(\"\)\(.*\)\1\$/\2/g")
+        org.freedesktop.DBus.Properties Get ss $INVENTORY_ASSET_INT \
+    SerialNumber | cut -d " " -f 3 | sed "s/^\(\"\)\(.*\)\1\$/\2/g")
 
 #Function to add NULL
-function add_null () {
+function add_null() {
     local a=$1
     printf '%*s' $a | tr ' ' "\0" >> $FILE
 }
@@ -44,7 +44,7 @@
 #Function to is to convert the EPOCHTIME collected
 #from dreport into hex values and write the same in
 #header.
-function dump_time () {
+function dump_time() {
     x=${#dDay}
     msize=`expr $x / 2`
     msize=`expr $SIZE_8 - $msize`
@@ -56,7 +56,7 @@
 }
 
 #Function to fetch the size of the dump
-function dump_size () {
+function dump_size() {
     #Adding 516 bytes as the total dump size is dump tar size
     #plus the dump header entry in this case
     #dump_header and dump_entry
@@ -77,7 +77,7 @@
 }
 
 #Function to set dump id to 8 bytes format
-function get_dump_id () {
+function get_dump_id() {
     x=${#dump_id}
     nulltoadd=`expr $SIZE_8 - $x`
     printf '%*s' $nulltoadd | tr ' ' "0" >> $FILE
@@ -85,7 +85,7 @@
 }
 
 #Function to get the bmc serial number
-function getbmc_serial () {
+function getbmc_serial() {
     x=${#bmcSerialNo}
     nulltoadd=`expr $SIZE_12 - $x`
     printf $bmcSerialNo >> $FILE
@@ -107,7 +107,7 @@
 #Separator         1            .
 #Time stamp        14           Form should be yyyymmddhhmmss
 #Null Terminator   1            0x00
-function dump_file_entry () {
+function dump_file_entry() {
     printf "FILE    " >> $FILE
     add_null 1
     printf '\x40' >> $FILE #Virtual file directory entry size
@@ -134,7 +134,7 @@
 #Reserved          2            NULL
 #Dump Size         8            Dump size in hex + dump header
 #Optional Section  16           BMCDUMP
-function dump_section_entry () {
+function dump_section_entry() {
     printf "SECTION " >> $FILE
     add_null 1
     printf '\x30' >> $FILE #Section entry size
@@ -177,7 +177,7 @@
 #Dump requestor type
 #Dump Req ID
 #Dump Req user ID
-function dump_header () {
+function dump_header() {
     printf "BMC DUMP" >> $FILE
     dump_time
     add_null 4 #Dump Identifier
@@ -207,7 +207,7 @@
 #BMC Dump Valid     1            0x01
 #No of Dump Entry   2            Number of Dump Entry
 #
-function dump_entry () {
+function dump_entry() {
     printf '\x01' >> $FILE #Dump entry version
     printf '\x01' >> $FILE #Dump valid
     add_null 1
@@ -215,7 +215,7 @@
 }
 
 #main function
-function gen_header_package () {
+function gen_header_package() {
     dump_file_entry
     dump_section_entry
     dump_header
