#!/bin/bash -e DEVICE_NODE="/dev/mmcblk0" DEFAULT_FS_TYPE="btrfs" # # check device node exist # if [[ ! -b "${DEVICE_NODE}" ]]; then echo "${DEVICE_NODE} is not available" exit 0 fi # # check if device mounted correctly # if ! (mount || true) | grep "${DEVICE_NODE}"> /dev/null; then echo "${DEVICE_NODE} is not mounted" else echo "${DEVICE_NODE} is mounted" exit 0 fi # # check filesystem # FS_TYPE_CHECK="$(blkid "${DEVICE_NODE}" | sed 's/.*TYPE="\([^"]*\).*/\1/' || true)" if [[ "${FS_TYPE_CHECK}" = "" ]]; then FS_TYPE="unknown" else FS_TYPE="${FS_TYPE_CHECK}" fi case "${FS_TYPE}" in "${DEFAULT_FS_TYPE}") echo "Filesystem (${FS_TYPE}) found on ${DEVICE_NODE}" ;; *) echo "No or unexpected filesystem (${FS_TYPE}) found on ${DEVICE_NODE}" if ! output=$(mkfs."${DEFAULT_FS_TYPE}" --force "${DEVICE_NODE}" 2>&1); then echo "failed to create ${DEFAULT_FS_TYPE} on ${DEVICE_NODE}:" echo "${output}" exit 1 fi ;; esac