HBASE-24550 Passing '-h' or '--help' to bin/hbase doesn't do as expected

Closes #1914

Signed-off-by: Michael Stack <stack@apache.org>
Signed-off-by: Viraj Jasani <vjasani@apache.org>
This commit is contained in:
WenFeiYi 2020-06-18 15:34:30 +05:30 committed by Viraj Jasani
parent 812d1e2bb5
commit 0250374aad
No known key found for this signature in database
GPG Key ID: B3D6C0B41C8ADFD5
4 changed files with 55 additions and 23 deletions

View File

@ -57,35 +57,15 @@
bin=`dirname "$0"` bin=`dirname "$0"`
bin=`cd "$bin">/dev/null; pwd` bin=`cd "$bin">/dev/null; pwd`
# This will set HBASE_HOME, etc.
. "$bin"/hbase-config.sh
cygwin=false
case "`uname`" in
CYGWIN*) cygwin=true;;
esac
# Detect if we are in hbase sources dir
in_dev_env=false
if [ -d "${HBASE_HOME}/target" ]; then
in_dev_env=true
fi
# Detect if we are in the omnibus tarball
in_omnibus_tarball="false"
if [ -f "${HBASE_HOME}/bin/hbase-daemons.sh" ]; then
in_omnibus_tarball="true"
fi
read -d '' options_string << EOF read -d '' options_string << EOF
Options: Options:
--config DIR Configuration direction to use. Default: ./conf --config DIR Configuration direction to use. Default: ./conf
--hosts HOSTS Override the list in 'regionservers' file --hosts HOSTS Override the list in 'regionservers' file
--auth-as-server Authenticate to ZooKeeper using servers configuration --auth-as-server Authenticate to ZooKeeper using servers configuration
--internal-classpath Skip attempting to use client facing jars (WARNING: unstable results between versions) --internal-classpath Skip attempting to use client facing jars (WARNING: unstable results between versions)
--help or -h Print this help message
EOF EOF
# if no args specified, show usage show_usage() {
if [ $# = 0 ]; then
echo "Usage: hbase [<options>] <command> [<args>]" echo "Usage: hbase [<options>] <command> [<args>]"
echo "$options_string" echo "$options_string"
echo "" echo ""
@ -120,6 +100,36 @@ if [ $# = 0 ]; then
echo " pre-upgrade Run Pre-Upgrade validator tool" echo " pre-upgrade Run Pre-Upgrade validator tool"
echo " hbtop Run HBTop tool" echo " hbtop Run HBTop tool"
echo " CLASSNAME Run the class named CLASSNAME" echo " CLASSNAME Run the class named CLASSNAME"
}
if [ "--help" = "$1" ] || [ "-h" = "$1" ]; then
show_usage
exit 0
fi
# This will set HBASE_HOME, etc.
. "$bin"/hbase-config.sh
cygwin=false
case "`uname`" in
CYGWIN*) cygwin=true;;
esac
# Detect if we are in hbase sources dir
in_dev_env=false
if [ -d "${HBASE_HOME}/target" ]; then
in_dev_env=true
fi
# Detect if we are in the omnibus tarball
in_omnibus_tarball="false"
if [ -f "${HBASE_HOME}/bin/hbase-daemons.sh" ]; then
in_omnibus_tarball="true"
fi
# if no args specified, show usage
if [ $# = 0 ]; then
show_usage
exit 1 exit 1
fi fi

View File

@ -33,6 +33,14 @@ if "%1" == "--config" (
shift shift
shift shift
) )
if "%1" == "--help" (
echo Error usage! You should use it like 'hbase --help' or 'hbase -h';
exit /B 2
)
if "%1" == "--help" (
echo Error usage! You should use it like 'hbase --help' or 'hbase -h';
exit /B 2
)
@rem the root of the hbase installation @rem the root of the hbase installation
if not defined HBASE_HOME ( if not defined HBASE_HOME (

View File

@ -94,6 +94,10 @@ do
shift shift
# shellcheck disable=SC2034 # shellcheck disable=SC2034
DEBUG="true" DEBUG="true"
elif [ "--help" = "$1" ] || [ "-h" = "$1" ]
then
echo "Error usage! You should use it like 'hbase --help' or 'hbase -h'";
exit 1
else else
# Presume we are at end of options and break # Presume we are at end of options and break
break break

View File

@ -59,6 +59,15 @@ if "%HBASE_BIN_PATH:~-1%" == "\" (
set HBASE_BIN_PATH=%HBASE_BIN_PATH:~0,-1% set HBASE_BIN_PATH=%HBASE_BIN_PATH:~0,-1%
) )
if "%1" == "--help" (
goto :print_usage
exit /B 0
)
if "%1" == "--help" (
goto :print_usage
exit /B 0
)
rem This will set HBASE_HOME, etc. rem This will set HBASE_HOME, etc.
set hbase-config-script=%HBASE_BIN_PATH%\hbase-config.cmd set hbase-config-script=%HBASE_BIN_PATH%\hbase-config.cmd
call "%hbase-config-script%" %* call "%hbase-config-script%" %*
@ -448,6 +457,7 @@ goto :eof
echo where ^<command^> an option from one of these categories:: echo where ^<command^> an option from one of these categories::
echo Options: echo Options:
echo --config DIR Configuration direction to use. Default: ./conf echo --config DIR Configuration direction to use. Default: ./conf
echo --help or -h Print this help message
echo. echo.
echo Commands: echo Commands:
echo Some commands take arguments. Pass no args or -h for usage." echo Some commands take arguments. Pass no args or -h for usage."