diff --git a/bin/compose b/bin/compose index e637c4a..75fc5b0 100755 --- a/bin/compose +++ b/bin/compose @@ -812,6 +812,7 @@ get_docker_compose_links() { merge_yaml_str "${deps[@]}" | tee "$cache_file" || return 1 if [ "${PIPESTATUS[0]}" != 0 ]; then rm "$cache_file" + err "Failed to merge YAML from all ${WHITE}links${NORMAL} dependencies." return 1 fi } @@ -890,6 +891,7 @@ _get_docker_compose_service_mixin() { merge_yaml_str "$base_mixin" "$links_yaml" "$docker_compose_options" || return 1 fi | tee "$cache_file" if [ "${PIPESTATUS[0]}" != 0 ]; then + err "Failed to constitute the base YAML for service '${DARKYELLOW}$service${NORMAL}'" rm "$cache_file" return 1 fi @@ -949,7 +951,10 @@ get_docker_compose () { debug " ..finished all mixins for $DARKYELLOW$target_service$NORMAL $GRAY(in $((SECONDS - start))s)$NORMAL" done - docker_compose_services=$(merge_yaml_str "${entries[@]}") || return 1 + docker_compose_services=$(merge_yaml_str "${entries[@]}") || { + err "Failed to merge YAML services entries together." + return 1 + } base_v2="version: '2.0' networks: @@ -984,7 +989,10 @@ _get_compose_service_def_cached () { value=$(echo "$docker_compose" | shyaml get-value "$service" 2>/dev/null) if ! echo "$value" | shyaml get-value "charm" >/dev/null 2>&1; then if charm.exists "$service"; then - value=$(merge_yaml <(echo "charm: $service") <(echo "$value")) || return 1 + value=$(merge_yaml <(echo "charm: $service") <(echo "$value")) || { + err "Can't merge YAML infered 'charm: $service' with base ${DARKYELLOW}$service${NORMAL} YAML definition." + return 1 + } else err "No ${WHITE}charm${NORMAL} value for service $DARKYELLOW$service$NORMAL" \ "in compose, nor same name charm found." @@ -2101,7 +2109,10 @@ _get_docker_compose_mixin_from_metadata_cached() { image_or_build_statement="build: $(charm.get_dir "$charm")/build" fi if [ "$image_or_build_statement" ]; then - mixin=$(merge_yaml_str "$mixin" "$image_or_build_statement") + mixin=$(merge_yaml_str "$mixin" "$image_or_build_statement") || { + err "Failed to merge yaml with image or build YAML statement." + return 1 + } fi echo "$mixin" | tee "$cache_file" }