(command.CommandList children: [ (C {<set>} {<-o>} {<errexit>}) (C {<set>} {<-o>} {<nounset>}) (C {<set>} {<-o>} {<pipefail>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_ROOT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {(DQ (${ Id.VSub_Name BASH_SOURCE))}) ) <'/..'> } spids: [70] ) ] ) (C {<source>} {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/hack/lib/init.sh'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DRY_RUN) op: assign_op.Equal rhs: {<false>} spids: [95] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FAIL_ON_DIFF) op: assign_op.Equal rhs: {<false>} spids: [98] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GODEP_OPTS) op: assign_op.Equal rhs: {(DQ )} spids: [101] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_VERBOSE) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name KUBE_VERBOSE> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<5>}) ) ) } spids: [109] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {(${ Id.VSub_Name KUBE_VERBOSE)} right: {<Id.Lit_Digits 6>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GODEP_OPTS) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <-v>)}])} spids: [137] ) ] ) ] spids: [118 134] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<getopts>} {(DQ <':df'>)} {<opt>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName '$opt')} arms: [ (case_arm pat_list: [{<d>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DRY_RUN) op: assign_op.Equal rhs: {<true>} spids: [175] ) ] ) ] spids: [168 169 179 -1] ) (case_arm pat_list: [{<f>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FAIL_ON_DIFF) op: assign_op.Equal rhs: {<true>} spids: [189] ) ] ) ] spids: [182 183 193 -1] ) (case_arm pat_list: [{(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'>)}] action: [ (command.Simple words: [{<echo>} {(DQ <'Invalid option: -'> ($ Id.VSub_DollarName '$OPTARG'))}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [196 197 216 -1] ) ] ) ] ) ) (C {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <ensure_dockerized> } ) (C {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <golang> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_env> } ) (C {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <ensure_single_dir_gopath> } ) (C {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <ensure_no_staging_repos_in_gopath> } ) (C {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <ensure_godep_version> } ) (C {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <create-fake-git-tree> } {(DQ (${ Id.VSub_Name KUBE_ROOT))} ) (C {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/hack/godep-restore.sh'>)}) (C {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <ensure-temp-dir> } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TMP_GOPATH) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_TEMP) <'/go'>)} spids: [307] ) ] ) (command.ShFunction name: updateGodepManifest body: (BraceGroup children: [ (command.Simple words: [ {<pushd>} {(DQ (${ Id.VSub_Name TMP_GOPATH) <'/src/k8s.io/'> (${ Id.VSub_Name repo))} ] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) (C {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <log> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <status> } {(DQ <'Updating godeps for k8s.io/'> (${ Id.VSub_Name repo))} ) (C {<rm>} {<-rf>} {<Godeps>}) (command.Pipeline children: [ (command.Simple words: [{<godep>} {<save>} {(${ Id.VSub_Name GODEP_OPTS)} {<'./...'>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] more_env: [ (env_pair name: GOPATH val: { (DQ (${ Id.VSub_Name TMP_GOPATH) <':'> (${ Id.VSub_Name GOPATH) <':'> (${ Id.VSub_Name GOPATH) <'/src/k8s.io/kubernetes/staging'> ) } spids: [367] ) ] do_fork: T ) (C {<sed>} {(SQ <'s/^/ /'>)}) ] negated: F ) (C {<local>} {<repo>}) (command.ForEach iter_name: repo iter_words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<ls>} {<-1>} {(${ Id.VSub_Name KUBE_ROOT) <'/staging/src/k8s.io'>}) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.Pipeline children: [ (C {<jq>} { (SQ < '.Deps |= map(.ImportPath |= ltrimstr("k8s.io/kubernetes/staging/src/"))' > ) } {<'Godeps/Godeps.json'>} ) (C {<jq>} {(SQ <'.Deps |= map((select(.ImportPath | (startswith("k8s.io/'>) (${ Id.VSub_Name repo) (SQ <'/") or . == "k8s.io/'>) (${ Id.VSub_Name repo) (SQ <'")) | .Rev |= "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") // .)'>) } ) (C {<jq>} {(SQ <'del(.Deps[].Comment)'>)}) (command.Simple words: [{<unexpand>} {<--first-only>} {<--tabs> <Id.Lit_Equals '='> <2>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'Godeps/Godeps.json.out'>} ) ] do_fork: T ) ] negated: F ) (C {<mv>} {<'Godeps/Godeps.json.out'>} {<'Godeps/Godeps.json'>}) ] ) ) (command.Simple words: [{<git>} {<add>} {<vendor>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) (command.Simple words: [{<git>} {<commit>} {<-a>} {<-m>} {(DQ <'Updated Godeps.json'>)}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) (command.Simple words: [{<popd>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) ] ) ) (command.ShFunction name: diffGodepManifest body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'ret='> <0>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<diff>} {<--ignore-matching-lines> <Id.Lit_Equals '='> (SQ <'^\\s*\\"GoVersion\\":'>)} {<--ignore-matching-line> <Id.Lit_Equals '='> (SQ <'^\\s*\\"GodepVersion\\":'>)} {<--ignore-matching-lines> <Id.Lit_Equals '='> (SQ <'^\\s*\\"Comment\\"'>)} {<-u>} { (DQ (${ Id.VSub_Name KUBE_ROOT) <'/staging/src/k8s.io/'> (${ Id.VSub_Name repo) <'/Godeps/Godeps.json'> ) } {(DQ (${ Id.VSub_Name TMP_GOPATH) <'/src/k8s.io/'> (${ Id.VSub_Name repo) <'/Godeps/Godeps.json'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ret) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [632] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ (${ Id.VSub_Name ret))} right: {(DQ <0>)} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name FAIL_ON_DIFF))} right: {<true>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {(${ Id.VSub_Name ret)} ) ] spids: [636 667] ) ] ) ] ) ) (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name TMP_GOPATH) <'/src/k8s.io'>)}) (command.ForEach iter_name: repo iter_words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<ls>} {(${ Id.VSub_Name KUBE_ROOT) <'/staging/src/k8s.io'>}) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C {<cp>} {<-a>} {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/staging/src/k8s.io/'> (${ Id.VSub_Name repo))} {(DQ (${ Id.VSub_Name TMP_GOPATH) <'/src/k8s.io/'>)} ) (C {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <create-fake-git-tree> } {(DQ (${ Id.VSub_Name TMP_GOPATH) <'/src/k8s.io/'> (${ Id.VSub_Name repo))} ) (C {<updateGodepManifest>}) (C {<diffGodepManifest>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name DRY_RUN))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<true>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} { (DQ (${ Id.VSub_Name TMP_GOPATH) <'/src/k8s.io/'> (${ Id.VSub_Name repo) <'/Godeps/Godeps.json'> ) } { (DQ (${ Id.VSub_Name KUBE_ROOT) <'/staging/src/k8s.io/'> (${ Id.VSub_Name repo) <'/Godeps/Godeps.json'> ) } ) (C {<git>} {<update-index>} {<--assume-unchanged>} { (DQ (${ Id.VSub_Name KUBE_ROOT) <'/staging/src/k8s.io/'> (${ Id.VSub_Name repo) <'/Godeps/Godeps.json'> ) } ) ] spids: [769 787] ) ] ) ] ) ) ] )