(List (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub 1]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: "][VarSub 0][LIT_CHARS " environment (role)"]]} ) (Com {[LIT_CHARS exit]} ) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('ENVIRONMENT', {[DQ [VarSub 1]]})]) ) (= scope= flags=0 words=[] bindings=[('ROLE_REQUESTED', {[DQ [VarSub 2]]})]) (If (DBracket {B1 UNARY_FILE_f {[LIT_CHARS cluster.txt]}}) (List (While (Com {[LIT_CHARS read]} {[LIT_CHARS HOSTNAME]} {[LIT_CHARS MACADDR]} {[LIT_CHARS IPADDR]} {[LIT_CHARS ILOIPADDR]} {[LIT_CHARS DOMAIN]} {[LIT_CHARS ROLE]} ) (List (If (DBracket {B2 BINARY_STRING_EQUAL {[VarSub HOSTNAME]} {[DQ [LIT_CHARS end]]}}) (Com {[LIT_CHARS continue]} ) ) (If (DBracket {B? LOGICAL_BINARY_OR {B1 UNARY_STRING_z {[DQ [VarSub ROLE_REQUESTED]]}} {B2 BINARY_STRING_EQUAL {[DQ [VarSub ROLE]]} {[DQ [VarSub ROLE_REQUESTED]]}}}) (List (= scope= flags=0 words=[] bindings=[('HOSTS', {[DQ [VarSub HOSTS][LIT_CHARS " "][VarSub HOSTNAME]]})]) (= scope= flags=0 words=[] bindings=[('IPS', {[DQ [VarSub IPS][LIT_CHARS " "][VarSub IPADDR]]})]) ) ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "HOSTS = "][VarSub HOSTS]]} ) (For HOST [{[VarSub IPS]}]) (List (If (DBracket {B1 UNARY_STRING_z {[ComSub (Com {[LIT_CHARS fping]} {[LIT_CHARS -aq]} {[VarSub HOST]})]}}) (List (Com {[LIT_CHARS echo]} {[VarSub HOST]} {[LIT_CHARS is]} {[LIT_CHARS down]} ) (Com {[LIT_CHARS continue]} ) ) (ElseTrue) (Com {[LIT_CHARS echo]} {[VarSub HOST]} {[LIT_CHARS is]} {[LIT_CHARS up]} ) ) (Com {[LIT_CHARS ./nodessh.sh]} {[VarSub ENVIRONMENT]} {[VarSub HOST]} {[DQ [LIT_CHARS chef-client]]} {[LIT_CHARS sudo]} ) ) ) ) ) )