#!/bin/sh

PROG=`basename $0`

ABORT()
{
	echo >&2 $PROG: $*
	exit 1
}

usage() {
	exec >&2
	echo "Usage: $PROG MOUNTDIR    - display proxy cert information"
	echo "       $PROG -p MOUNTDIR - display path of proxy cert"
	echo "       $PROG -t MOUNTDIR - display timeleft of proxy cert"
	exit 2
}

getxattr() {
    attr=$1
    p=$2
    v=`getfattr --absolute-names -n $attr $p | sed -n s/$attr'="\(.*\)"/\1/p'`
    echo $v
}

gsiproxyinfo() {
    getxattr gfarm2fs.gsiproxyinfo $1
}

gsipath() {
    getxattr gfarm2fs.gsipath $1
}

gsitimeleft() {
    getxattr gfarm2fs.gsitimeleft $1
}

MODE=PROXYINFO
case $1 in
-p)
	shift
	MODE=PATH
	;;
-t)
	shift
	MODE=TIMELEFT
	;;
-*)
	usage
	;;
esac

[ X"$1" = X ] && usage
MOUNTDIR=$1
[ -d $MOUNTDIR ] || ABORT "$MOUNTDIR: not a directory, or access denied"

if [ `(LC_ALL=C gsiproxyinfo $MOUNTDIR 2>&1 >/dev/null)|LC_ALL=C wc -c` -ne 0 ]
then
	LC_ALL=C gsiproxyinfo $MOUNTDIR 2>&1 >/dev/null |
	while read line; do
		case $line in
		*'Operation not supported')
			echo >&2 $PROG: $MOUNTDIR: not mounted by gfarm2fs
			;;
		*)
			echo >&2 $PROG: $line;;
		esac
	done
	exit 1
fi

case $MODE in
PROXYINFO)
	gsiproxyinfo $MOUNTDIR | sed 's/\\012/\n/g' | sed '/^$/d'
	;;
PATH)
	gsipath $MOUNTDIR | sed '/^$/d'
	;;
TIMELEFT)
	gsitimeleft $MOUNTDIR | sed '/^$/d'
	;;
esac
