#!/bin/bash
#
#/**
# * Copyright 2007 The Apache Software Foundation
# *
# * Licensed to the Apache Software Foundation (ASF) under one
# * or more contributor license agreements.  See the NOTICE file
# * distributed with this work for additional information
# * regarding copyright ownership.  The ASF licenses this file
# * to you under the Apache License, Version 2.0 (the
# * "License"); you may not use this file except in compliance
# * with the License.  You may obtain a copy of the License at
# *
# *     http://www.apache.org/licenses/LICENSE-2.0
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# */

export PATH=$PATH:/opt/bookkeeper/bin

BK_HOME=/opt/bookkeeper
BINDIR=${BK_HOME}/bin
BOOKKEEPER=${BINDIR}/bookkeeper
SCRIPTS_DIR=${BK_HOME}/scripts

if [ $# = 0 ]; then
    echo "No command is found";
    exit 1;
fi

COMMAND=$1
shift

function run_command() {
    if [ "$(id -u)" = '0' ]; then
        chown -R "$BK_USER:$BK_USER" ${BK_HOME}
        chmod -R +x ${BINDIR}
        chmod -R +x ${SCRIPTS_DIR}
        echo "This is root, will use user $BK_USER to run command '$@'"
        exec sudo -s -E -u "$BK_USER" /bin/bash -c 'exec "$@"' -- "$@"
        exit
    else
        echo "Run command '$@'"
        exec "$@"
    fi
}

# for BC consideration - the old scripts run `entrypoint.sh /opt/bookkeeper/bin/bookkeeper bookie`
if [ ${COMMAND} == "${BOOKKEEPER}" ]; then
    if [ $# -gt 0 ]; then
        if [ $1 == "bookie" ]; then
            source ${SCRIPTS_DIR}/init_bookie.sh
            init_bookie
            run_command /opt/bookkeeper/bin/bookkeeper bookie
            exit
        fi
    fi
fi

if [ -f ${SCRIPTS_DIR}/init_${COMMAND}.sh ]; then
    source ${SCRIPTS_DIR}/init_${COMMAND}.sh
    init_${COMMAND}
    run_command ${BOOKKEEPER} ${COMMAND} $@
else
    source ${SCRIPTS_DIR}/init_generic.sh
    run_command ${COMMAND} $@
fi
