2 Commits

  1. 61
      bin/compose-core

61
bin/compose-core

@ -5303,15 +5303,26 @@ Usage: status [options] [SERVICE...]
Options:
-h, --help Print this message and quit
-a, --all Display status of all services
(removes all filter, and will add a
'root' first column by default)
-c, --column Column to display, can provide several
separated by commas, or option can be repeated.
-a, --all Display status of all services (removes all
filter, and will add a 'root' first column by
default)
-c, --column Columns to display, can provide several separated
by commas, or option can be repeated. You can add
a sign prefix to the name of the column to force
the alignment of the column (+: right, -: left),
(default: ${state_columns_default_msg})
-f, --filter Filter services by a key=value pair,
separated by commas or can be repeated.
(default: --filter root=yes)
-r, --raw Raw data output (no colors nor alignment)
-0 Separate field with NUL char. Implies raw data
output.
"
while read-0 arg; do
case "$arg" in
@ -5319,6 +5330,19 @@ Options:
echo "$help"
exit 0
;;
--raw|-r|-0)
state_raw_output="$arg";
## check if any state_columns have alignements specs
for col in "${state_columns[@]}"; do
if [[ "$col" == [-+]* ]]; then
err "Cannot use $arg and provide columns with alignment specs."
exit 1
fi
done
if [[ "$arg" == "-0" ]]; then
state_raw_output_nul=1
fi
;;
--all|-a)
if [ "${#state_services[@]}" -gt 0 ]; then
err "Cannot use --all and provide services at the same time."
@ -5333,10 +5357,19 @@ Options:
--column|-c)
read-0 value
if [[ "$value" == *,* ]]; then
state_columns+=(${value//,/ })
state_columns_candidate=(${value//,/ })
else
state_columns+=("$value")
state_columns_candidate=("$value")
fi
if [[ -n "$state_raw_output" ]]; then
for col in "${state_columns_candidate[@]}"; do
if [[ "$col" == [-+]* ]]; then
err "Cannot use ${state_raw_output} and provide columns with alignment specs."
exit 1
fi
done
fi
state_columns+=("${state_columns_candidate[@]}")
;;
--filter|-f)
if [ "${#state_services[@]}" -gt 0 ]; then
@ -5704,6 +5737,7 @@ if [ "$action" == "status" ]; then
for col in "${state_columns_raw[@]}"; do
color=
value="${!col}"
if [ -z "$state_raw_output" ]; then
read -r -- value_trim <<<"${!col}"
case "${col//_/-}" in
root)
@ -5736,6 +5770,7 @@ if [ "$action" == "status" ]; then
;;
esac
color="${color^^}"
fi
if [ -n "$color" ]; then
values+=("${!color}$value${NORMAL}")
else
@ -5746,9 +5781,13 @@ if [ "$action" == "status" ]; then
for value in "${values[@]}"; do
if [ -n "$first" ]; then
first=
else
if [ -n "$state_raw_output_nul" ]; then
printf "\0"
else
printf " "
fi
fi
printf "%s" "$value"
done
printf "\n"
@ -5812,7 +5851,13 @@ if [ "$action" == "status" ]; then
for col in "${state_columns_raw[@]}"; do
p0 "${values[$col]}"
done
done | col-0:normalize:size "${state_columns_align}"
done | {
if [ -z "$state_raw_output" ]; then
col-0:normalize:size "${state_columns_align}"
else
cat
fi
}
echo 0
)
if [ "$E" != 0 ]; then

Loading…
Cancel
Save