Browse Source

new: [compose-core] add ``upstream-version`` field in ``status`` action

Valentin Lab 3 weeks ago
parent
commit
db2c579369
  1. 45
      bin/compose-core

45
bin/compose-core

@ -2734,6 +2734,39 @@ service:state() {
} }
export -f service:state export -f service:state
charm:upstream-version() {
local charm="$1" version cache_file="$state_tmpdir/$FUNCNAME.cache.$1" path
if [ -e "$cache_file" ]; then
cat "$cache_file"
return 0
fi
if ! path=$(charm.has_direct_action "$charm" "upstream-versions"); then
return 0
fi
version=$("$path" -l 1) || {
err "Failed to get upstream version for ${DARKYELLOW}$charm${NORMAL}."
return 1
}
if path=$(charm.has_direct_action "$charm" "upstream-version-normalize"); then
version=$("$path" "$version") || {
err "Failed to normalize upstream version for ${DARKYELLOW}$charm${NORMAL}."
return 1
}
fi
echo "$version" > "$cache_file"
e "$version"
}
service:upstream-version() {
local service="$1" version
charm=$(get_service_charm "$service") || return 1
version=$(charm:upstream-version "$charm") || return 1
e "$version"
}
export -f service:upstream-version
_get_charm_metadata_uses() { _get_charm_metadata_uses() {
local metadata="$1" cache_file="$CACHEDIR/$FUNCNAME.cache.$(printf "%s\0" "$@" | md5_compat)" local metadata="$1" cache_file="$CACHEDIR/$FUNCNAME.cache.$(printf "%s\0" "$@" | md5_compat)"
if [ -e "$cache_file" ]; then if [ -e "$cache_file" ]; then
@ -5650,7 +5683,7 @@ if [ "$action" == "status" ]; then
if [[ "$col" == "-"* ]]; then if [[ "$col" == "-"* ]]; then
col=${col#-} col=${col#-}
fi fi
state_columns_raw+=("$col")
state_columns_raw+=("${col//-/_}")
done done
state_columns_align="" state_columns_align=""
for col in "${state_columns[@]}"; do for col in "${state_columns[@]}"; do
@ -5667,7 +5700,7 @@ if [ "$action" == "status" ]; then
color= color=
value="${!col}" value="${!col}"
read -r -- value_trim <<<"${!col}" read -r -- value_trim <<<"${!col}"
case "$col" in
case "${col//_/-}" in
root) root)
case "$value_trim" in case "$value_trim" in
0) value=" ";; 0) value=" ";;
@ -5721,12 +5754,12 @@ if [ "$action" == "status" ]; then
IFS="=" read -r key value <<<"$filter" IFS="=" read -r key value <<<"$filter"
## if not already in state_columns_raw ## if not already in state_columns_raw
[[ " ${state_columns_raw[*]} " == *" $key "* ]] || [[ " ${state_columns_raw[*]} " == *" $key "* ]] ||
filter_cols+=("$key")
filter_cols+=("${key//-/_}")
done done
for service in "${services_args[@]}"; do for service in "${services_args[@]}"; do
declare -A values=() declare -A values=()
for col in "${state_columns_raw[@]}" "${filter_cols[@]}"; do for col in "${state_columns_raw[@]}" "${filter_cols[@]}"; do
case "$col" in
case "${col//_/-}" in
root) root)
if [[ " ${compose_yml_services[*]} " == *" ${service} "* ]]; then if [[ " ${compose_yml_services[*]} " == *" ${service} "* ]]; then
value="1" value="1"
@ -5744,6 +5777,10 @@ if [ "$action" == "status" ]; then
type) type)
value=$(get_service_type "$service") || { echo 1; exit 1; } value=$(get_service_type "$service") || { echo 1; exit 1; }
;; ;;
upstream-version)
value=$(service:upstream-version "$service") || { echo 1; exit 1; }
value=${value:-N/A}
;;
*) *)
if has_service_action "$service" "get-$col" >/dev/null; then if has_service_action "$service" "get-$col" >/dev/null; then
state_msg=$(run_service_action "$service" "get-$col") || { echo 1; exit 1 ; } state_msg=$(run_service_action "$service" "get-$col") || { echo 1; exit 1 ; }

Loading…
Cancel
Save