(List (If (DBracket {B? LOGICAL_BINARY_OR {B1 UNARY_STRING_z {[DQ [VarSub 1]]}} {B? LOGICAL_BINARY_OR {B1 UNARY_STRING_z {[DQ [VarSub 2]]}} {B1 UNARY_STRING_z {[DQ [VarSub 3]]}}}}) (List (= scope= flags=0 words=[] bindings=[('NAME', {[ComSub (Com {[LIT_CHARS basename]} {[DQ [VarSub 0]]})]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub NAME]]} {[LIT_CHARS nodescp]}}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: "][VarSub 0][LIT_CHARS " 'environment' 'nodename|IP address' 'from' 'to'"]]}) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: "][VarSub 0][LIT_CHARS " 'environment' 'nodename|IP address' 'command' (sudo)"]]}) ) (Com {[LIT_CHARS exit]}) ) ) (If (DBracket {B1 UNARY_STRING_z {[ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS sshpass]})]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Error: sshpass required for this tool. You should be able to 'sudo apt-get install sshpass' to get it"]]}) (Com {[LIT_CHARS exit]}) ) ) (= scope= flags=0 words=[] bindings=[('ENVIRONMENT', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('IP', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('COMMAND', {[VarSub 3]})]) (= scope= flags=0 words=[] bindings=[('KNIFESTAT', {[ComSub (Pipeline (Com redirects=[(DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2)]{[LIT_CHARS knife]} {[LIT_CHARS data]} {[LIT_CHARS bag]} {[LIT_CHARS show]} {[LIT_CHARS configs]} {[VarSub ENVIRONMENT]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS ERROR]}) )]})]) (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub KNIFESTAT]]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "knife error "][VarSub KNIFESTAT][LIT_CHARS " when showing the config"]]}) (Com {[LIT_CHARS exit]}) ) ) (= scope= flags=0 words=[] bindings=[('PASSWD', {[ComSub (Pipeline (Com {[LIT_CHARS knife]} {[LIT_CHARS data]} {[LIT_CHARS bag]} {[LIT_CHARS show]} {[LIT_CHARS configs]} {[VarSub ENVIRONMENT]}) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "cobbler-root-password:"]]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]})]) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub PASSWD]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Failed to retrieve 'cobbler-root-password'"]]}) (Com {[LIT_CHARS exit]}) ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[ComSub (Com {[LIT_CHARS basename]} {[DQ [VarSub 0]]})]} {[LIT_CHARS nssh]}}) (= scope= flags=0 words=[] bindings=[('SSH1COMMON', {[DQ ]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('SSHCOMMON', {[DQ [LIT_CHARS "-q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o VerifyHostKeyDNS=no"]]})]) ) (FunctionDef apply_command [] (List (Com {[DQ [VarSub @]]}) (= scope= flags=0 words=[] bindings=[('RES', {[VarSub ?]})]) (If (DBracket {B2 BINARY_INT_NE {[DQ [VarSub RES]]} {[LIT_CHARS 0]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Executing '"][VarSub @][LIT_CHARS "' failed"]]}) (Com {[LIT_CHARS exit]} {[VarSub RES]}) ) ) ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[ComSub (Com {[LIT_CHARS basename]} {[DQ [VarSub 0]]})]} {[LIT_CHARS nodescp]}}) (List (= scope= flags=0 words=[] bindings=[('SCPCMD', {[DQ [LIT_CHARS "scp "][VarSub SSHCOMMON]]})]) (Com {[LIT_CHARS apply_command]} {[LIT_CHARS sshpass]} {[LIT_CHARS -p]} {[VarSub PASSWD]} {[VarSub SCPCMD]} {[LIT_CHARS -p]} {[DQ [VarSub 3]]} {[DQ [LIT_CHARS "ubuntu@"][VarSub 2][LIT_CHARS ":"][VarSub 4]]}) ) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('SSHCMD', {[DQ [LIT_CHARS "ssh "][VarSub SSHCOMMON]]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub 4]]} {[LIT_CHARS sudo]}}) (Com {[LIT_CHARS apply_command]} {[LIT_CHARS sshpass]} {[LIT_CHARS -p]} {[VarSub PASSWD]} {[VarSub SSHCMD]} {[LIT_CHARS -t]} {[LIT_CHARS ubuntu] [LIT_OTHER "@"] [VarSub IP]} {[DQ [LIT_CHARS "echo "][VarSub PASSWD][LIT_CHARS " | sudo -S "][VarSub COMMAND]]}) (ElseTrue) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub COMMAND]]} {[LIT_CHARS -]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "You might need this : cobbler_root = "][VarSub PASSWD]]}) (Com {[LIT_CHARS apply_command]} {[LIT_CHARS sshpass]} {[LIT_CHARS -p]} {[VarSub PASSWD]} {[VarSub SSHCMD]} {[LIT_CHARS -t]} {[LIT_CHARS ubuntu] [LIT_OTHER "@"] [VarSub IP]}) ) (ElseTrue) (Com {[LIT_CHARS apply_command]} {[LIT_CHARS sshpass]} {[LIT_CHARS -p]} {[VarSub PASSWD]} {[VarSub SSHCMD]} {[LIT_CHARS -t]} {[LIT_CHARS ubuntu] [LIT_OTHER "@"] [VarSub IP]} {[DQ [VarSub COMMAND]]}) ) ) ) ) )