(CommandList
  children: [
    (C {(set)} {(-e)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:script_root)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})]
                  )
                left_token: <Left_Backtick "`">
                spids: [72 80]
              )
            }
          spids: [71]
        )
      ]
      spids: [71]
    )
    (C {(source)} {($ VSub_Name "$script_root") (/env.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:replicas)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name ETCD_REPLICAS>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(3)})
                spids: [89 93]
              )
            }
          spids: [88]
        )
      ]
      spids: [88]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CELLS)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name CELLS>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ <test>)})
                spids: [97 103]
              )
            }
          spids: [96]
        )
      ]
      spids: [96]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:cells)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(echo)} {($ VSub_Name "$CELLS")})
                          (C {(tr)} {(SQ <",">)} {(SQ <" ">)})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_Backtick "`">
                spids: [106 122]
              )
            }
          spids: [105]
        )
      ]
      spids: [105]
    )
    (ForEach
      iter_name: cell
      iter_words: [{(SQ <global>)} {($ VSub_Name "$cells")}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(echo)} {(DQ ("Generating discovery token for ") ($ VSub_Name "$cell") (" cell..."))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:discovery)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(curl)} {(-sL)} 
                                {(https) (Lit_Other ":") (//discovery.etcd.io/new) (Lit_Other "?") 
                                  (Lit_VarLike "size=") ($ VSub_Name "$replicas")
                                }
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [155 166]
                      )
                    }
                  spids: [154]
                )
              ]
              spids: [154]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$discovery"))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ("Failed to get etcd discovery token for cell '") ($ VSub_Name "$cell") 
                          ("'.")
                        )
                      }
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 182]
                )
              ]
              spids: [-1 199]
            )
            (C {(echo)} {(DQ ("Creating etcd service for ") ($ VSub_Name "$cell") (" cell..."))})
            (Pipeline
              children: [
                (C {(cat)} {(etcd-service-template.yaml)})
                (C {(sed)} {(-e)} {(DQ ("s/{{cell}}/") ($ VSub_Name "$cell") (/g))})
                (C {($ VSub_Name "$KUBECTL")} {(create)} {(-f)} {(-)})
              ]
              negated: False
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:sed_script) op:Equal rhs:{(DQ )} spids:[252])]
              spids: [252]
            )
            (ForEach
              iter_name: var
              iter_words: [{(cell)} {(discovery)} {(replicas)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:sed_script)
                          op: PlusEqual
                          rhs: 
                            {
                              (DQ ("s,{{") ($ VSub_Name "$var") ("}},") 
                                (BracedVarSub
                                  token: <VSub_Name var>
                                  prefix_op: VSub_Bang
                                  spids: [278 281]
                                ) (",g;")
                              )
                            }
                          spids: [273]
                        )
                      ]
                      spids: [273]
                    )
                  ]
                  spids: [270 286]
                )
              spids: [262 268]
            )
            (C {(echo)} 
              {(DQ ("Creating etcd replicationcontroller for ") ($ VSub_Name "$cell") (" cell..."))}
            )
            (Pipeline
              children: [
                (C {(cat)} {(etcd-controller-template.yaml)})
                (C {(sed)} {(-e)} {(DQ ($ VSub_Name "$sed_script"))})
                (C {($ VSub_Name "$KUBECTL")} {(create)} {(-f)} {(-)})
              ]
              negated: False
            )
          ]
          spids: [138 327]
        )
      spids: [130 136]
    )
  ]
)