mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-09-09 20:09:09 +00:00
[New] Added set-colors
command. See details below:
This command allows users to replace default colors with their own custom colors. - top-level commands modified: alias, ls, ls-remote - helper functions added: nvm_echo_with_colors, nvm_err_with_colors, nvm_set_colors, nvm_get_colors, nvm_print_color_code - functions modified: nvm_print_formatted_alias, nvm_print_versions, nvm_print_alias_path (implicitly), nvm_print_default_alias (implicitly), nvm_list_aliases (implicitly) We added tests and info on using this command to the README! Co-authored-by: Dena Burd <29719099+gitburd@users.noreply.github.com> Co-authored-by: Naomi Quinones <52065567+naomiquinones@users.noreply.github.com>
This commit is contained in:

committed by
Jordan Harband

parent
3abb98124e
commit
6848c16d53
240
nvm.sh
240
nvm.sh
@@ -24,6 +24,10 @@ nvm_echo() {
|
||||
command printf %s\\n "$*" 2>/dev/null
|
||||
}
|
||||
|
||||
nvm_echo_with_colors() {
|
||||
command printf %b\\n "$*" 2>/dev/null
|
||||
}
|
||||
|
||||
nvm_cd() {
|
||||
\cd "$@"
|
||||
}
|
||||
@@ -32,6 +36,10 @@ nvm_err() {
|
||||
>&2 nvm_echo "$@"
|
||||
}
|
||||
|
||||
nvm_err_with_colors() {
|
||||
>&2 nvm_echo_with_colors "$@"
|
||||
}
|
||||
|
||||
nvm_grep() {
|
||||
GREP_OPTIONS='' command grep "$@"
|
||||
}
|
||||
@@ -70,11 +78,11 @@ nvm_command_info() {
|
||||
}
|
||||
|
||||
nvm_has_colors() {
|
||||
local NVM_COLORS
|
||||
local NVM_NUM_COLORS
|
||||
if nvm_has tput; then
|
||||
NVM_COLORS="$(tput -T "${TERM:-vt100}" colors)"
|
||||
NVM_NUM_COLORS="$(tput -T "${TERM:-vt100}" colors)"
|
||||
fi
|
||||
[ "${NVM_COLORS:--1}" -ge 8 ]
|
||||
[ "${NVM_NUM_COLORS:--1}" -ge 8 ]
|
||||
}
|
||||
|
||||
nvm_curl_libz_support() {
|
||||
@@ -713,6 +721,92 @@ nvm_binary_available() {
|
||||
nvm_version_greater_than_or_equal_to "$(nvm_strip_iojs_prefix "${1-}")" v0.8.6
|
||||
}
|
||||
|
||||
nvm_set_colors() {
|
||||
if [ "${#1}" -eq 5 ] && nvm_echo "$1" | nvm_grep -E "^[rRgGbBcCyYmMkKeW]{1,}$" 1>/dev/null; then
|
||||
local INSTALLED_COLOR
|
||||
local LTS_AND_SYSTEM_COLOR
|
||||
local CURRENT_COLOR
|
||||
local NOT_INSTALLED_COLOR
|
||||
local DEFAULT_COLOR
|
||||
|
||||
INSTALLED_COLOR="$(echo "$1" | awk '{ print substr($0, 1, 1); }')"
|
||||
LTS_AND_SYSTEM_COLOR="$(echo "$1" | awk '{ print substr($0, 2, 1); }')"
|
||||
CURRENT_COLOR="$(echo "$1" | awk '{ print substr($0, 3, 1); }')"
|
||||
NOT_INSTALLED_COLOR="$(echo "$1" | awk '{ print substr($0, 4, 1); }')"
|
||||
DEFAULT_COLOR="$(echo "$1" | awk '{ print substr($0, 5, 1); }')"
|
||||
if ! nvm_has_colors; then
|
||||
nvm_echo "Setting colors to: ${INSTALLED_COLOR} ${LTS_AND_SYSTEM_COLOR} ${CURRENT_COLOR} ${NOT_INSTALLED_COLOR} ${DEFAULT_COLOR}"
|
||||
nvm_echo "WARNING: Colors may not display because they are not supported in this shell."
|
||||
else
|
||||
nvm_echo_with_colors "Setting colors to: \033[$(nvm_print_color_code "${INSTALLED_COLOR}") ${INSTALLED_COLOR}\033[$(nvm_print_color_code "${LTS_AND_SYSTEM_COLOR}") ${LTS_AND_SYSTEM_COLOR}\033[$(nvm_print_color_code "${CURRENT_COLOR}") ${CURRENT_COLOR}\033[$(nvm_print_color_code "${NOT_INSTALLED_COLOR}") ${NOT_INSTALLED_COLOR}\033[$(nvm_print_color_code "${DEFAULT_COLOR}") ${DEFAULT_COLOR}\033[0m"
|
||||
fi
|
||||
export NVM_COLORS="$1"
|
||||
else
|
||||
return 17
|
||||
fi
|
||||
}
|
||||
|
||||
nvm_get_colors() {
|
||||
local COLOR
|
||||
local SYS_COLOR
|
||||
if [ -n "${NVM_COLORS-}" ]; then
|
||||
case $1 in
|
||||
1) COLOR=$(nvm_print_color_code "$(echo "$NVM_COLORS" | awk '{ print substr($0, 1, 1); }')");;
|
||||
2) COLOR=$(nvm_print_color_code "$(echo "$NVM_COLORS" | awk '{ print substr($0, 2, 1); }')");;
|
||||
3) COLOR=$(nvm_print_color_code "$(echo "$NVM_COLORS" | awk '{ print substr($0, 3, 1); }')");;
|
||||
4) COLOR=$(nvm_print_color_code "$(echo "$NVM_COLORS" | awk '{ print substr($0, 4, 1); }')");;
|
||||
5) COLOR=$(nvm_print_color_code "$(echo "$NVM_COLORS" | awk '{ print substr($0, 5, 1); }')");;
|
||||
6)
|
||||
SYS_COLOR=$(nvm_print_color_code "$(echo "$NVM_COLORS" | awk '{ print substr($0, 2, 1); }')")
|
||||
COLOR=$(nvm_echo "$SYS_COLOR" | command tr '0;' '1;')
|
||||
;;
|
||||
*)
|
||||
nvm_err "Invalid color index, ${1-}"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
else
|
||||
case $1 in
|
||||
1) COLOR='0;34m';;
|
||||
2) COLOR='0;33m';;
|
||||
3) COLOR='0;32m';;
|
||||
4) COLOR='0;31m';;
|
||||
5) COLOR='0;37m';;
|
||||
6) COLOR='1;33m';;
|
||||
*)
|
||||
nvm_err "Invalid color index, ${1-}"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo "$COLOR"
|
||||
}
|
||||
|
||||
nvm_print_color_code() {
|
||||
case "${1-}" in
|
||||
r) nvm_echo '0;31m';;
|
||||
R) nvm_echo '1;31m';;
|
||||
g) nvm_echo '0;32m';;
|
||||
G) nvm_echo '1;32m';;
|
||||
b) nvm_echo '0;34m';;
|
||||
B) nvm_echo '1;34m';;
|
||||
c) nvm_echo '0;36m';;
|
||||
C) nvm_echo '1;36m';;
|
||||
m) nvm_echo '0;35m';;
|
||||
M) nvm_echo '1;35m';;
|
||||
y) nvm_echo '0;33m';;
|
||||
Y) nvm_echo '1;33m';;
|
||||
k) nvm_echo '0;30m';;
|
||||
K) nvm_echo '1;30m';;
|
||||
e) nvm_echo '0;37m';;
|
||||
W) nvm_echo '1;37m';;
|
||||
*) nvm_err 'Invalid color code';
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
nvm_print_formatted_alias() {
|
||||
local ALIAS
|
||||
ALIAS="${1-}"
|
||||
@@ -726,6 +820,21 @@ nvm_print_formatted_alias() {
|
||||
local VERSION_FORMAT
|
||||
local ALIAS_FORMAT
|
||||
local DEST_FORMAT
|
||||
|
||||
local INSTALLED_COLOR
|
||||
local SYSTEM_COLOR
|
||||
local CURRENT_COLOR
|
||||
local NOT_INSTALLED_COLOR
|
||||
local DEFAULT_COLOR
|
||||
local LTS_COLOR
|
||||
|
||||
INSTALLED_COLOR=$(nvm_get_colors 1)
|
||||
SYSTEM_COLOR=$(nvm_get_colors 2)
|
||||
CURRENT_COLOR=$(nvm_get_colors 3)
|
||||
NOT_INSTALLED_COLOR=$(nvm_get_colors 4)
|
||||
DEFAULT_COLOR=$(nvm_get_colors 5)
|
||||
LTS_COLOR=$(nvm_get_colors 6)
|
||||
|
||||
ALIAS_FORMAT='%s'
|
||||
DEST_FORMAT='%s'
|
||||
VERSION_FORMAT='%s'
|
||||
@@ -739,26 +848,26 @@ nvm_print_formatted_alias() {
|
||||
if [ -z "${NVM_NO_COLORS}" ] && nvm_has_colors; then
|
||||
ARROW='\033[0;90m->\033[0m'
|
||||
if [ "_${DEFAULT}" = '_true' ]; then
|
||||
NEWLINE=' \033[0;37m(default)\033[0m\n'
|
||||
NEWLINE=" \033[${DEFAULT_COLOR}(default)\033[0m\n"
|
||||
fi
|
||||
if [ "_${VERSION}" = "_${NVM_CURRENT-}" ]; then
|
||||
ALIAS_FORMAT='\033[0;32m%s\033[0m'
|
||||
DEST_FORMAT='\033[0;32m%s\033[0m'
|
||||
VERSION_FORMAT='\033[0;32m%s\033[0m'
|
||||
ALIAS_FORMAT="\033[${CURRENT_COLOR}%s\033[0m"
|
||||
DEST_FORMAT="\033[${CURRENT_COLOR}%s\033[0m"
|
||||
VERSION_FORMAT="\033[${CURRENT_COLOR}%s\033[0m"
|
||||
elif nvm_is_version_installed "${VERSION}"; then
|
||||
ALIAS_FORMAT='\033[0;34m%s\033[0m'
|
||||
DEST_FORMAT='\033[0;34m%s\033[0m'
|
||||
VERSION_FORMAT='\033[0;34m%s\033[0m'
|
||||
ALIAS_FORMAT="\033[${INSTALLED_COLOR}%s\033[0m"
|
||||
DEST_FORMAT="\033[${INSTALLED_COLOR}%s\033[0m"
|
||||
VERSION_FORMAT="\033[${INSTALLED_COLOR}%s\033[0m"
|
||||
elif [ "${VERSION}" = '∞' ] || [ "${VERSION}" = 'N/A' ]; then
|
||||
ALIAS_FORMAT='\033[1;31m%s\033[0m'
|
||||
DEST_FORMAT='\033[1;31m%s\033[0m'
|
||||
VERSION_FORMAT='\033[1;31m%s\033[0m'
|
||||
ALIAS_FORMAT="\033[${NOT_INSTALLED_COLOR}%s\033[0m"
|
||||
DEST_FORMAT="\033[${NOT_INSTALLED_COLOR}%s\033[0m"
|
||||
VERSION_FORMAT="\033[${NOT_INSTALLED_COLOR}%s\033[0m"
|
||||
fi
|
||||
if [ "_${NVM_LTS-}" = '_true' ]; then
|
||||
ALIAS_FORMAT='\033[1;33m%s\033[0m'
|
||||
ALIAS_FORMAT="\033[${LTS_COLOR}%s\033[0m"
|
||||
fi
|
||||
if [ "_${DEST%/*}" = "_lts" ]; then
|
||||
DEST_FORMAT='\033[1;33m%s\033[0m'
|
||||
DEST_FORMAT="\033[${LTS_COLOR}%s\033[0m"
|
||||
fi
|
||||
elif [ "_${VERSION}" != '_∞' ] && [ "_${VERSION}" != '_N/A' ]; then
|
||||
VERSION_FORMAT='%s *'
|
||||
@@ -1458,7 +1567,26 @@ nvm_print_versions() {
|
||||
local LTS
|
||||
local FORMAT
|
||||
local NVM_CURRENT
|
||||
local NVM_LATEST_LTS_COLOR
|
||||
local NVM_OLD_LTS_COLOR
|
||||
|
||||
local INSTALLED_COLOR
|
||||
local SYSTEM_COLOR
|
||||
local CURRENT_COLOR
|
||||
local NOT_INSTALLED_COLOR
|
||||
local DEFAULT_COLOR
|
||||
local LTS_COLOR
|
||||
|
||||
INSTALLED_COLOR=$(nvm_get_colors 1)
|
||||
SYSTEM_COLOR=$(nvm_get_colors 2)
|
||||
CURRENT_COLOR=$(nvm_get_colors 3)
|
||||
NOT_INSTALLED_COLOR=$(nvm_get_colors 4)
|
||||
DEFAULT_COLOR=$(nvm_get_colors 5)
|
||||
LTS_COLOR=$(nvm_get_colors 6)
|
||||
|
||||
NVM_CURRENT=$(nvm_ls_current)
|
||||
NVM_LATEST_LTS_COLOR=$(nvm_echo "${CURRENT_COLOR}" | command tr '0;' '1;')
|
||||
NVM_OLD_LTS_COLOR="${DEFAULT_COLOR}"
|
||||
local NVM_HAS_COLORS
|
||||
if [ -z "${NVM_NO_COLORS-}" ] && nvm_has_colors; then
|
||||
NVM_HAS_COLORS=1
|
||||
@@ -1475,19 +1603,19 @@ nvm_print_versions() {
|
||||
FORMAT='%15s'
|
||||
if [ "_${VERSION}" = "_${NVM_CURRENT}" ]; then
|
||||
if [ "${NVM_HAS_COLORS-}" = '1' ]; then
|
||||
FORMAT='\033[0;32m-> %12s\033[0m'
|
||||
FORMAT="\033[${CURRENT_COLOR}-> %12s\033[0m"
|
||||
else
|
||||
FORMAT='-> %12s *'
|
||||
fi
|
||||
elif [ "${VERSION}" = "system" ]; then
|
||||
if [ "${NVM_HAS_COLORS-}" = '1' ]; then
|
||||
FORMAT='\033[0;33m%15s\033[0m'
|
||||
FORMAT="\033[${SYSTEM_COLOR}%15s\033[0m"
|
||||
else
|
||||
FORMAT='%15s *'
|
||||
fi
|
||||
elif nvm_is_version_installed "${VERSION}"; then
|
||||
if [ "${NVM_HAS_COLORS-}" = '1' ]; then
|
||||
FORMAT='\033[0;34m%15s\033[0m'
|
||||
FORMAT="\033[${INSTALLED_COLOR}%15s\033[0m"
|
||||
else
|
||||
FORMAT='%15s *'
|
||||
fi
|
||||
@@ -1498,7 +1626,7 @@ nvm_print_versions() {
|
||||
LTS="${LTS##Latest }"
|
||||
LTS_LENGTH="${#LTS}"
|
||||
if [ "${NVM_HAS_COLORS-}" = '1' ]; then
|
||||
LTS_FORMAT=" \\033[1;32m%${LTS_LENGTH}s\\033[0m"
|
||||
LTS_FORMAT=" \\033[${NVM_LATEST_LTS_COLOR}%${LTS_LENGTH}s\\033[0m"
|
||||
else
|
||||
LTS_FORMAT=" %${LTS_LENGTH}s"
|
||||
fi
|
||||
@@ -1506,7 +1634,7 @@ nvm_print_versions() {
|
||||
*)
|
||||
LTS_LENGTH="${#LTS}"
|
||||
if [ "${NVM_HAS_COLORS-}" = '1' ]; then
|
||||
LTS_FORMAT=" \\033[0;37m%${LTS_LENGTH}s\\033[0m"
|
||||
LTS_FORMAT=" \\033[${NVM_OLD_LTS_COLOR}%${LTS_LENGTH}s\\033[0m"
|
||||
else
|
||||
LTS_FORMAT=" %${LTS_LENGTH}s"
|
||||
fi
|
||||
@@ -2430,6 +2558,46 @@ nvm() {
|
||||
do
|
||||
case $i in
|
||||
'-h'|'help'|'--help')
|
||||
NVM_NO_COLORS=""
|
||||
for j in "$@"; do
|
||||
if [ "${j}" = '--no-colors' ]; then
|
||||
NVM_NO_COLORS="${j}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
local INITIAL_COLOR_INFO
|
||||
local RED_INFO
|
||||
local GREEN_INFO
|
||||
local BLUE_INFO
|
||||
local CYAN_INFO
|
||||
local MAGENTA_INFO
|
||||
local YELLOW_INFO
|
||||
local BLACK_INFO
|
||||
local GREY_WHITE_INFO
|
||||
|
||||
if [ -z "${NVM_NO_COLORS-}" ] && nvm_has_colors; then
|
||||
INITIAL_COLOR_INFO='\033[0;32m g\033[0m \033[0;34m b\033[0m \033[0;33m y\033[0m \033[0;31m r\033[0m \033[0;37m e\033[0m'
|
||||
RED_INFO='\033[0;31m r\033[0m/\033[1;31mR\033[0m = \033[0;31mred\033[0m / \033[1;31mbold red\033[0m'
|
||||
GREEN_INFO='\033[0;32m g\033[0m/\033[1;32mG\033[0m = \033[0;32mgreen\033[0m / \033[1;32mbold green\033[0m'
|
||||
BLUE_INFO='\033[0;34m b\033[0m/\033[1;34mB\033[0m = \033[0;34mblue\033[0m / \033[1;34mbold blue\033[0m'
|
||||
CYAN_INFO='\033[0;36m c\033[0m/\033[1;36mC\033[0m = \033[0;36mcyan\033[0m / \033[1;36mbold cyan\033[0m'
|
||||
MAGENTA_INFO='\033[0;35m m\033[0m/\033[1;35mM\033[0m = \033[0;35mmagenta\033[0m / \033[1;35mbold magenta\033[0m'
|
||||
YELLOW_INFO='\033[0;33m y\033[0m/\033[1;33mY\033[0m = \033[0;33myellow\033[0m / \033[1;33mbold yellow\033[0m'
|
||||
BLACK_INFO='\033[0;30m k\033[0m/\033[1;30mK\033[0m = \033[0;30mblack\033[0m / \033[1;30mbold black\033[0m'
|
||||
GREY_WHITE_INFO='\033[0;37m e\033[0m/\033[1;37mW\033[0m = \033[0;37mlight grey\033[0m / \033[1;37mwhite\033[0m'
|
||||
else
|
||||
INITIAL_COLOR_INFO='gbYre'
|
||||
RED_INFO='r/R = red / bold red'
|
||||
GREEN_INFO='g/G = green / bold green'
|
||||
BLUE_INFO='b/B = blue / bold blue'
|
||||
CYAN_INFO='c/C = cyan / bold cyan'
|
||||
MAGENTA_INFO='m/M = magenta / bold magenta'
|
||||
YELLOW_INFO='y/Y = yellow / bold yellow'
|
||||
BLACK_INFO='k/K = black / bold black'
|
||||
GREY_WHITE_INFO='e/W = light grey / white'
|
||||
fi
|
||||
|
||||
local NVM_IOJS_PREFIX
|
||||
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
|
||||
local NVM_NODE_PREFIX
|
||||
@@ -2447,6 +2615,7 @@ nvm() {
|
||||
nvm_echo
|
||||
nvm_echo 'Usage:'
|
||||
nvm_echo ' nvm --help Show this message'
|
||||
nvm_echo ' --no-colors Suppress colored output'
|
||||
nvm_echo ' nvm --version Print out the installed version of nvm'
|
||||
nvm_echo ' nvm install [<version>] Download and install a <version>. Uses .nvmrc if available and version is omitted.'
|
||||
nvm_echo ' The following optional arguments, if provided, must appear directly after `nvm install`:'
|
||||
@@ -2502,6 +2671,18 @@ nvm() {
|
||||
nvm_echo ' --silent Silences stdout/stderr output when a version is omitted'
|
||||
nvm_echo ' nvm cache dir Display path to the cache directory for nvm'
|
||||
nvm_echo ' nvm cache clear Empty cache directory for nvm'
|
||||
nvm_echo ' nvm set-colors [<color codes>] Set five text colors using format "yMeBg". Available when supported.'
|
||||
nvm_echo ' Initial colors are:'
|
||||
nvm_echo_with_colors " ${INITIAL_COLOR_INFO}"
|
||||
nvm_echo ' Color codes:'
|
||||
nvm_echo_with_colors " ${RED_INFO}"
|
||||
nvm_echo_with_colors " ${GREEN_INFO}"
|
||||
nvm_echo_with_colors " ${BLUE_INFO}"
|
||||
nvm_echo_with_colors " ${CYAN_INFO}"
|
||||
nvm_echo_with_colors " ${MAGENTA_INFO}"
|
||||
nvm_echo_with_colors " ${YELLOW_INFO}"
|
||||
nvm_echo_with_colors " ${BLACK_INFO}"
|
||||
nvm_echo_with_colors " ${GREY_WHITE_INFO}"
|
||||
nvm_echo
|
||||
nvm_echo 'Example:'
|
||||
nvm_echo ' nvm install 8.0.0 Install a specific version number'
|
||||
@@ -2516,6 +2697,8 @@ nvm() {
|
||||
nvm_echo ' nvm install --lts Install the latest LTS version'
|
||||
nvm_echo ' nvm use --lts Use the latest LTS version'
|
||||
nvm_echo
|
||||
nvm_echo ' nvm set-colors cgYmW Set text colors to cyan, green, bold yellow, magenta, and white'
|
||||
nvm_echo
|
||||
nvm_echo 'Note:'
|
||||
nvm_echo ' to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)'
|
||||
nvm_echo
|
||||
@@ -3376,6 +3559,7 @@ nvm() {
|
||||
local PATTERN
|
||||
local NVM_NO_COLORS
|
||||
local NVM_NO_ALIAS
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "${1}" in
|
||||
--) ;;
|
||||
@@ -3413,6 +3597,7 @@ nvm() {
|
||||
local NVM_LTS
|
||||
local PATTERN
|
||||
local NVM_NO_COLORS
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "${1-}" in
|
||||
--) ;;
|
||||
@@ -3523,6 +3708,7 @@ nvm() {
|
||||
local NVM_NO_COLORS
|
||||
ALIAS='--'
|
||||
TARGET='--'
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "${1-}" in
|
||||
--) ;;
|
||||
@@ -3754,11 +3940,25 @@ nvm() {
|
||||
nvm_node_version_has_solaris_binary nvm_iojs_version_has_solaris_binary \
|
||||
nvm_curl_libz_support nvm_command_info nvm_is_zsh nvm_stdout_is_terminal \
|
||||
nvm_npmrc_bad_news_bears \
|
||||
nvm_get_colors nvm_set_colors nvm_print_color_code nvm_format_help_message_colors \
|
||||
nvm_echo_with_colors nvm_err_with_colors \
|
||||
>/dev/null 2>&1
|
||||
unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \
|
||||
NVM_CD_FLAGS NVM_BIN NVM_INC NVM_MAKE_JOBS \
|
||||
NVM_COLORS INSTALLED_COLOR SYSTEM_COLOR \
|
||||
CURRENT_COLOR NOT_INSTALLED_COLOR DEFAULT_COLOR LTS_COLOR \
|
||||
>/dev/null 2>&1
|
||||
;;
|
||||
"set-colors")
|
||||
local EXIT_CODE
|
||||
nvm_set_colors "${1-}"
|
||||
EXIT_CODE=$?
|
||||
if [ "$EXIT_CODE" -eq 17 ]; then
|
||||
>&2 nvm --help
|
||||
nvm_echo
|
||||
nvm_err_with_colors "\033[1;37mPlease pass in five \033[1;31mvalid color codes\033[1;37m. Choose from: rRgGbBcCyYmMkKeW\033[0m"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
>&2 nvm --help
|
||||
return 127
|
||||
|
Reference in New Issue
Block a user