(command.CommandList children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id:BoolUnary_z child:{(DQ ($ VSub_Number '$1'))}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:CLUSTERNAME) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id:BoolUnary_f child:{(DQ (cluster.txt))}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(DQ ('Error: cluster.txt not found'))}) (command.ControlFlow token:<ControlFlow_Exit exit>) ] ) ] ) (C {(echo)} {(-e)} {(DQ ('<html>'))}) (C {(echo)} {(-e)} { (DQ ('<head>') (Lit_Other '\\') ('n<title>Cluster ') ($ VSub_DollarName '$CLUSTERNAME') (' members</title></head>') ) } ) (C {(echo)} {(-e)} {(DQ ('<body>'))}) (C {(echo)} {(-e)} { (DQ ('<font color=slategray>') (Lit_Other '\\') ('n<h2>Cluster ') ($ VSub_DollarName '$CLUSTERNAME') (' members</h2>') (Lit_Other '\\') ('n</font>') ) } ) (C {(echo)} {(-e)} { (DQ ('<table border=') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) (1) (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) ('>') ) } ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(read)} {(HOSTNAME)} {(MACADDR)} {(IPADDR)} {(ILOIPADDR)} {(DOMAIN)} {(ROLE)}) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobEqual left: {(DQ ($ VSub_DollarName '$ROLE'))} right: {(DQ (head))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:COLOR) op:Equal rhs:{(red)})] ) ] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobEqual left: {(DQ ($ VSub_DollarName '$ROLE'))} right: {(DQ (bootstrap))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:COLOR) op:Equal rhs:{(purple)})] ) ] ) ] else_action: [ (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:COLOR) op:Equal rhs:{(black)})] ) ] ) (C {(echo)} {(-e)} {(DQ ('<tr>'))}) (C {(echo)} {(-e)} {(DQ ('<td>') ($ VSub_DollarName '$HOSTNAME') ('</td>'))}) (C {(echo)} {(-e)} { (DQ ('<td><a href=') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) ('https://') ($ VSub_DollarName '$IPADDR') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) ('>host</a></td>') ) } ) (C {(echo)} {(-e)} { (DQ ('<td><a href=') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) ('https://') ($ VSub_DollarName '$ILOIPADDR') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) ('>ilo</a></td>') ) } ) (C {(echo)} {(-e)} {(DQ ('<td>'))}) (C {(echo)} {(-e)} {(DQ ('<font color=') ($ VSub_DollarName '$COLOR') ('>'))}) (C {(echo)} {(-e)} {(DQ ($ VSub_DollarName '$ROLE'))}) (C {(echo)} {(-e)} {(DQ ('</font>'))}) (C {(echo)} {(-e)} {(DQ ('</td>'))}) (C {(echo)} {(-e)} {(DQ ('</tr>'))}) ] ) redirects: [(redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(cluster.txt)})] ) (C {(echo)} {(-e)} {(DQ ('</table>'))}) (C {(echo)} {(-e)} {(DQ ('</body>'))}) (C {(echo)} {(-e)} {(DQ ('</html>'))}) ] )