diff --git a/meta-facebook/recipes-fb/fb-powerctrl/files/power-util b/meta-facebook/recipes-fb/fb-powerctrl/files/power-util
index 30fa34c..d00dfde 100755
--- a/meta-facebook/recipes-fb/fb-powerctrl/files/power-util
+++ b/meta-facebook/recipes-fb/fb-powerctrl/files/power-util
@@ -1,83 +1,83 @@
 #!/bin/bash
 # Usage of this utility
 function usage() {
-	echo "usage: power-util mb [on|off|status|cycle|reset]";
-	echo "       power-util sled-cycle"
+    echo "usage: power-util mb [on|off|status|cycle|reset]";
+    echo "       power-util sled-cycle"
 }
 
 power_off() {
-	echo "Shutting down Server $2"
-	busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.Off
+    echo "Shutting down Server"
+    busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.Off
 }
 
 power_on() {
-	echo "Powering on Server $2"
-	busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.On
+    echo "Powering on Server"
+    busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.On
 }
 
 power_status() {
-	st=$(busctl get-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis CurrentPowerState | cut -d"." -f6)
-	if [ "$st" == "On\"" ]; then
-		echo "on"
-	else
-		echo "off"
-	fi
+    st=$(busctl get-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis CurrentPowerState | cut -d"." -f6)
+    if [ "$st" == "On\"" ]; then
+        echo "on"
+    else
+        echo "off"
+    fi
 }
 
 power_reset() {
-	echo "Reset on server $2"
-	busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.Reset
+    echo "Reset on server"
+    busctl set-property xyz.openbmc_project.State.Chassis /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s xyz.openbmc_project.State.Chassis.Transition.Reset
 }
 
 sled_cycle() {
-	i2cset -y 7 0x45 0xd9 c
+    i2cset -y 7 0x45 0xd9 c
 }
 
-if [ $1 == "sled-cycle" ]; then
-	echo "SLED_CYCLE starting at $(date)"
-	sled_cycle
-	exit 0;
+if [ "$1" == "sled-cycle" ]; then
+    echo "SLED_CYCLE starting at $(date)"
+    sled_cycle
+    exit 0;
 fi
 
 if [ $# -lt 2 ]; then
-	echo "Total number of parameter=$#"
-	echo "Insufficient parameter"
-	usage;
-	exit 0;
+    echo "Total number of parameter=$#"
+    echo "Insufficient parameter"
+    usage;
+    exit 0;
 fi
 
-if [ $1 != "mb" ]; then
-	echo "Invalid parameter1=$1"
-	usage;
-	exit 0;
+if [ "$1" != "mb" ]; then
+    echo "Invalid parameter1=$1"
+    usage;
+    exit 0;
 fi
 
-if [ $2 = "on" ]; then
-  if [ $(power_status) == "off" ]; then
-	  power_on
+if [ "$2" = "on" ]; then
+  if [ "$(power_status)" == "off" ]; then
+      power_on
   fi
-elif [ $2 = "off" ]; then
-  if [ $(power_status) == "on" ]; then
-	  power_off
+elif [ "$2" = "off" ]; then
+  if [ "$(power_status)" == "on" ]; then
+      power_off
   fi
-elif [ $2 == "cycle" ]; then
-  if [ $(power_status) == "on" ]; then
-	  power_off
+elif [ "$2" == "cycle" ]; then
+  if [ "$(power_status)" == "on" ]; then
+      power_off
   else
     echo "WARNING: Powering on server"
   fi
-	power_on
-elif [ $2 == "reset" ]; then
-  if [ $(power_status) == "on" ]; then
-	  power_reset
+    power_on
+elif [ "$2" == "reset" ]; then
+  if [ "$(power_status)" == "on" ]; then
+      power_reset
   else
     echo "ERROR: Server not powered on"
   fi
-elif [ $2 == "status" ]; then
-	power_status
+elif [ "$2" == "status" ]; then
+    power_status
 else
-	echo "Invalid parameter2=$2"
-	usage;
+    echo "Invalid parameter2=$2"
+    usage;
 fi
 
 exit 0;
