openpower-software-manager: Move ubiumount.service logic to script

The service files that manage the pnor ubi volumes and mount points are
starting to get too much logic in them. Move the logic to a shell script.

Closes openbmc/openbmc#1673

Change-Id: I6c9fb239b493eb64049fd4b8efc9be6eaf5b9b79
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/flash/openpower-software-manager/obmc-flash-bios b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/flash/openpower-software-manager/obmc-flash-bios
index cbe58e1..2265275 100644
--- a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/flash/openpower-software-manager/obmc-flash-bios
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/flash/openpower-software-manager/obmc-flash-bios
@@ -108,6 +108,26 @@
   fi
 }
 
+umount_ubi() {
+  pnormtd="$(findmtd pnor)"
+  pnor="${pnormtd#mtd}"
+  ubidev="/dev/ubi${pnor}"
+  mountdir="/media/${name}"
+
+  if is_mounted "${name}"; then
+    umount "${mountdir}"
+  fi
+
+  vol="$(findubi "${name}")"
+  if [ -n "${vol}" ]; then
+    ubirmvol "${ubidev}" -N "${name}"
+  fi
+
+  if [ -d "${mountdir}" ]; then
+    rm -r "${mountdir}"
+  fi
+}
+
 case "$1" in
   ubiattach)
     attach_ubi
@@ -121,6 +141,10 @@
     name="$2"
     mount_ubi
     ;;
+  ubiumount)
+    name="$2"
+    umount_ubi
+    ;;
   *)
     echo "Invalid argument"
     exit 1