#!/bin/sh load=0 load_all=0 fname="" libdir="" if [ `dirname $0` = "." ] && [ $PWD != "/etc/init.d" ]; then BINDIR=. [ -e .libs ] && LIBDIR=.libs || LIBDIR=. ETCDIR=. libdir=$LIBDIR else BINDIR=@bindir@ ETCDIR=@sysconfdir@/ceph libdir=@libdir@/rados-classes fi load_opt="changed" usage="usage: $0 [option]... [cls_filename]\n" usage=$usage"options:\n" usage=$usage"\t-L, --libdir \n" usage=$usage"\t-l, --load\n" usage=$usage"\t-a, --load-all\n" usage=$usage"\t-c, --conf \n" usage=$usage"\t-o, --overwrite\n" usage=$usage"\t-e, --excl\n" conf=$ETCDIR/ceph.conf usage_exit() { printf "$usage" exit 1 } err_exit() { echo "Error: $*" exit 1 } while [ $# -ge 1 ]; do case $1 in -L | --libdir ) shift libdir=$1 ;; -l | --load ) load=1 ;; -a | --load-all ) load_all=1 ;; -o | --overwrite ) load_opt="overwrite" ;; -e | --excl ) load_opt="excl" ;; -c | --conf ) shift conf=$1 ;; * ) [ -n "$fname" ] && usage_exit fname=$1 ;; esac shift done [ -z "$fname" ] && [ $load_all -eq 0 ] && usage_exit load() { fn=$1 $BINDIR/ceph -c $conf class add -i $fn `$BINDIR/cclsinfo $fn` $load_opt } load_all() { all=`find $libdir -name 'libcls_*.so*' -type f`; if [ -n "$all" ]; then for fn in $all; do echo Loading class: $fn: `$BINDIR/cclsinfo $fn` load $fn done fi } [ $load -eq 1 ] && load $fname [ $load_all -eq 1 ] && load_all