%PDF- %PDF-
| Direktori : /proc/thread-self/root/proc/3522530/root/opt/plesk/phpenv/libexec/ |
| Current File : //proc/thread-self/root/proc/3522530/root/opt/plesk/phpenv/libexec/phpenv-help |
#!/usr/bin/env bash
#
# Summary: Display help for a command
#
# Usage: phpenv help [--usage] COMMAND
#
# Parses and displays help contents from a command's source file.
#
# A command is considered documented if it starts with a comment block
# that has a `Summary:' or `Usage:' section. Usage instructions can
# span multiple lines as long as subsequent lines are indented.
# The remainder of the comment block is displayed as extended
# documentation.
set -e
[ -n "$PHPENV_DEBUG" ] && set -x
command_path() {
local command="$1"
command -v phpenv-"$command" || command -v phpenv-sh-"$command" || true
}
extract_initial_comment_block() {
sed -ne "
/^#/ !{
q
}
s/^#$/# /
/^# / {
s/^# //
p
}
"
}
collect_documentation() {
awk '
/^Summary:/ {
summary = substr($0, 10)
next
}
/^Usage:/ {
reading_usage = 1
usage = usage "\n" $0
next
}
/^( *$| )/ && reading_usage {
usage = usage "\n" $0
next
}
{
reading_usage = 0
help = help "\n" $0
}
function escape(str) {
gsub(/[`\\$"]/, "\\\\&", str)
return str
}
function trim(str) {
sub(/^\n*/, "", str)
sub(/\n*$/, "", str)
return str
}
END {
if (usage || summary) {
print "summary=\"" escape(summary) "\""
print "usage=\"" escape(trim(usage)) "\""
print "help=\"" escape(trim(help)) "\""
}
}
'
}
documentation_for() {
local filename="$(command_path "$1")"
if [ -n "$filename" ]; then
extract_initial_comment_block < "$filename" | collect_documentation
fi
}
print_summary() {
local command="$1"
local summary usage help
eval "$(documentation_for "$command")"
if [ -n "$summary" ]; then
printf " %-9s %s\n" "$command" "$summary"
fi
}
print_summaries() {
for command; do
print_summary "$command"
done
}
print_help() {
local command="$1"
local summary usage help
eval "$(documentation_for "$command")"
[ -n "$help" ] || help="$summary"
if [ -n "$usage" -o -n "$summary" ]; then
local buffer="$(
print_usage $command;
if [ -n "$help" ]; then \
echo -e "\n$help\n";
fi
)"
echo "${buffer}"|$([[ $(tput lines) -lt $(echo "${buffer}"| wc -l ) ]] && echo less || echo cat)
else
echo "Sorry, this command isn't documented yet." >&2
return 1
fi
}
print_usage() {
local command="$1"
local summary usage help
eval "$(documentation_for "$command")"
echo "${command}:"
echo ${command//?/=}=
[[ -n "$summary" ]] && printf " %s\n\n" "$summary"
[[ -z "$usage" ]] || echo "$usage"
}
unset usage
if [ "$1" = "--usage" ]; then
usage="1"
shift
fi
if [ -z "$1" ] || [ "$1" == "phpenv" ]; then
echo "phpenv:"
printf "%0.1s" "="{1..7}
echo -e "\n PHP multi-version installation and management utility.\n"
echo "Usage: phpenv <command> [<args>]"
[ -z "$usage" ] || exit
echo
echo "Some useful phpenv commands are:"
print_summaries commands configure local global shell install uninstall rehash version versions which whence
echo
echo "See \`phpenv help <command>' for information on a specific command."
echo "For full documentation, see: https://github.com/phpenv/phpenv#readme"
else
command="$1"
if [ -n "$(command_path "$command")" ]; then
if [ -n "$usage" ]; then
print_usage "$command"
else
print_help "$command"
fi
else
echo "phpenv: no such command \`$command'" >&2
exit 1
fi
fi