#!/bin/bash
#
# cs_show_wwpn 
#
# (c) 2011-2017 SUSE Linux GmbH, Germany.
# (c) 2018-2019 SUSE LLC
# Author: L.Pinne.
# GNU General Public License v2. No warranty.
# http://www.gnu.org/licenses/gpl.html
#
# Version: 2019-11-28 SLES11
#

EXE="$0"


function swap_fabric_wwn(){
	# 0x100500351eae28 -> 10:00:00:05:1e:35:28:ae
	R=$1
	echo "${R:2:2}:${R:6:2}:${R:4:2}:${R:10:2}:${R:8:2}:${R:14:2}:${R:12:2}"
}


function show_hba_wwpn(){
	test -r /sys/class/fc_host || exit 1
	for f in /sys/class/fc_host/host*; do
		H=$(basename "$f")
		echo -n "$H port_name wwpn: "; cat "${f}"/port_name

		# R="0x100500351eae28"
		R=$(cat "${f}"/fabric_name)
		echo -n "$H fabric_name wwn: "; swap_fabric_wwn "$R"
		echo
	done
}


# main()
case $1 in
	-h|--help)
	echo "usage:	$(basename "$EXE")"
	echo " --help		show help."
	echo " --version	show version."
	exit
	;;
	-v|--version)
	echo -n "$(basename "$EXE") "
	head -11 "$EXE" | grep "^# Version: "
	exit
	;;
	*)
		show_hba_wwpn
	;;
esac
#
