(command.CommandList
  children: [
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{(DQ ($ Id.VSub_Number '$2'))})
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:14)
            )
          ]
          action: [
            (C {(echo)} 
              {(DQ ('Usage ') ($ Id.VSub_Number '$0') (': <chef-server-url> <chef-server-password>'))}
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:28)
              arg_word: {(1)}
            )
          ]
          spids: [3 16]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CHEFSERVER)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_Number '$1'))}
          spids: [34]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CHEFPASSWD)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_Number '$2'))}
          spids: [39]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.LogicalNot
                      child: (bool_expr.Unary op_id:Id.BoolUnary_d child:{(.chef)})
                    )
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:55)
            )
          ]
          action: [
            (command.Simple
              words: [{(knife)} {(configure)} {(--initial)}]
              redirects: [
                (redir.HereDoc
                  op: (Token id:Id.Redir_DLess val:'<<' span_id:66)
                  fd: -1
                  here_begin: {(EOF)}
                  here_end_span_id: 85
                  stdin_parts: [
                    ('.chef/knife.rb\n')
                    (${ Id.VSub_Name CHEFSERVER)
                    ('\n')
                    ('\n')
                    ('\n')
                    ('/etc/chef-server/admin.pem\n')
                    ('\n')
                    ('/etc/chef-server/chef-validator.pem\n')
                    ('.\n')
                    (${ Id.VSub_Name CHEFPASSWD)
                    ('\n')
                  ]
                )
              ]
            )
          ]
          spids: [44 57]
        )
      ]
      else_action: [(C {(echo)} {(DQ ('Knife configuration already exists!'))})]
    )
  ]
)