(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!'))})] ) ] )