(List (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS errexit]} ) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS nounset]} ) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS pipefail]} ) (= scope= flags=0 words=[] bindings=[('KUBE_ROOT', {[ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BASH_SOURCE]]})] [LIT_CHARS /..]})]) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/common.sh]]} ) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('KUBE_RELEASE_BUCKET_URL', {[DQ [LIT_CHARS "https://storage.googleapis.com/kubernetes-release"]]})]) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('KUBE_DEV_RELEASE_BUCKET_URL', {[DQ [LIT_CHARS "https://storage.googleapis.com/kubernetes-release-dev"]]})]) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('KUBE_TAR_NAME', {[DQ [LIT_CHARS kubernetes.tar.gz]]})]) (FunctionDef usage [] (List (Com {[LIT_CHARS echo]} {[DQ [VarSub 0][LIT_CHARS " [-v] "]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " -v: Don't get tars, just print the version number"]]} ) (Com {[LIT_CHARS echo]} {[DQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ / (e.g. \"release/stable\",">]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) ) ) (= scope= flags=0 words=[] bindings=[('print_version', {[LIT_CHARS false]})]) (While (Com {[LIT_CHARS getopts]} {[DQ [LIT_CHARS ":vh"]]} {[LIT_CHARS opt]} ) (Case to_match={[VarSub opt]}, pat_word_list=[[{[LIT_CHARS v]}], [{[LIT_CHARS h]}], [{[\ LIT_ESCAPED_CHAR "\\?"]}]] (= scope= flags=0 words=[] bindings=[('print_version', {[DQ [LIT_CHARS true]]})]) (List (Com {[LIT_CHARS usage]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]} ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Invalid option: -"][VarSub OPTARG]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS usage]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) (Com {[LIT_CHARS shift]} {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub OPTIND]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]} ) (If (DBracket {B2 BINARY_INT_NE {[VarSub #]} {[LIT_CHARS 1]}}) (List (Com {[LIT_CHARS usage]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS set_binary_version]} {[DQ [VarSub 1]]} ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub print_version]]} {[DQ [LIT_CHARS true]]}}) (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBE_VERSION]]} ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Using version at "][VarSub 1][LIT_CHARS ": "][VarSub KUBE_VERSION]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (If (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[VarSub KUBE_VERSION]} {[VarSub KUBE_RELEASE_VERSION_REGEX]}}) (Com {[LIT_CHARS curl]} {[LIT_CHARS --fail]} {[LIT_CHARS -o]} {[DQ [LIT_CHARS kubernetes-][VarSub KUBE_VERSION][LIT_CHARS .tar.gz]]} {[DQ [VarSub KUBE_RELEASE_BUCKET_URL][LIT_CHARS /release/][VarSub KUBE_VERSION][LIT_CHARS /][VarSub KUBE_TAR_NAME]]} ) (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[VarSub KUBE_VERSION]} {[VarSub KUBE_CI_VERSION_REGEX]}}) (Com {[LIT_CHARS curl]} {[LIT_CHARS --fail]} {[LIT_CHARS -o]} {[DQ [LIT_CHARS kubernetes-][VarSub KUBE_VERSION][LIT_CHARS .tar.gz]]} {[DQ [VarSub KUBE_DEV_RELEASE_BUCKET_URL][LIT_CHARS /ci/][VarSub KUBE_VERSION][LIT_CHARS /][VarSub KUBE_TAR_NAME]]} ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Version doesn't match regexp"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) ) )