#!/usr/bin/env bash

# CLOUDERA-BUILD.  Support for sentry commands via SentryShellIndexer in Sentry.
# usage:
# hbase-indexer-sentry -arg,--add_role_group          Add role to group
# hbase-indexer-sentry -conf,--sentry_conf <arg>      sentry-site file path
# hbase-indexer-sentry -cr,--create_role              Create role
# hbase-indexer-sentry -dr,--drop_role                Drop role
# hbase-indexer-sentry -drg,--delete_role_group       Delete role from group
# hbase-indexer-sentry -g,--groupname <arg>           Group name
# hbase-indexer-sentry -gpr,--grant_privilege_role    Grant privilege to role
# hbase-indexer-sentry -h,--help                      Shell usage
# hbase-indexer-sentry -lp,--list_privilege           List privilege
# hbase-indexer-sentry -lr,--list_role                List role
# hbase-indexer-sentry -p,--privilege <arg>           Privilege string
# hbase-indexer-sentry -r,--rolename <arg>            Role name
# hbase-indexer-sentry -rpr,--revoke_privilege_role   Revoke privilege from role
# hbase-indexer-sentry -s,--service <arg>             Name of the service being managed

SOURCE="${BASH_SOURCE[0]}"
BIN_DIR="$( dirname "$SOURCE" )"
while [ -h "$SOURCE" ]
do
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
BIN_DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd )"
done
BIN_DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
BIN_DIR=$BIN_DIR/../bin
# This will set HBASE_INDEXER_HOME, etc.
. "$BIN_DIR"/hbase-indexer-config.sh

HBASE_INDEXER_LIBRARY_PATH="$HBASE_INDEXER_HOME/lib/*"

JVM="java"
HADOOP_HOME=${HADOOP_HOME:-/usr/lib/hadoop/}
SENTRY_CONF_DIR=${SENTRY_CONF_DIR:-/etc/sentry/conf}

LOG4J_CONF="file:$HBASE_INDEXER_HOME/cloudera/log4j.properties"



SENTRYCLI_JVM_FLAGS="${SENTRYCLI_JVM_FLAGS} -Djava.library.path=${HADOOP_HOME}/lib/native"
export LOG4J_PROPS=${SOLR_CONF_DIR}/log4j.properties

CLASSPATH="${HBASE_INDEXER_LIBRARY_PATH}:${SENTRY_CONF_DIR}"

PATH=$JAVA_HOME/bin:$PATH $JVM $SENTRYCLI_JVM_FLAGS -Dlog4j.configuration=$LOG4J_CONF -classpath "$CLASSPATH" \
 "org.apache.sentry.cli.tools.SentryShellIndexer" -conf "${SENTRY_CONF_DIR}/sentry-site.xml" ${1+"$@"}