(List (Com {[LIT_CHARS set]} {[LIT_CHARS -eo]} {[LIT_CHARS pipefail]} ) (= scope= flags=0 words=[] bindings=[('CFG', {[LIT_CHARS /opt/zookeeper/conf/zoo.cfg.dynamic]})]) (= scope= flags=0 words=[] bindings=[('CFG_BAK', {[LIT_CHARS /opt/zookeeper/conf/zoo.cfg.bak]})]) (= scope= flags=0 words=[] bindings=[('MY_ID_FILE', {[LIT_CHARS /tmp/zookeeper/myid]})]) (= scope= flags=0 words=[] bindings=[('HOSTNAME', {[ComSub (Com {[LIT_CHARS hostname]})]})]) (While (Com {[LIT_CHARS read]} {[LIT_CHARS -ra]} {[LIT_CHARS LINE]} ) (= scope= flags=0 words=[] bindings=[('PEERS', {[Array {[DQ [VarSub PEERS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} {[VarSub LINE]}]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub PEERS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[(#len)]]} {[LIT_CHARS -eq]} {[LIT_CHARS 1]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS 1]} < (FilenameRedirectNode filename={[DQ [VarSub MY_ID_FILE]]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "server.1="][VarSub PEERS bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})][LIT_CHARS ":2888:3888;2181"]]} < (FilenameRedirectNode filename={[DQ [VarSub CFG]]} "> 1), > ) (Com {[LIT_CHARS exit]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ ]} < (FilenameRedirectNode filename={[DQ [VarSub CFG_BAK]]} "> 1), > ) (= scope= flags=0 words=[] bindings=[('i', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('LEADER', {[VarSub HOSTNAME]})]) (For peer [{[DQ [VarSub PEERS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]) (List (Com {[LIT_CHARS let]} {[LIT_VAR_LIKE "i="] [LIT_CHARS i] [LIT_OTHER "+"] [LIT_CHARS 1] =} ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub peer]]} {[LIT_OTHER "*"] [DQ [VarSub HOSTNAME]] [LIT_OTHER "*"]}}) (List (= scope= flags=0 words=[] bindings=[('MY_ID', {[VarSub i]})]) (= scope= flags=0 words=[] bindings=[('MY_NAME', {[VarSub peer]})]) (Com {[LIT_CHARS echo]} {[VarSub i]} < (FilenameRedirectNode filename={[DQ [VarSub MY_ID_FILE]]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS server.][VarSub i][LIT_CHARS "="][VarSub peer][LIT_CHARS ":2888:3888:observer;2181"]]} < (FilenameRedirectNode filename={[DQ [VarSub CFG_BAK]]} >"> 1), > ) ) (ElseTrue) (List (If (DBracket {B2 BINARY_STRING_EQUAL {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[LIT_CHARS srvr]}) (Com {[LIT_CHARS /opt/nc]} {[DQ [VarSub peer]]} {[LIT_CHARS 2181]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS Mode]}) )]} {[DQ [LIT_CHARS "Mode: leader"]]}}) (= scope= flags=0 words=[] bindings=[('LEADER', {[DQ [VarSub peer]]})]) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS server.][VarSub i][LIT_CHARS "="][VarSub peer][LIT_CHARS ":2888:3888:participant;2181"]]} < (FilenameRedirectNode filename={[DQ [VarSub CFG_BAK]]} >"> 1), > ) ) ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[DQ [VarSub MY_ID_FILE]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) (Com {[LIT_CHARS cp]} {[VarSub CFG_BAK]} {[VarSub CFG]} ) (Com {[LIT_CHARS /opt/zookeeper/bin/zkServer.sh]} {[LIT_CHARS start]} ) (= scope= flags=0 words=[] bindings=[('ADD_SERVER', {[DQ [LIT_CHARS server.][VarSub MY_ID][LIT_CHARS "="][VarSub MY_NAME][LIT_CHARS ":2888:3888:participant;0.0.0.0:2181"]]})]) (Com {[LIT_CHARS /opt/zookeeper/bin/zkCli.sh]} {[LIT_CHARS reconfig]} {[LIT_CHARS -s]} {[DQ [VarSub LEADER]] [LIT_OTHER ":"] [LIT_CHARS 2181]} {[LIT_CHARS -add]} {[DQ [VarSub ADD_SERVER]]} ) (= scope= flags=0 words=[] bindings=[('ITERATION', {[LIT_CHARS 0]})]) (While (Com {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[LIT_CHARS config]}) (Com {[LIT_CHARS /opt/nc]} {[LIT_CHARS localhost]} {[LIT_CHARS 2181]}) (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1)]{[LIT_CHARS grep]} {[DQ [VarSub ADD_SERVER]]}) )]} ) (List (Com {[LIT_CHARS echo]} {[VarSub ITERATION] [LIT_DBRACKET_LIKE "]"]} {[LIT_CHARS waiting]} {[LIT_CHARS for]} {[LIT_CHARS updated]} {[LIT_CHARS config]} {[LIT_CHARS to]} {[LIT_CHARS sync]} {[LIT_CHARS back]} {[LIT_CHARS to]} {[LIT_CHARS localhost]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 1]} ) (Com {[LIT_CHARS let]} {[LIT_VAR_LIKE "ITERATION="] [LIT_CHARS ITERATION] [LIT_OTHER "+"] [LIT_CHARS 1] =} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub ITERATION]} {[LIT_CHARS -eq]} {[LIT_CHARS 20]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) (Com {[LIT_CHARS /opt/zookeeper/bin/zkServer.sh]} {[LIT_CHARS stop]} ) )