# -*- mode: shell-script -*- CYCLOS_CONFIG="/usr/local/cyclos/WEB-INF/classes/cyclos.properties" HOST_CYCLOS_CONFIG="$SERVICE_CONFIGSTORE$CYCLOS_CONFIG" cyclos:build() { docker pull "$DOCKER_BASE_IMAGE" || return 1 mkdir -p "$(dirname "$HOST_CYCLOS_CONFIG")" container_id=$(docker run -d --entrypoint true "$DOCKER_BASE_IMAGE") || return 1 mkdir -p "$(dirname "$HOST_CYCLOS_CODE")" && docker cp "$container_id":"$CYCLOS_CONFIG" "$HOST_CYCLOS_CONFIG" && docker rm "$container_id" } named-relation-get-target-service() { local relation="$1" ts if ! read-0 ts _ _ < <(get_service_relation "$SERVICE_NAME" "$relation"); then err "Couldn't find relation ${DARKCYAN}$relation${NORMAL}." return 1 fi e "$ts" } ## XXXvlab: Consider for inclusion in compose-core relation-get-config() { local relation="$1" ts relation_dir ts=$(named-relation-get-target-service "$relation") || return 1 relation_dir=$(get_relation_data_dir "$SERVICE_NAME" "$ts" "$relation") || return 1 cat "${relation_dir}/data" } named-relation-get() { local relation="$1" key="$2" config config=$(relation-get-config "$relation") || return 1 e "$config" | shyaml get-value "$key" || { err "Couldn't get ${WHITE}$key${NORMAL} value" \ "in ${DARKCYAN}$relation${NORMAL} relation's data." exit 1 } } sql() { ( DBNAME="$(named-relation-get "postgres-database" dbname)" || exit 1 ts=$(named-relation-get-target-service "postgres-database") || exit 1 export SERVICE_NAME="$ts" export SERVICE_DATASTORE="$DATASTORE/$SERVICE_NAME" DOCKER_BASE_IMAGE=$(service_ensure_image_ready "$SERVICE_NAME") || exit 1 export DOCKER_BASE_IMAGE target_charm=$(get_service_charm "$ts") || exit 1 target_charm_path=$(charm.get_dir "$target_charm") || exit 1 set +e . "$target_charm_path/lib/common" set -e ensure_db_docker_running ddb "$DBNAME" ) }