(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {(/bin) (Id.Lit_Other ':') (/usr/bin)} spids: [93] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-r)} {(/etc/defaults/rc.conf)} {(Id.Lit_RBracket ']')}) terminator: (Token id:Id.Op_Semi val:';' span_id:114) ) ] action: [ (C {(.)} {(/etc/defaults/rc.conf)}) (command.Simple words: [{(source_rc_confs)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:126) fd: 2 arg_word: {(/dev/null)} ) ] ) ] spids: [105 116] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-r)} {(/etc/rc.conf)} {(Id.Lit_RBracket ']')}) terminator: (Token id:Id.Op_Semi val:';' span_id:138) ) ] action: [ (command.Simple words: [{(.)} {(/etc/rc.conf)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:147) fd: 2 arg_word: {(/dev/null)} ) ] ) ] spids: [129 140] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:155) command_list: (command.CommandList children: [(C {(/sbin/sysctl)} {(-n)} {(security.jail.jailed)})] ) ) } {(Id.Lit_Equals '=')} {(0)} {(Id.Lit_RBracket ']')} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:171) arg_word: {(0)} ) ] ) (command.Case to_match: {(${ Id.VSub_Name entropy_dir)} arms: [ (case_arm pat_list: [ {(Id.Lit_LBracket '[') (Nn) (Id.Lit_RBracket ']') (Id.Lit_LBracket '[') (Oo) (Id.Lit_RBracket ']') } ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:193) arg_word: {(0)} ) ] spids: [184 190 198 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:entropy_dir) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:entropy_dir span_id:206) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(Id.Lit_Slash /) (var) (Id.Lit_Slash /) (db) (Id.Lit_Slash /) (entropy)} ) ) } spids: [204] ) ] ) ] spids: [200 201 217 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:entropy_save_sz) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:entropy_save_sz span_id:224) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(4096)}) ) } spids: [222] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:entropy_save_num) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:entropy_save_num span_id:231) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(8)}) ) } spids: [229] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-d)} {(DQ (${ Id.VSub_Name entropy_dir))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:252) ) ] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(install)} {(-d)} {(-o)} {(operator)} {(-g)} {(operator)} {(-m)} {(0700)} {(DQ (${ Id.VSub_Name entropy_dir))} ) (command.BraceGroup children: [ (command.Sentence child: (C {(logger)} {(-is)} {(-t)} {(DQ ($ Id.VSub_Number '$0'))} {(The)} {(entropy)} {(directory)} {(DQ (${ Id.VSub_Name entropy_dir))} {(does)} {(not)} {(exist) (Id.Lit_Comma ',')} {(and)} {(cannot)} {(be)} {(created.)} {(Therefore)} {(no)} {(entropy)} {(can)} {(be)} {(saved.)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:336) ) (command.Sentence child: (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:338) arg_word: {(1)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:341) ) ] ) ] ) ] spids: [237 254] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(cd)} {(DQ (${ Id.VSub_Name entropy_dir))}) (command.BraceGroup children: [ (command.Sentence child: (C {(logger)} {(-is)} {(-t)} {(DQ ($ Id.VSub_Number '$0'))} {(Cannot)} {(cd)} {(to)} {(the)} {(entropy)} {(directory) (Id.Lit_Other ':')} {(DQ (${ Id.VSub_Name entropy_dir)) (.)} {(Entropy)} {(file)} {(rotation)} {(is)} {(aborted.)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:402) ) (command.Sentence child: (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:404) arg_word: {(1)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:407) ) ] ) ] ) (command.ForEach iter_name: f iter_words: [{(saved-entropy.) (Id.Lit_Star '*')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {(DQ (${ Id.VSub_Name f))} arms: [ (case_arm pat_list: [ {(saved-entropy.) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\*' span_id:436) ) } ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:439) ) ] spids: [435 437 441 -1] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} { (braced_var_sub token: (Token id:Id.VSub_Name val:f span_id:452) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {(saved-entropy) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\.' span_id:455) ) } ) ) } {(-ge)} {(${ Id.VSub_Name entropy_save_num)} {(Id.Lit_RBracket ']')} ) (C {(unlink)} {(${ Id.VSub_Name f)}) ] ) ] ) ) (C {(umask)} {(377)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w:{(${ Id.VSub_Name entropy_save_num)}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) } spids: [482] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:496) cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(${ Id.VSub_Name n)} {(-ge)} {(1)} {(Id.Lit_RBracket ']')}) terminator: (Token id:Id.Op_Semi val:';' span_id:509) ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-f)} {(DQ (saved-entropy.) (${ Id.VSub_Name n))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:528) ) ] action: [ (C {(mv)} {(DQ (saved-entropy.) (${ Id.VSub_Name n))} { (DQ (saved-entropy.) (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w:{(${ Id.VSub_Name n)}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) ) } ) ] spids: [514 530] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-e)} {(DQ (saved-entropy.) (${ Id.VSub_Name n))} {(-o)} {(-L)} {(DQ (saved-entropy.) (${ Id.VSub_Name n))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:584) ) ] action: [ (C {(logger)} {(-is)} {(-t)} {(DQ ($ Id.VSub_Number '$0'))} {(DQ (${ Id.VSub_Name entropy_dir) (/saved-entropy.) (${ Id.VSub_Name n))} {(is)} {(not)} {(a)} {(regular)} {(file) (Id.Lit_Comma ',')} {(and)} {(so)} {(it)} {(will)} {(not)} {(be)} {(rotated.)} {(Entropy)} {(file)} {(rotation)} {(is)} {(aborted.)} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:649) arg_word: {(1)} ) ] spids: [559 586] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w:{(${ Id.VSub_Name n)}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) } spids: [657] ) ] ) ] ) ) (command.Simple words: [ {(dd)} {(Id.Lit_VarLike 'if=') (/dev/random)} {(Id.Lit_VarLike 'of=') (saved-entropy.1)} {(Id.Lit_VarLike 'bs=') (${ Id.VSub_Name entropy_save_sz)} {(Id.Lit_VarLike 'count=') (1)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:690) fd: 2 arg_word: {(/dev/null)} ) ] ) (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:694) arg_word:{(0)}) ] )