X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fceph-clsinfo;fp=src%2Fceph%2Fsrc%2Fceph-clsinfo;h=5615af4852474a3a5cb5a7baf9a7f94273317d83;hb=812ff6ca9fcd3e629e49d4328905f33eee8ca3f5;hp=0000000000000000000000000000000000000000;hpb=15280273faafb77777eab341909a3f495cf248d9;p=stor4nfv.git diff --git a/src/ceph/src/ceph-clsinfo b/src/ceph/src/ceph-clsinfo new file mode 100755 index 0000000..5615af4 --- /dev/null +++ b/src/ceph/src/ceph-clsinfo @@ -0,0 +1,85 @@ +#!/bin/sh + + +show_name=0 +show_ver=0 +show_arch=0 +show_default=1 +fname="" + +usage="usage: $0 [option]... \n" +usage=$usage"options:\n" +usage=$usage"\t-n, --name\n" +usage=$usage"\t-v, --ver\n" +usage=$usage"\t-a, --arch\n" + +usage_exit() { + printf "$usage" + exit 1 +} + +err_exit() { + echo "Error: $*" + exit 1 +} + +while [ $# -ge 1 ]; do +case $1 in + -n | --name ) + show_name=1 + show_default=0 + ;; + -v | --ver ) + show_ver=1 + show_default=0 + ;; + -a | --arch ) + show_arch=1 + show_default=0 + ;; + * ) + [ -n "$fname" ] && usage_exit + fname=$1 + ;; + +esac +shift +done + +[ -z "$fname" ] && usage_exit + +if [ $show_default -eq 1 ]; then + show_name=1 + show_ver=1 + show_arch=1 +fi + +[ -e "$fname" ] || err_exit "File not found: ${fname}" + +if [ $show_name -eq 1 ]; then + raw_name=`nm $fname | grep __cls_name__` + name=`echo $raw_name | sed 's/.*cls_name__//g'` + [ -z "$name" ] && err_exit "Could not detect class name" + s=$name + c=" " +fi + +if [ $show_ver -eq 1 ]; then + raw_ver=`nm $fname | grep __cls_ver__` + ver=`echo $raw_ver | sed 's/.*cls_ver__//g; s/_/./g'` + [ -z "$ver" ] && err_exit "Could not detect class version" + s=$s$c$ver + c=" " +fi + +if [ $show_arch -eq 1 ]; then + raw_arch=`readelf -h $fname | grep Machine` + arch="" + [ `echo $raw_arch | grep -c 386` -gt 0 ] && arch="i386" + [ `echo $raw_arch | grep -c 86-64` -gt 0 ] && arch="x86-64" + [ -z "$arch" ] && err_exit "unknown file architecture" + s=$s$c$arch + c=" " +fi + +echo $s