(command.CommandList
  children: [
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_ne
                      left: {($ Id.VSub_Pound '$#')}
                      right: {<2>}
                    )
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Simple
              words: [
                {<echo>}
                {
                  (DQ <'Usage: '> 
                    (command_sub
                      left_token: <Id.Left_Backtick '`'>
                      command_list: 
                        (command.CommandList
                          children: [(C {<basename>} {($ Id.VSub_Number '$0')})]
                        )
                    ) <' IP-Address Chef-Environment'>
                  )
                }
              ]
              redirects: [(redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{</dev/stderr>})]
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
          ]
          spids: [14 27]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:HOSTNAME)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: (command.CommandList children:[(C {<hostname>} {<-f>})])
              )
            }
          spids: [58]
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {<knife>} {<client>} {<list>})
        (command.Simple
          words: [{<grep>} {($ Id.VSub_DollarName '$HOSTNAME')}]
          redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{</dev/null>})]
        )
      ]
      negated: F
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:RES)
          op: assign_op.Equal
          rhs: {($ Id.VSub_QMark '$?')}
          spids: [83]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_ne
                      left: {(DQ (${ Id.VSub_Name RES))}
                      right: {<0>}
                    )
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (C {<sudo>} {<bash>} {<-c>} 
              {(SQ <'EDITOR=true knife client create $(hostname -f) > /etc/chef/client.pem'>)}
            )
            (C {<knife>} {<actor>} {<map>})
            (C {<knife>} {<group>} {<add>} {<actor>} {<admins>} 
              {
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  command_list: (command.CommandList children:[(C {<hostname>} {<-f>})])
                )
              }
            )
          ]
          spids: [86 103]
        )
      ]
      else_action: [
        (C {<echo>} {(DQ ($ Id.VSub_DollarName '$HOSTNAME') <' already registered in Chef'>)})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: (bool_expr.Unary op_id:Id.BoolUnary_d child:{</home/vagrant>})
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (C {<knife>} {<bootstrap>} {<-E>} {($ Id.VSub_Number '$2')} {($ Id.VSub_Number '$1')} {<-i>} 
              {</chef-bcpc-host/vbox/insecure_private_key>} {<-x>} {<vagrant>} {<--sudo>}
            )
          ]
          spids: [156 167]
        )
      ]
      else_action: [
        (C {<knife>} {<bootstrap>} {<-E>} {($ Id.VSub_Number '$2')} {($ Id.VSub_Number '$1')} {<-x>} 
          {<ubuntu>} {<--sudo>}
        )
      ]
    )
    (C {<knife>} {<node>} {<run_list>} {<add>} 
      {
        (command_sub
          left_token: <Id.Left_DollarParen '$('>
          command_list: (command.CommandList children:[(C {<hostname>} {<-f>})])
        )
      } {(SQ <'role[BCPC-Bootstrap]'>)}
    )
    (C {<sudo>} {<chef-client>})
  ]
)