From 772e29834098d029482f14ed0adca6a603afda80 Mon Sep 17 00:00:00 2001 From: Adam Harrison Date: Mon, 30 Mar 2015 17:49:44 +0100 Subject: [PATCH] Factor out CIDR arg parsing --- weave | 56 +++++++++++++++++++++++++++----------------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/weave b/weave index a3916e01..558ebd21 100755 --- a/weave +++ b/weave @@ -138,6 +138,16 @@ validate_cidr() { fi } +collect_cidr_args() { + CIDR_ARGS="" + CIDR_COUNT=0 + while is_cidr "$1"; do + CIDR_ARGS="$CIDR_ARGS $1" + CIDR_COUNT=$(($CIDR_COUNT + 1)) + shift 1 + done +} + run_iptables() { # -w is recent addition to iptables if [ -z "$CHECKED_IPTABLES_W" ] ; then @@ -660,18 +670,15 @@ case "$COMMAND" in DNS_ARGS=$(exec_remote dns-args "$@") [ "$1" = "--with-dns" ] && shift 1 fi - CIDRS="" - while is_cidr "$1"; do - CIDRS="$CIDRS $1" - shift 1 - done + collect_cidr_args "$@" + shift $CIDR_COUNT CONTAINER=$(docker run $DNS_ARGS -d "$@") if [ "$LOCAL" = "--local" ]; then create_bridge - with_container_netns $CONTAINER attach $CIDRS >/dev/null - tell_dns PUT $CONTAINER_ID $CIDRS + with_container_netns $CONTAINER attach $CIDR_ARGS >/dev/null + tell_dns PUT $CONTAINER_ID $CIDR_ARGS else - exec_remote attach $CIDRS $CONTAINER + exec_remote attach $CIDR_ARGS $CONTAINER fi echo $CONTAINER ;; @@ -681,40 +688,31 @@ case "$COMMAND" in ;; start) [ $# -gt 1 ] || usage - CIDRS="" - while is_cidr "$1"; do - CIDRS="$CIDRS $1" - shift 1 - done + collect_cidr_args "$@" + shift $CIDR_COUNT CONTAINER_ID="$1" create_bridge CONTAINER=$(docker start $CONTAINER_ID) - with_container_netns $CONTAINER_ID attach $CIDRS >/dev/null - tell_dns PUT $CONTAINER_ID $CIDRS + with_container_netns $CONTAINER_ID attach $CIDR_ARGS >/dev/null + tell_dns PUT $CONTAINER_ID $CIDR_ARGS echo $CONTAINER ;; attach) [ $# -gt 1 ] || usage - CIDRS="" - while is_cidr "$1"; do - CIDRS="$CIDRS $1" - shift 1 - done + collect_cidr_args "$@" + shift $CIDR_COUNT CONTAINER_ID="$1" create_bridge - with_container_netns $CONTAINER_ID attach $CIDRS >/dev/null - tell_dns PUT $CONTAINER_ID $CIDRS + with_container_netns $CONTAINER_ID attach $CIDR_ARGS >/dev/null + tell_dns PUT $CONTAINER_ID $CIDR_ARGS ;; detach) [ $# -gt 1 ] || usage - CIDRS="" - while is_cidr "$1"; do - CIDRS="$CIDRS $1" - shift 1 - done + collect_cidr_args "$@" + shift $CIDR_COUNT CONTAINER_ID="$1" - with_container_netns $CONTAINER_ID detach $CIDRS >/dev/null - tell_dns DELETE $CONTAINER_ID $CIDRS + with_container_netns $CONTAINER_ID detach $CIDR_ARGS >/dev/null + tell_dns DELETE $CONTAINER_ID $CIDR_ARGS ;; expose) [ $# -eq 1 ] || usage