#!/bin/bash
#============================================================================
# Title       : mkorafs
# Description : Creates /u01 filesystem on /dev/sdb1
# Author      : Bart Sjerps <bart@dirty-cache.com>
# License     : GPLv3+
# ---------------------------------------------------------------------------

die() { echo "$(basename $0) error: $@" >&2 ; exit 20 ; }
msg() { echo "$(basename $0) msg: $@" ; }

getent passwd oracle &>/dev/null  || die "user oracle does not exist"
getent group oinstall &>/dev/null || die "group oinstall does not exist"
test -x /sbin/mkfs.xfs            || die "xfstools not installed"
test -x /usr/sbin/parted          || die "parted not installed"

# Get candidate for u01
test -b /dev/sdb && dev=/dev/sdb
test -b /dev/vdb && dev=/dev/vdb
test -b /dev/xvdb && dev=/dev/xvdb

test -z $dev && die "No disk detected" || echo "Disk: $dev"

# Create GPT partition table and partition
blkid $dev >/dev/null || parted $dev mklabel gpt
blkid ${dev}1 >/dev/null || parted $dev mkpart primary 1m 100%

# Create filesystem
lsblk -nf -ofstype ${dev}1 | grep -q xfs || mkfs.xfs ${dev}1

# Add fstab entry
awk '$2=="/u01" {rc=1} END {exit !rc}' /etc/fstab \
  || blkid -s UUID ${dev}1 | tr -d '\"' | awk '{print $2,"/u01\txfs\tnoatime\t0 0"}' >> /etc/fstab

# Mount FS and reset permissions
mount -a
rpm --setugids ora-tools 
