(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOMAINNAME) op: assign_op.Equal rhs: {(/bin/domainname)} spids: [18] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOSTNAME) op: assign_op.Equal rhs: {(/bin/hostname)} spids: [21] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:YPWHICH) op: assign_op.Equal rhs: {(/usr/bin/ypwhich)} spids: [24] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:YPXFR) op: assign_op.Equal rhs: {(/usr/libexec/ypxfr)} spids: [27] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:YP_DIR) op: assign_op.Equal rhs: {(/var/yp)} spids: [30] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAKEDBM) op: assign_op.Equal rhs: {(/usr/sbin/yp_mkdb)} spids: [33] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAPLIST) op: assign_op.Equal rhs: { (DQ ('master.passwd.byname master.passwd.byuid passwd.byname passwd.byuid ') ('\t group.byname group.bygid hosts.byname hosts.byaddr services.byname ') ('\t rpc.byname rpc.bynumber networks.byname networks.byaddr netgroup ') ('\t netgroup.byuser netgroup.byhost netid.byname publickey.byname ') ('\t bootparams ethers.byname ethers.byaddr eui64.byname eui64.byid ') ('\t amd.host mail.aliases ypservers protocols.byname protocols.bynumber ') ('\t netmasks.byaddr') ) } spids: [36] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR_EXISTS) op: assign_op.Equal rhs: {(DQ (NO))} spids: [54] ) ] ) (C {(umask)} {(077)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR) op: assign_op.Equal rhs: {(USAGE)} spids: [68] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Pound '$#')} {(-eq)} {(1)} {(Id.Lit_RBracket ']')}) ] action: [ (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Number '$1')} {(Id.Lit_Equals '=')} {(DQ (-m))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOMAIN) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:112) command_list: (command.CommandList children: [(C {(${ Id.VSub_Name DOMAINNAME)})] ) ) } spids: [111] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SERVERTYPE) op: assign_op.Equal rhs: {(MASTER)} spids: [121] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR) op: assign_op.Equal rhs: (word.Empty) spids: [125] ) ] ) ] spids: [90 108] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Number '$1')} {(Id.Lit_Equals '=')} {(DQ (-u))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOMAIN) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:154) command_list: (command.CommandList children: [(C {(${ Id.VSub_Name DOMAINNAME)})] ) ) } spids: [153] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SERVERTYPE) op: assign_op.Equal rhs: {(UPDATE)} spids: [163] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR) op: assign_op.Equal rhs: (word.Empty) spids: [167] ) ] ) ] spids: [132 150] ) ] ) ] spids: [75 87] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Pound '$#')} {(-eq)} {(2)} {(Id.Lit_RBracket ']')}) ] action: [ (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Number '$1')} {(Id.Lit_Equals '=')} {(DQ (-m))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOMAIN) op: assign_op.Equal rhs: {(${ Id.VSub_Number 2)} spids: [211] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SERVERTYPE) op: assign_op.Equal rhs: {(MASTER)} spids: [217] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR) op: assign_op.Equal rhs: (word.Empty) spids: [221] ) ] ) ] spids: [190 208] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Number '$1')} {(Id.Lit_Equals '=')} {(DQ (-s))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOMAIN) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:250) command_list: (command.CommandList children: [(C {(${ Id.VSub_Name DOMAINNAME)})] ) ) } spids: [249] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SERVERTYPE) op: assign_op.Equal rhs: {(SLAVE)} spids: [259] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MASTER) op: assign_op.Equal rhs: {(${ Id.VSub_Number 2)} spids: [263] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR) op: assign_op.Equal rhs: (word.Empty) spids: [269] ) ] ) ] spids: [228 246] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Number '$1')} {(Id.Lit_Equals '=')} {(DQ (-u))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOMAIN) op: assign_op.Equal rhs: {(${ Id.VSub_Number 2)} spids: [297] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SERVERTYPE) op: assign_op.Equal rhs: {(UPDATE)} spids: [303] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR) op: assign_op.Equal rhs: (word.Empty) spids: [307] ) ] ) ] spids: [276 294] ) ] ) ] spids: [175 187] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Pound '$#')} {(-eq)} {(3)} {(Id.Lit_RBracket ']')}) ] action: [ (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Number '$1')} {(Id.Lit_Equals '=')} {(DQ (-s))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOMAIN) op: assign_op.Equal rhs: {(${ Id.VSub_Number 3)} spids: [351] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SERVERTYPE) op: assign_op.Equal rhs: {(SLAVE)} spids: [357] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MASTER) op: assign_op.Equal rhs: {(${ Id.VSub_Number 2)} spids: [361] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR) op: assign_op.Equal rhs: (word.Empty) spids: [367] ) ] ) ] spids: [330 348] ) ] ) ] spids: [315 327] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name ERROR))} {(Id.Lit_Equals '=')} {(DQ (USAGE))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:392) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:399) fd: -1 here_begin: { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\_' span_id:401) ) (_usage) } here_end_span_id: 415 stdin_parts: [ ('usage: ypinit -m [domainname]\n') (' ypinit -s master_server [domainname]\n') (' ypinit -u [domainname]\n') ('\n') ("The `-m' flag builds a master YP server, and the `-s' flag builds\n") ("a slave YP server. When building a slave YP server, `master_server'\n") ('must be an existing, reachable YP server.\n') ("The `-u' is for updating the ypservers map on a master server.\n") ] ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:404) fd: 1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:418) arg_word: {(1)} ) ] spids: [375 394] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ (${ Id.VSub_Name DOMAIN))} {(Id.Lit_RBracket ']')}) terminator: (Token id:Id.Op_Semi val:';' span_id:441) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:448) fd: -1 here_begin: { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\_' span_id:450) ) (_no_domain) } here_end_span_id: 458 stdin_parts: [ ("The local host's YP domain name has not been set. Please set it with\n") ('the domainname(1) command or pass the domain as an argument to ypinit(8).\n') ] ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:453) fd: 1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:461) arg_word: {(1)} ) ] spids: [428 443] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:472) command_list: (command.CommandList children:[(C {(${ Id.VSub_Name HOSTNAME)})]) ) } spids: [471] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ (${ Id.VSub_Name HOST))} {(Id.Lit_RBracket ']')}) terminator: (Token id:Id.Op_Semi val:';' span_id:493) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:500) fd: -1 here_begin: { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\_' span_id:502) ) (_no_hostname) } here_end_span_id: 510 stdin_parts: [ ("The local host's hostname has not been set. Please set it with the\n") ('hostname(1) command.\n') ] ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:505) fd: 1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:513) arg_word: {(1)} ) ] spids: [480 495] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name SERVERTYPE))} {(Id.Lit_Equals '=')} {(DQ (SLAVE))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:555) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COUNT) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:561) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {(${ Id.VSub_Name YPWHICH)} {(-d)} {(${ Id.VSub_Name DOMAIN)} {(-m)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:576) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(grep)} {(-i)} {(${ Id.VSub_Name MASTER)}) (C {(wc)} {(-l)}) (C {(tr)} {(-d)} {(DQ (' '))}) ] negated: F ) ] ) ) } spids: [560] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$COUNT'))} {(Id.Lit_Equals '=')} {(DQ (0))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.Simple words: [ {(echo)} { (DQ ("Can't enumerate maps from ") (${ Id.VSub_Name MASTER) ('. Please check that it is running.') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:637) fd: 1 arg_word: {(2)} ) ] ) (command.Simple words: [{(echo)} {(DQ ('Note: using hardcoded maplist for map transfers.'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:647) fd: 1 arg_word: {(2)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:YPMAPLIST) op: assign_op.Equal rhs: {(${ Id.VSub_Name MAPLIST)} spids: [651] ) ] ) ] spids: [607 624] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:YPMAPLIST) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:661) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(${ Id.VSub_Name YPWHICH)} {(-d)} {(${ Id.VSub_Name DOMAIN)} {(-m)} ) (C {(cut)} {(-d) (word_part.EscapedLiteral token: (Token id: Id.Lit_EscapedChar val: '\\ ' span_id: 683 ) ) } {(-f1)} ) ] negated: F ) ] ) ) } spids: [660] ) ] ) ] ) (command.Simple words: [{(echo)} {(DQ )}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:697) fd: 1 arg_word: {(2)} ) ] ) ] spids: [538 557] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ID) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:707) command_list: (command.CommandList children:[(C {(id)} {(-u)})]) ) } spids: [706] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name ID))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (0))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:733) ) ] action: [ (command.Simple words: [ {(echo)} {(DQ ('You have to be the superuser to run this. Please login as root.'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:744) fd: 1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:748) arg_word: {(1)} ) ] spids: [715 735] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-d)} {(${ Id.VSub_Name YP_DIR)} {(-o)} {(-f)} {(${ Id.VSub_Name YP_DIR)} {(Id.Lit_RBracket ']')} ) ] action: [ (command.Simple words: [ {(echo)} { (DQ ('The directory ') (${ Id.VSub_Name YP_DIR) (" doesn't exist. Restore it from the distribution.") ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:794) fd: 1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:798) arg_word: {(1)} ) ] spids: [759 781] ) ] ) (C {(echo)} {(-n)} {(DQ ('Server Type: ') (${ Id.VSub_Name SERVERTYPE) (' Domain: ') (${ Id.VSub_Name DOMAIN))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name SERVERTYPE))} {(Id.Lit_Equals '=')} {(DQ (SLAVE))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:838) ) ] action: [(C {(echo)} {(-n)} {(DQ (' Master: ') (${ Id.VSub_Name MASTER))})] spids: [821 840] ) ] ) (C {(echo)} {(DQ )}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name SERVERTYPE))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (UPDATE))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:880) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:887) fd: -1 here_begin: { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\_' span_id:889) ) (_notice1) } here_end_span_id: 896 stdin_parts: [ ('\n') ('Creating an YP server will require that you answer a few questions.\n') ('Questions will all be asked at the beginning of the procedure.\n') ('\n') ] ) ] ) (C {(echo)} {(-n)} {(DQ ('Do you want this procedure to quit on non-fatal errors? [y/n: n] '))} ) (C {(read)} {(DOEXIT)}) (command.Case to_match: {(${ Id.VSub_Name DOEXIT)} arms: [ (case_arm pat_list: [{(y) (Id.Lit_Star '*')} {(Y) (Id.Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR_EXIT) op: assign_op.Equal rhs: {(DQ (YES))} spids: [931] ) ] ) ] spids: [923 928 937 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR_EXIT) op: assign_op.Equal rhs: {(DQ (NO))} spids: [944] ) ] ) (C {(echo)} {(DQ )}) (C {(echo)} {(DQ ('Ok, please remember to go back and redo manually whatever fails.'))} ) (C {(echo)} {(DQ ("If you don't, something might not work. "))}) ] spids: [941 942 970 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-d)} {(DQ (${ Id.VSub_Name YP_DIR) (/) (${ Id.VSub_Name DOMAIN))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:994) ) ] action: [ (C {(echo)} {(DQ )}) (C {(echo)} {(-n)} { (DQ ('Can we destroy the existing ') (${ Id.VSub_Name YP_DIR) (/) (${ Id.VSub_Name DOMAIN) (' and its contents? [y/n: n] ') ) } ) (C {(read)} {(KILL)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR) op: assign_op.Equal rhs: (word.Empty) spids: [1028] ) ] ) (command.Case to_match: {(${ Id.VSub_Name KILL)} arms: [ (case_arm pat_list: [{(y) (Id.Lit_Star '*')} {(Y) (Id.Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR) op: assign_op.Equal rhs: {(DQ (DELETE))} spids: [1048] ) ] ) ] spids: [1040 1045 1054 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR) op: assign_op.Equal rhs: (word.Empty) spids: [1061] ) ] ) ] spids: [1058 1059 1064 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name ERROR))} {(Id.Lit_Equals '=')} {(DQ (DELETE))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1088) ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(rm)} {(-rf)} {(${ Id.VSub_Name YP_DIR) (/) (${ Id.VSub_Name DOMAIN)} ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:1108) ) ] action: [ (command.Simple words: [ {(echo)} { (DQ ("Can't clean up old directory ") (${ Id.VSub_Name YP_DIR) (/) (${ Id.VSub_Name DOMAIN) (.) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:1127) fd: 1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1131) arg_word: {(1)} ) ] spids: [1093 1110] ) ] ) ] spids: [1071 1090] ) ] else_action: [ (C {(echo)} {(DQ ('OK, please clean it up by hand and start again. Bye'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1149) arg_word: {(0)} ) ] ) ] spids: [977 996] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(mkdir)} {(DQ (${ Id.VSub_Name YP_DIR) (/) (${ Id.VSub_Name DOMAIN))}) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:1176) ) ] action: [ (command.Simple words: [ {(echo)} { (DQ ("Can't make new directory ") (${ Id.VSub_Name YP_DIR) (/) (${ Id.VSub_Name DOMAIN) (.) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:1195) fd: 1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1199) arg_word: {(1)} ) ] spids: [1161 1178] ) ] ) ] spids: [862 882] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name SERVERTYPE))} {(Id.Lit_Equals '=')} {(DQ (MASTER))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1226) ) ] action: [ (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-f)} {(${ Id.VSub_Name YP_DIR) (/Makefile)} {(Id.Lit_RBracket ']')} ) ] action: [ (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-f)} {(${ Id.VSub_Name YP_DIR) (/Makefile.dist)} {(Id.Lit_RBracket ']')} ) ] action: [ (command.Simple words: [ {(echo)} {(DQ ("Can't find ") (${ Id.VSub_Name YP_DIR) ('/Makefile.dist. '))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:1280) fd: 1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1284) arg_word: {(1)} ) ] spids: [1251 1267] ) ] ) (C {(cp)} {(${ Id.VSub_Name YP_DIR) (/Makefile.dist)} {(${ Id.VSub_Name YP_DIR) (/Makefile)} ) ] spids: [1232 1248] ) ] ) ] spids: [1209 1228] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name SERVERTYPE))} {(Id.Lit_Equals '=')} {(DQ (SLAVE))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1328) ) ] action: [ (C {(echo)} {(DQ ('There will be no further questions. The remainder of the procedure'))}) (C {(echo)} { (DQ ('should take a few minutes, to copy the databases from ') (${ Id.VSub_Name MASTER) (.) ) } ) (command.ForEach iter_name: MAP iter_words: [{(${ Id.VSub_Name YPMAPLIST)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(echo)} {(DQ ('Transferring ') (${ Id.VSub_Name MAP) (...))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(${ Id.VSub_Name YPXFR)} {(-p)} {(${ Id.VSub_Name YP_DIR)} {(-h)} {(${ Id.VSub_Name MASTER)} {(-c)} {(-d)} {(${ Id.VSub_Name DOMAIN)} {(${ Id.VSub_Name MAP)} ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:1409) ) ] action: [ (command.Simple words: [{(echo)} {(DQ ("Can't transfer map ") (${ Id.VSub_Name MAP) (.))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:1424) fd: 1 arg_word: {(2)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR_EXISTS) op: assign_op.Equal rhs: {(DQ (YES))} spids: [1428] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name ERROR_EXIT))} {(Id.Lit_Equals '=')} {(DQ (YES))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1451) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1456) arg_word: {(1)} ) ] spids: [1434 1453] ) ] ) ] spids: [1378 1411] ) ] ) ] ) ) (C {(echo)} {(DQ )}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name ERROR_EXISTS))} {(Id.Lit_Equals '=')} {(DQ (YES))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1494) ) ] action: [ (command.Simple words: [ {(echo)} { (DQ (${ Id.VSub_Name HOST) (' has been setup as an YP slave server with errors. ') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:1508) fd: 1 arg_word: {(2)} ) ] ) (command.Simple words: [{(echo)} {(DQ ('Please remember fix any problem that occurred.'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:1518) fd: 1 arg_word: {(2)} ) ] ) ] spids: [1477 1496] ) ] else_action: [ (C {(echo)} { (DQ (${ Id.VSub_Name HOST) (' has been setup as an YP slave server without any errors. ') ) } ) ] ) (C {(echo)} {(DQ ("Don't forget to update map ypservers on ") (${ Id.VSub_Name MASTER) (.))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1550) arg_word: {(0)} ) ] spids: [1311 1330] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIST_OK) op: assign_op.Equal rhs: {(DQ (NO))} spids: [1557] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:1563) cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name LIST_OK))} {(Id.Lit_Equals '=')} {(DQ (NO))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1580) ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name SERVERTYPE))} {(Id.Lit_Equals '=')} {(DQ (MASTER))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1602) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_LIST) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name HOST))} spids: [1608] ) ] ) (C {(echo)} {(DQ )}) (C {(echo)} { (DQ ('At this point, we have to construct a list of this domains YP servers.') ) } ) (C {(echo)} {(DQ (${ Id.VSub_Name HOST) (' is already known as master server.'))}) (C {(echo)} {(DQ ('Please continue to add any slave servers, one per line. When you are'))} ) (C {(echo)} {(DQ ('done with the list, type a <control D>.'))}) (C {(echo)} {(DQ ('\tmaster server : ') (${ Id.VSub_Name HOST))}) ] spids: [1585 1605] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name SERVERTYPE))} {(Id.Lit_Equals '=')} {(DQ (UPDATE))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1684) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_LIST) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name HOST))} spids: [1690] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NEW_LIST) op: assign_op.Equal rhs: {(DQ )} spids: [1698] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MASTER_NAME) op: assign_op.Equal rhs: {(DQ )} spids: [1703] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SHORT_HOST) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:1709) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(${ Id.VSub_Name HOST)}) (C {(cut)} {(-d.)} {(-f1)}) ] negated: F ) ] ) ) } spids: [1708] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-f)} {(${ Id.VSub_Name YP_DIR) (/) (${ Id.VSub_Name DOMAIN) (/ypservers)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1744) ) ] action: [ (command.Sentence child: (command.ForEach iter_name: srv iter_words: [ { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:1756) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(${ Id.VSub_Name MAKEDBM)} {(-u)} {(${ Id.VSub_Name YP_DIR) (/) (${ Id.VSub_Name DOMAIN) (/ypservers) } ) (C {(grep)} {(-v)} {(DQ ('^YP'))}) (C {(tr)} {(DQ (Id.Lit_Other '\\') (t))} {(DQ (' '))}) (C {(cut)} {(-d) (word_part.EscapedLiteral token: (Token id: Id.Lit_EscapedChar val: '\\ ' span_id: 1806 ) ) } {(-f1)} ) ] negated: F ) ] ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:short_srv) op: assign_op.Equal rhs: { (command_sub left_token: (Token id: Id.Left_Backtick val: '`' span_id: 1817 ) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(${ Id.VSub_Name srv)}) (C {(cut)} {(-d.)} {(-f1)}) ] negated: F ) ] ) ) } spids: [1816] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name SHORT_HOST))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (${ Id.VSub_Name short_srv))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name NEW_LIST))} {(Id.Lit_Equals '=')} {(DQ )} {(Id.Lit_RBracket ']')} ) terminator: (Token id: Id.Op_Semi val: ';' span_id: 1877 ) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NEW_LIST) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name srv))} spids: [1883] ) ] ) ] spids: [1861 1880] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NEW_LIST) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name NEW_LIST) (' ') (${ Id.VSub_Name srv) ) } spids: [1894] ) ] ) ] ) ] spids: [1836 1858] ) ] ) ] ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1913) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MASTER_NAME) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:1917) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(${ Id.VSub_Name MAKEDBM)} {(-u)} {(${ Id.VSub_Name YP_DIR) (/) (${ Id.VSub_Name DOMAIN) (/ypservers) } ) (C {(grep)} {(DQ ('^YP_MASTER_NAME'))}) (C {(tr)} {(DQ (Id.Lit_Other '\\') (t))} {(DQ (' '))}) (C {(cut)} {(-d) (word_part.EscapedLiteral token: (Token id: Id.Lit_EscapedChar val: '\\ ' span_id: 1965 ) ) } {(-f2)} ) ] negated: F ) ] ) ) } spids: [1916] ) ] ) ] spids: [1728 1747] ) ] ) (C {(echo)} {(DQ )}) (C {(echo)} { (DQ ('Update the list of hosts running YP servers in domain ') (${ Id.VSub_Name DOMAIN) (.) ) } ) (C {(echo)} {(DQ ('Master for this domain is ') (${ Id.VSub_Name MASTER_NAME) (.))}) (C {(echo)} {(DQ )}) (C {(echo)} { (DQ ('First verify old servers, type ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:2012) ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\\\' span_id:2013)) (' to remove a server.') ) } ) (C {(echo)} {(DQ ('Then add new servers, one per line. When done type a <control D>.'))} ) (C {(echo)} {(DQ )}) (C {(echo)} {(DQ ('\tmaster server : ') (${ Id.VSub_Name HOST))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name NEW_LIST))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ )} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2058) ) ] action: [ (command.Sentence child: (command.ForEach iter_name: node iter_words: [{($ Id.VSub_DollarName '$NEW_LIST')}] do_arg_iter: F body: (command.DoGroup children: [ (C {(echo)} {(-n)} { (DQ ('\tverify host : [') (${ Id.VSub_Name node) ('] ')) } ) (C {(read)} {(verify)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name verify))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} { (DQ (word_part.EscapedLiteral token: (Token id: Id.Lit_EscapedChar val: '\\\\' span_id: 2107 ) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id: Id.Op_Semi val: ';' span_id: 2111 ) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_LIST) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name HOST_LIST) (' ') (${ Id.VSub_Name node) ) } spids: [2116] ) ] ) ] spids: [2093 2113] ) ] ) ] ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:2132) ) ] spids: [2041 2060] ) ] ) ] spids: [1667 1687] ) ] ) (C {(echo)} {(-n)} {(DQ ('\tnext host to add: '))}) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:2152) cond: [(C {(read)} {(h)})] body: (command.DoGroup children: [ (C {(echo)} {(-n)} {(DQ ('\tnext host to add: '))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_LIST) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name HOST_LIST) (' ') (${ Id.VSub_Name h))} spids: [2171] ) ] ) ] ) ) (C {(echo)} {(DQ )}) (C {(echo)} {(DQ ('The current list of NIS servers looks like this:'))}) (C {(echo)} {(DQ )}) (command.ForEach iter_name: h iter_words: [ { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:2213) command_list: (command.CommandList children: [(C {(echo)} {(${ Id.VSub_Name HOST_LIST)})] ) ) } ] do_arg_iter: F body: (command.DoGroup children:[(C {(echo)} {(${ Id.VSub_Name h)})]) ) (C {(echo)} {(DQ )}) (C {(echo)} {(-n)} {(DQ ('Is this correct? [y/n: y] '))}) (C {(read)} {(hlist_ok)}) (command.Case to_match: {($ Id.VSub_DollarName '$hlist_ok')} arms: [ (case_arm pat_list: [{(n) (Id.Lit_Star '*')}] action: [(C {(echo)} {(DQ ("Let's try the whole thing again..."))})] spids: [2267 2269 2276 -1] ) (case_arm pat_list: [{(N) (Id.Lit_Star '*')}] action: [(C {(echo)} {(DQ ("Let's try the whole thing again..."))})] spids: [2279 2281 2288 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIST_OK) op: assign_op.Equal rhs: {(DQ (YES))} spids: [2294] ) ] ) ] spids: [2291 2292 2298 -1] ) ] ) ] ) ) (C {(echo)} {(DQ ('Building ') (${ Id.VSub_Name YP_DIR) (/) (${ Id.VSub_Name DOMAIN) (/ypservers...))} ) (C {(rm)} {(-f)} {(${ Id.VSub_Name YP_DIR) (/ypservers)}) (C {(touch)} {(-f)} {(${ Id.VSub_Name YP_DIR) (/ypservers)}) (C {(rm)} {(-f)} {(${ Id.VSub_Name YP_DIR) (/) (${ Id.VSub_Name DOMAIN) (/ypservers)}) (command.Pipeline children: [ (command.ForEach iter_name: host iter_words: [{(${ Id.VSub_Name HOST_LIST)}] do_arg_iter: F body: (command.DoGroup children: [ (command.Simple words: [{(echo)} {(DQ (${ Id.VSub_Name host) (' ') (${ Id.VSub_Name host))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:2378) fd: -1 arg_word: {(${ Id.VSub_Name YP_DIR) (/ypservers)} ) ] ) (C {(echo)} {(DQ (${ Id.VSub_Name host) (' ') (${ Id.VSub_Name host))}) ] ) ) (C {(${ Id.VSub_Name MAKEDBM)} {(-)} {(${ Id.VSub_Name YP_DIR) (/) (${ Id.VSub_Name DOMAIN) (/ypservers)} ) ] negated: F ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_QMark '$?')} {(-ne)} {(0)} {(Id.Lit_RBracket ']')}) terminator: (Token id:Id.Op_Semi val:';' span_id:2429) ) ] action: [ (command.Simple words: [{(echo)} {(DQ )}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:2439) fd: 1 arg_word: {(2)} ) ] ) (command.Simple words: [ {(echo)} { (DQ ("Couldn't build yp data base ") (${ Id.VSub_Name YP_DIR) (/) (${ Id.VSub_Name DOMAIN) (/ypservers.) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:2457) fd: 1 arg_word: {(2)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR_EXISTS) op: assign_op.Equal rhs: {(DQ (YES))} spids: [2461] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name ERROR_EXIT))} {(Id.Lit_Equals '=')} {(DQ (YES))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2484) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:2489) arg_word: {(1)} ) ] spids: [2467 2486] ) ] ) ] spids: [2418 2431] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name SERVERTYPE))} {(Id.Lit_Equals '=')} {(DQ (MASTER))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2516) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CUR_PWD) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:2522) command_list: (command.CommandList children:[(C {(pwd)})]) ) } spids: [2521] ) ] ) (C {(cd)} {(${ Id.VSub_Name YP_DIR)}) (C {(echo)} {(DQ ('Running ') (${ Id.VSub_Name YP_DIR) (/Makefile...))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(make)} {(Id.Lit_VarLike 'NOPUSH=') (True)} {(Id.Lit_VarLike 'UPDATE_DOMAIN=') (${ Id.VSub_Name DOMAIN)} {(Id.Lit_VarLike 'YP_DIR=') (${ Id.VSub_Name YP_DIR)} ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:2565) ) ] action: [ (command.Simple words: [{(echo)} {(DQ )}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:2575) fd: 1 arg_word: {(2)} ) ] ) (command.Simple words: [{(echo)} {(DQ ('Error running Makefile.'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:2585) fd: 1 arg_word: {(2)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ERROR_EXISTS) op: assign_op.Equal rhs: {(DQ (YES))} spids: [2589] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name ERROR_EXIT))} {(Id.Lit_Equals '=')} {(DQ (YES))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2612) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:2617) arg_word: {(1)} ) ] spids: [2595 2614] ) ] ) ] spids: [2547 2567] ) ] ) (C {(cd)} {(${ Id.VSub_Name CUR_PWD)}) (C {(echo)} {(DQ )}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name ERROR_EXISTS))} {(Id.Lit_Equals '=')} {(DQ (YES))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2660) ) ] action: [ (command.Simple words: [ {(echo)} { (DQ (${ Id.VSub_Name HOST) (' has been setup as an YP master server with errors. ') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:2674) fd: 1 arg_word: {(2)} ) ] ) (command.Simple words: [{(echo)} {(DQ ('Please remember fix any problem that occurred.'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:2684) fd: 1 arg_word: {(2)} ) ] ) ] spids: [2643 2662] ) ] else_action: [ (C {(echo)} { (DQ (${ Id.VSub_Name HOST) (' has been setup as an YP master server without any errors. ') ) } ) ] ) ] spids: [2499 2518] ) ] ) ] )