From 5dbf63f86529c1880f5aa0990aaed2cda6011f11 Mon Sep 17 00:00:00 2001 From: Valentin Lab Date: Thu, 28 Jan 2016 12:56:30 +0700 Subject: [PATCH] fix: avoid calculating md5 when there is only one argument. --- bin/compose | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/bin/compose b/bin/compose index 13dc0b9..84ca9ac 100755 --- a/bin/compose +++ b/bin/compose @@ -196,7 +196,7 @@ export -f file_put _get_docker_compose_links() { - local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" \ + local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" \ links charm charm_part master_charm if [ -z "$service" ]; then print_syntax_error "$FUNCNAME: Please specify a service as first argument." @@ -227,7 +227,7 @@ _get_docker_compose_links() { _get_docker_compose_opts() { - local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" \ + local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" \ links charm charm_part master_charm if [ -z "$service" ]; then print_syntax_error "$FUNCNAME: Please specify a service as first argument." @@ -255,7 +255,7 @@ _get_docker_compose_opts() { ## Some metadata.yml (of subordinates) will indeed modify other ## services than themselves. _get_docker_compose_service_mixin() { - local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" links charm charm_part + local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" links charm charm_part if [ -z "$service" ]; then print_syntax_error "$FUNCNAME: Please specify a service as first argument." return 1 @@ -286,8 +286,7 @@ _get_docker_compose_service_mixin() { merge_yaml_str "$links_yaml" "$charm_yaml" "$docker_compose_options" else echo "$links_yaml" - fi > "$cache_file" - cat "$cache_file" + fi | tee "$cache_file" } export -f _get_docker_compose_service_mixin @@ -299,7 +298,7 @@ export -f _get_docker_compose_service_mixin ## @export ## @cache: !system !nofail +stdout get_docker_compose () { - local cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" entries services service + local cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" entries services service start if [ -e "$cache_file" ]; then # debug "$FUNCNAME: cache hit ($*)" cat "$cache_file" @@ -347,7 +346,7 @@ export -f get_docker_compose ## XXXvlab: a lot to be done to cache the results get_compose_service_def () { - local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" + local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" if [ -e "$cache_file" ]; then # debug "$FUNCNAME: cache hit ($*)" cat "$cache_file" @@ -378,7 +377,7 @@ export -f get_compose_service_def get_service_charm () { - local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" + local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" if [ -e "$cache_file" ]; then # debug "$FUNCNAME: cache hit ($*)" cat "$cache_file" @@ -419,7 +418,7 @@ export -f get_service_def ## Return the base docker image name of a service service_base_docker_image() { - local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" \ + local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" \ master_charm charm service_image service_build service_dockerfile if [ -e "$cache_file" ]; then # debug "$FUNCNAME: cache hit ($*)" @@ -597,7 +596,7 @@ export -f array_member get_charm_relation_def () { - local charm="$1" relation_name="$2" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" \ + local charm="$1" relation_name="$2" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" \ relation_def metadata if [ -e "$cache_file" ]; then # debug "$FUNCNAME: cache hit ($*)" @@ -612,7 +611,7 @@ export -f get_charm_relation_def get_charm_tech_dep_orientation_for_relation() { - local charm="$1" relation_name="$2" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" \ + local charm="$1" relation_name="$2" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" \ relation_def metadata value if [ -e "$cache_file" ]; then # debug "$FUNCNAME: cache hit ($*)" @@ -630,7 +629,7 @@ export -f get_charm_tech_dep_orientation_for_relation ## Use compose file to get deps, and relation definition in metadata.yml ## for tech-dep attribute. get_service_deps() { - local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" + local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" if [ -e "$cache_file" ]; then # debug "$FUNCNAME: cache hit ($*)" cat "$cache_file" @@ -714,8 +713,7 @@ get_ordered_service_dependencies() { fi done i=$((i + 1)) - done > "$cache_file" - cat "$cache_file" + done | tee "$cache_file" } export -f get_ordered_service_dependencies @@ -950,7 +948,7 @@ export -f _run_service_relation get_compose_relations () { - local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" relation_name relation_def + local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" relation_name relation_def if [ -e "$cache_file" ]; then # debug "$FUNCNAME: cache hit ($*)" @@ -1103,7 +1101,7 @@ export -f _run_service_action_relation get_relation_data_dir() { - local charm="$1" target_charm="$2" relation_name="$3" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" + local charm="$1" target_charm="$2" relation_name="$3" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" if [ -e "$cache_file" ]; then # debug "$FUNCNAME: cache hit ($*)" cat "$cache_file" @@ -1149,7 +1147,7 @@ export -f get_relation_data_file has_service_action () { - local service="$1" action="$2" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" \ + local service="$1" action="$2" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" \ target_script charm target_charm if [ -e "$cache_file" ]; then # debug "$FUNCNAME: cache hit ($*)" @@ -1204,7 +1202,7 @@ export -f run_service_action get_compose_relation_config() { - local service=$1 relation_config cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" + local service=$1 relation_config cache_file="$state_tmpdir/$FUNCNAME.cache.$1" if [ -e "$cache_file" ]; then # debug "$FUNCNAME: cache hit ($*)" cat "$cache_file" @@ -1242,7 +1240,7 @@ export -f get_compose_relation_config _get_master_charm_for_service() { - local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" \ + local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" \ charm metadata requires master_charm target_charm target_service service_def if [ -e "$cache_file" ]; then @@ -1308,7 +1306,7 @@ export -f _get_master_charm_for_service _get_top_master_charm_for_service() { - local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" \ + local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" \ current_service if [ -e "$cache_file" ]; then @@ -1345,7 +1343,7 @@ export -f get_charm_metadata ## docker-compose entry (thinking of subordinates). The result ## will be merge with master charms. get_docker_compose_mixin_from_metadata() { - local charm="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" \ + local charm="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" \ metadata_file metadata volumes docker_compose subordinate image if [ -e "$cache_file" ]; then