(command.CommandList children: [ (command.ShFunction name_tok: <usage> name: usage body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ < 'usage: makeroot.sh [-B byte-order] [-d] [-e <extras manifest>] [-f <filelist>]\n' > <' [-k <keydir> [-K <user>]]\n'> <' [-p <master.passwd> [-g <groupfile>]] [-s <size>]\n'> <'\t\t <image> <bsdroot>\n'> ] ) ) (Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>}) ] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <warn> name: warn body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <basename> more_env: [] words: [{<basename>} {($ Id.VSub_Number 0)}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } {(DQ ($ Id.VSub_At '@'))} ] redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <err> name: err body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ret='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ret='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <warn> more_env: [] words: [{<warn>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_DollarName ret)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <atexit> name: atexit body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name DEBUG))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-rf>} {(${ Id.VSub_Name tmpdir)}] redirects: [] do_fork: T ) ] spids: [188 203] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <warn> more_env: [] words: [{<warn>} {(DQ <'temp directory left at '> (${ Id.VSub_Name tmpdir))}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment left: <Id.Lit_VarLike 'DEBUG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DEBUG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEBUG='> name:DEBUG) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DUPFLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DUPFLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DUPFLAG='> name:DUPFLAG) op: assign_op.Equal rhs: {<-D>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'EXTRAS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EXTRAS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXTRAS='> name:EXTRAS) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'FILELIST='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FILELIST='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FILELIST='> name:FILELIST) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'GROUP='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'GROUP='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GROUP='> name:GROUP) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KEYDIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KEYDIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KEYDIR='> name:KEYDIR) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KEYUSERS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KEYUSERS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KEYUSERS='> name:KEYUSERS) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'PASSWD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PASSWD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PASSWD='> name:PASSWD) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <getopts> more_env: [] words: [{<getopts>} {(DQ <'B:de:f:g:K:k:l:p:s:'>)} {<opt>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName opt))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <B> pattern: (pat.Words words:[{<B>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'BFLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'BFLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BFLAG='> name:BFLAG) op: assign_op.Equal rhs: {(DQ <'-B '> (${ Id.VSub_Name OPTARG))} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <d> pattern: (pat.Words words:[{<d>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'DEBUG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DEBUG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEBUG='> name:DEBUG) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <e> pattern: (pat.Words words:[{<e>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'EXTRAS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EXTRAS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXTRAS='> name:EXTRAS) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name EXTRAS) <' '> (${ Id.VSub_Name OPTARG))} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <f> pattern: (pat.Words words:[{<f>}]) middle: <Id.Right_CasePat _> action: [ (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'FILELIST='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FILELIST='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FILELIST='> name:FILELIST) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name OPTARG))} ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike 'DUPFLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DUPFLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DUPFLAG='> name:DUPFLAG) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <g> pattern: (pat.Words words:[{<g>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'GROUP='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'GROUP='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GROUP='> name:GROUP) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name OPTARG))} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <K> pattern: (pat.Words words:[{<K>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'KEYUSERS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KEYUSERS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KEYUSERS='> name:KEYUSERS) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KEYUSERS) <' '> (${ Id.VSub_Name OPTARG))} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <k> pattern: (pat.Words words:[{<k>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'KEYDIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KEYDIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KEYDIR='> name:KEYDIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name OPTARG))} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <l> pattern: (pat.Words words:[{<l>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LABEL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LABEL='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LABEL='> name:LABEL) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name OPTARG))} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <p> pattern: (pat.Words words:[{<p>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'PASSWD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PASSWD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PASSWD='> name:PASSWD) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name OPTARG))} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <s> pattern: (pat.Words words:[{<s>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'SIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SIZE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SIZE='> name:SIZE) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name OPTARG))} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <usage> more_env: [] words: [{<usage>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [ {<shift>} { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName OPTIND)} right: {<Id.Lit_Digits 1>} ) right: <Id.Right_DollarDParen _> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-ne>} {<2>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Sentence child: (command.Simple blame_tok: <usage> more_env: [] words: [{<usage>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] spids: [442 455] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IMGFILE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IMGFILE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IMGFILE='> name:IMGFILE) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <realpath> more_env: [] words: [ {<realpath>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'/'> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <basename> more_env: [] words: [{<basename>} {($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'BSDROOT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'BSDROOT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BSDROOT='> name:BSDROOT) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DBDIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DBDIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DBDIR='> name:DBDIR) op: assign_op.Equal rhs: {(${ Id.VSub_Name BSDROOT) <'/etc'>} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-r>} {(${ Id.VSub_Name BSDROOT) <'/METALOG'>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err> more_env: [] words: [{<err>} {<1>} {(DQ (${ Id.VSub_Name BSDROOT) <' does not contain a METALOG'>)}] redirects: [] do_fork: T ) ] spids: [492 508] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name GROUP))} {<-a>} {<-z>} {(DQ (${ Id.VSub_Name PASSWD))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <warn> more_env: [] words: [{<warn>} {(DQ <'-g requires -p'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <usage> more_env: [] words: [{<usage>}] redirects: [] do_fork: T ) ] spids: [525 550] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name KEYUSERS))} {<-a>} {<-z>} {(DQ (${ Id.VSub_Name KEYDIR))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <warn> more_env: [] words: [{<warn>} {(DQ <'-K requires -k'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <usage> more_env: [] words: [{<usage>}] redirects: [] do_fork: T ) ] spids: [565 590] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name KEYDIR))} {<-a>} {<-z>} {(DQ (${ Id.VSub_Name KEYUSERS))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'KEYUSERS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KEYUSERS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KEYUSERS='> name:KEYUSERS) op: assign_op.Equal rhs: {<root>} ) ] redirects: [] ) ] spids: [604 629] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'tmpdir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'tmpdir='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmpdir='> name:tmpdir) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <mktemp> more_env: [] words: [{<mktemp>} {<-d>} {<'/tmp/makeroot.XXXXX'>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name tmpdir))} {<-o>} {<Id.KW_Bang '!'>} {<-d>} {(DQ (${ Id.VSub_Name tmpdir))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err> more_env: [] words: [{<err>} {<1>} {(DQ <'failed to create tmpdir'>)}] redirects: [] do_fork: T ) ] spids: [649 676] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <trap> more_env: [] words: [{<trap>} {<atexit>} {<EXIT>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'manifest='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'manifest='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'manifest='> name:manifest) op: assign_op.Equal rhs: {(${ Id.VSub_Name tmpdir) <'/manifest'>} ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'#mtree 2.0'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name manifest)} ) ] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name PASSWD))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cp> more_env: [] words: [{<cp>} {(${ Id.VSub_Name PASSWD)} {(${ Id.VSub_Name tmpdir) <'/master.passwd'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <pwd_mkdb> more_env: [] words: [ {<pwd_mkdb>} {<-d>} {(${ Id.VSub_Name tmpdir)} {<-p>} {(${ Id.VSub_Name tmpdir) <'/master.passwd'>} ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name GROUP))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cp> more_env: [] words: [{<cp>} {(${ Id.VSub_Name DBDIR) <'/group'>} {(${ Id.VSub_Name tmpdir)}] redirects: [] do_fork: T ) ] spids: [762 777] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <cp> more_env: [] words: [{<cp>} {(${ Id.VSub_Name GROUP)} {(${ Id.VSub_Name tmpdir)}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'./etc/group type=file uname=root gname=wheel mode=0644 contents='> (${ Id.VSub_Name tmpdir) <'/group\n'> <'./etc/master.passwd type=file uname=root gname=wheel mode=0600 contents='> (${ Id.VSub_Name tmpdir) <'/master.passwd\n'> <'./etc/passwd type=file mode=0644 uname=root gname=wheel contents='> (${ Id.VSub_Name tmpdir) <'/passwd\n'> <'./etc/pwd.db type=file mode=0644 uname=root gname=wheel contents='> (${ Id.VSub_Name tmpdir) <'/pwd.db\n'> <'./etc/spwd.db type=file mode=0600 uname=root gname=wheel contents='> (${ Id.VSub_Name tmpdir) <'/spwd.db\n'> ] ) ) (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name tmpdir) <'/passwd.mtree'>} ) ] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'EXTRAS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EXTRAS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXTRAS='> name:EXTRAS) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name EXTRAS) <' '> (${ Id.VSub_Name tmpdir) <'/passwd.mtree'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DBDIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DBDIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DBDIR='> name:DBDIR) op: assign_op.Equal rhs: {(${ Id.VSub_Name tmpdir)} ) ] redirects: [] ) ] spids: [716 731] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name FILELIST))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<.>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Pipeline children: [ (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} {<-v>} {<Id.Lit_Other '^'> <Id.Lit_Pound '#'>} {(${ Id.VSub_Name FILELIST)} ] redirects: [] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<path>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'path='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'path='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'path='> name: path ) op: assign_op.Equal rhs: {(DQ <'/'> (${ Id.VSub_Name path))} ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name path))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <.> (${ Id.VSub_Name path))}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'path='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'path='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'path='> name: path ) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name path> var_name: path suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'> } ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] ops: [<Id.Op_Pipe _>] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sort> more_env: [] words: [{<sort>} {<-u>} {(${ Id.VSub_Name BSDROOT) <'/METALOG'>} {<->}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [ {<awk>} { (SQ <'\n'> <'\t\t!/ type=/ { file = $1 }\n'> <'\t\t/ type=/ { if ($1 == file) {print} }'> ) } ] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name manifest)} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) ] spids: [872 887] ) (IfArm keyword: <Id.KW_Elif elif> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name EXTRAS))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Pipeline children: [ (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-h>} {<Id.Lit_VarLike 'type='> <file>} {(${ Id.VSub_Name EXTRAS)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d> (SQ <' '>)} {<-f1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sort> more_env: [] words: [{<sort>} {<-u>} {(${ Id.VSub_Name BSDROOT) <'/METALOG'>} {<->}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [ {<awk>} { (SQ <'\n'> <'\t\t!/ type=/ { file = $1 }\n'> <'\t\t/ type=/ { if ($1 != file) {print} }'> ) } ] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name manifest)} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>] ) ] spids: [1028 1043] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <sort> more_env: [] words: [{<sort>} {<-u>} {(${ Id.VSub_Name BSDROOT) <'/METALOG'>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name manifest)} ) ] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [eman] iterable: (for_iter.Words words:[{(${ Id.VSub_Name EXTRAS)}]) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(${ Id.VSub_Name eman)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err> more_env: [] words: [{<err>} {<1>} {(DQ (${ Id.VSub_Name eman) <' is not a regular file'>)}] redirects: [] do_fork: T ) ] spids: [1151 1166] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'extradir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'extradir='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'extradir='> name:extradir) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <realpath> more_env: [] words: [{<realpath>} {(${ Id.VSub_Name eman)}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike 'extradir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'extradir='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'extradir='> name:extradir) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {(${ Id.VSub_Name extradir)}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Pipeline children: [ (command.Simple blame_tok: <awk> more_env: [] words: [ {<awk>} { (SQ <'{\n'> <'\t\tif ($0 !~ /type=file/) {\n'> <'\t\t\tprint\n'> <'\t\t} else {\n'> <'\t\t\tif ($0 !~ /contents=/) {\n'> <'\t\t\t\tprintf ("%s contents=%s\\n", $0, $1)\n'> <'\t\t\t} else {\n'> <'\t\t\t\tprint\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t}'> ) } {(${ Id.VSub_Name eman)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} { (DQ <'s|contents='> <Id.Lit_BadBackslash '\\'> <'./|contents='> (${ Id.VSub_Name extradir) <'/|'> ) } ] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name manifest)} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<'/etc/rc.d/FIRST'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name tmpdir) <'/rcorder.start'>} ) ] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <rcorder> more_env: [] words: [ {<rcorder>} {<-s>} {<nostart>} {(${ Id.VSub_Name BSDROOT) <'/etc/rc.d/'> <Id.Lit_Star '*'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(DQ <'s:^'> (${ Id.VSub_Name BSDROOT) <'::'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-v>} {<LAST>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-v>} {<FIRST>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name tmpdir) <'/rcorder.start'>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<'/etc/rc.d/LAST'>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name tmpdir) <'/rcorder.start'>} ) ] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'./etc/rcorder.start type=file mode=644 uname=root gname=wheel'>)} {(DQ <'contents='> (${ Id.VSub_Name tmpdir) <'/rcorder.start'>)} ] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name manifest)} ) ] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name KEYDIR))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {(${ Id.VSub_Name KEYDIR) <'/'> <Id.Lit_Star '*'> <.pub>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name tmpdir) <'/authorized_keys'>} ) ] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-s>} {(${ Id.VSub_Name tmpdir) <'/authorized_keys'>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err> more_env: [] words: [{<err>} {<1>} {(DQ <'no keys found in '> (${ Id.VSub_Name KEYDIR))}] redirects: [] do_fork: T ) ] spids: [1407 1423] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [user] iterable: (for_iter.Words words:[{(${ Id.VSub_Name KEYUSERS)}]) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'userdir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'userdir='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'userdir='> name:userdir) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <awk> more_env: [] words: [ {<awk>} {<-F> <Id.Lit_Colon ':'>} { (DQ <'{if ('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'1 == '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') (${ Id.VSub_Name user) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <') {print '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'9; exit} }'> ) } {(${ Id.VSub_Name DBDIR) <'/master.passwd'>} ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'gid='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'gid='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'gid='> name:gid) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <awk> more_env: [] words: [ {<awk>} {<-F> <Id.Lit_Colon ':'>} { (DQ <'{if ('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'1 == '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') (${ Id.VSub_Name user) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <') {print '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'4; exit} }'> ) } {(${ Id.VSub_Name DBDIR) <'/master.passwd'>} ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'group='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'group='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'group='> name:group) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <awk> more_env: [] words: [ {<awk>} {<-F> <Id.Lit_Colon ':'>} { (DQ <'{if ('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'3 == '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') (${ Id.VSub_Name gid) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <') {print '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'1; exit} }'> ) } {(${ Id.VSub_Name DBDIR) <'/group'>} ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name userdir))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err> more_env: [] words: [ {<err>} {<1>} { (DQ (${ Id.VSub_Name user) <': not found in '> (${ Id.VSub_Name DBDIR) <'/master.passwd'> ) } ] redirects: [] do_fork: T ) ] spids: [1575 1590] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <.> (${ Id.VSub_Name userdir) <'/.ssh type=dir mode=700 uname='> (${ Id.VSub_Name user) <' gname='> (${ Id.VSub_Name group) ) } ] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name manifest)} ) ] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <.> (${ Id.VSub_Name userdir) <'/.ssh/authorized_keys type=file mode=600 uname='> (${ Id.VSub_Name user) <' gname='> (${ Id.VSub_Name group) <' contents='> (${ Id.VSub_Name tmpdir) <'/authorized_keys'> ) } ] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name manifest)} ) ] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) ] spids: [1372 1387] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name LABEL))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LABELFLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LABELFLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LABELFLAG='> name:LABELFLAG) op: assign_op.Equal rhs: {(DQ <'-o label='> (${ Id.VSub_Name LABEL))} ) ] redirects: [] ) ] spids: [1670 1685] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name SIZE))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'SIZEFLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SIZEFLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SIZEFLAG='> name:SIZEFLAG) op: assign_op.Equal rhs: {(DQ <'-s '> (${ Id.VSub_Name SIZE))} ) ] redirects: [] ) ] spids: [1697 1712] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-i>} {(SQ )} {<-E>} {(SQ <'s/(time=[0-9]*)\\.[0-9]*/\\1.0/'>)} {(${ Id.VSub_Name manifest)} ] redirects: [] do_fork: T ) (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(${ Id.VSub_Name BSDROOT)}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <makefs> more_env: [] words: [ {<makefs>} {(${ Id.VSub_Name DUPFLAG)} {<-N>} {(${ Id.VSub_Name DBDIR)} {(${ Id.VSub_Name SIZEFLAG)} {(${ Id.VSub_Name BFLAG)} {<-t>} {<ffs>} {(${ Id.VSub_Name LABELFLAG)} {<-f>} {<256>} {(${ Id.VSub_Name IMGFILE)} {(${ Id.VSub_Name manifest)} ] redirects: [] do_fork: T ) ] ) ] )