(command.CommandList children: [ (C {<export>} {<Id.Lit_VarLike 'DESTTREE='> <'/usr'>}) (C {<export>} {<Id.Lit_VarLike 'INSDESTTREE='> (DQ )}) (C {<export>} {<Id.Lit_VarLike '_E_EXEDESTTREE_='> (DQ )}) (C {<export>} {<Id.Lit_VarLike '_E_DOCDESTTREE_='> (DQ )}) (C {<export>} {<Id.Lit_VarLike 'INSOPTIONS='> (DQ <-m0644>)}) (C {<export>} {<Id.Lit_VarLike 'EXEOPTIONS='> (DQ <-m0755>)}) (C {<export>} {<Id.Lit_VarLike 'LIBOPTIONS='> (DQ <-m0644>)}) (C {<export>} {<Id.Lit_VarLike 'DIROPTIONS='> (DQ <-m0755>)}) (C {<export>} {<Id.Lit_VarLike 'MOPREFIX='> (${ Id.VSub_Name PN)}) (C {<export>} {<Id.Lit_VarLike 'PORTAGE_DOCOMPRESS_SIZE_LIMIT='> (DQ <128>)}) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'PORTAGE_DOCOMPRESS='> (sh_array_literal left: <Id.Op_LParen _> words: [ (word.BracedTree parts: [<'/usr/share/'> (word_part.BracedTuple words:[{<doc>} {<info>} {<man>}])] ) ] ) } ) (C {<declare>} {<-a>} {<Id.Lit_VarLike 'PORTAGE_DOCOMPRESS_SKIP='> (sh_array_literal left: <Id.Op_LParen _> words: [{<'/usr/share/doc/'> (${ Id.VSub_Name PF) <'/html'>}] ) } ) (command.ShFunction name: into body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<export>} {<Id.Lit_VarLike 'DESTTREE='> (DQ )})] spids: [119 137] ) ] else_action: [ (C {<export>} {<Id.Lit_VarLike 'DESTTREE='> ($ Id.VSub_Number 1)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<___eapi_has_prefix_variables>})] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})] spids: [156 163] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name DESTTREE))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<install>} {<-d>} {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name DESTTREE))}) (C {<local>} {<Id.Lit_VarLike 'ret='> ($ Id.VSub_QMark '?')}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_DollarName ret)} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <' failed'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName ret)} ) ] spids: [220 234] ) ] else_action: [] redirects: [] ) ] spids: [177 197] ) ] else_action: [] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: insinto body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<export>} {<Id.Lit_VarLike 'INSDESTTREE='> (DQ )})] spids: [273 291] ) ] else_action: [ (C {<export>} {<Id.Lit_VarLike 'INSDESTTREE='> ($ Id.VSub_Number 1)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<___eapi_has_prefix_variables>})] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})] spids: [310 317] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name INSDESTTREE))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<install>} {<-d>} {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name INSDESTTREE))}) (C {<local>} {<Id.Lit_VarLike 'ret='> ($ Id.VSub_QMark '?')}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_DollarName ret)} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <' failed'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName ret)} ) ] spids: [374 388] ) ] else_action: [] redirects: [] ) ] spids: [331 351] ) ] else_action: [] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: exeinto body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<export>} {<Id.Lit_VarLike '_E_EXEDESTTREE_='> (DQ )})] spids: [427 445] ) ] else_action: [ (C {<export>} {<Id.Lit_VarLike '_E_EXEDESTTREE_='> (DQ ($ Id.VSub_Number 1))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<___eapi_has_prefix_variables>})] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})] spids: [466 473] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name _E_EXEDESTTREE_))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<install>} {<-d>} {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name _E_EXEDESTTREE_))} ) (C {<local>} {<Id.Lit_VarLike 'ret='> ($ Id.VSub_QMark '?')}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_DollarName ret)} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <' failed'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName ret)} ) ] spids: [530 544] ) ] else_action: [] redirects: [] ) ] spids: [487 507] ) ] else_action: [] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: docinto body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<export>} {<Id.Lit_VarLike '_E_DOCDESTTREE_='> (DQ )})] spids: [583 601] ) ] else_action: [ (C {<export>} {<Id.Lit_VarLike '_E_DOCDESTTREE_='> (DQ ($ Id.VSub_Number 1))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<___eapi_has_prefix_variables>})] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})] spids: [622 629] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} { (DQ (${ Id.VSub_Name ED) <'usr/share/doc/'> (${ Id.VSub_Name PF) <'/'> (${ Id.VSub_Name _E_DOCDESTTREE_) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<install>} {<-d>} { (DQ (${ Id.VSub_Name ED) <'usr/share/doc/'> (${ Id.VSub_Name PF) <'/'> (${ Id.VSub_Name _E_DOCDESTTREE_) ) } ) (C {<local>} {<Id.Lit_VarLike 'ret='> ($ Id.VSub_QMark '?')}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_DollarName ret)} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <' failed'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName ret)} ) ] spids: [696 710] ) ] else_action: [] redirects: [] ) ] spids: [643 668] ) ] else_action: [] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: insopts body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<export>} {<Id.Lit_VarLike 'INSOPTIONS='> (DQ ($ Id.VSub_At '@'))}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<has>} {<-s>} {(${ Id.VSub_Name INSOPTIONS)}) (C {<die>} {(DQ <'Never call insopts() with -s'>)}) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: diropts body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [(C {<export>} {<Id.Lit_VarLike 'DIROPTIONS='> (DQ ($ Id.VSub_At '@'))})] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: exeopts body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<export>} {<Id.Lit_VarLike 'EXEOPTIONS='> (DQ ($ Id.VSub_At '@'))}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<has>} {<-s>} {(${ Id.VSub_Name EXEOPTIONS)}) (C {<die>} {(DQ <'Never call exeopts() with -s'>)}) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: libopts body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<export>} {<Id.Lit_VarLike 'LIBOPTIONS='> (DQ ($ Id.VSub_At '@'))}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<has>} {<-s>} {(${ Id.VSub_Name LIBOPTIONS)}) (C {<die>} {(DQ <'Never call libopts() with -s'>)}) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: docompress body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<___eapi_has_docompress>}) (C {<die>} {(DQ <'\'docompress\' not supported in this EAPI'>)}) ] ) (C {<local>} {<f>} {<g>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {($ Id.VSub_Number 1)} right: {(DQ <-x>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<shift>}) (command.ForEach iter_names: [f] iterable: (for_iter.Args) body: (command.DoGroup children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<__strip_duplicate_slashes>} {(DQ (${ Id.VSub_Name f))} ) right: <Id.Eof_RParen _> ) } spids: [931] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name f> var_name: f suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [943] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name f> var_name: f suffix_op: (suffix_op.Slice begin: {<Id.Lit_Digits 0>} length: {<Id.Lit_Digits 1>} ) right: <Id.Arith_RBrace _> ) } right: {<'/'>} ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f) op: assign_op.Equal rhs: {(DQ <'/'> (${ Id.VSub_Name f))} spids: [969] ) ] redirects: [] ) ] ) (command.ForEach iter_names: [g] iterable: (for_iter.Words words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PORTAGE_DOCOMPRESS_SKIP> var_name: PORTAGE_DOCOMPRESS_SKIP bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] ) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(${ Id.VSub_Name f)} right: {(DQ (${ Id.VSub_Name g))} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> arg_word: {<2>} ) ] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'PORTAGE_DOCOMPRESS_SKIP['> name: PORTAGE_DOCOMPRESS_SKIP index: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PORTAGE_DOCOMPRESS_SKIP> var_name: PORTAGE_DOCOMPRESS_SKIP prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) op: assign_op.Equal rhs: {(${ Id.VSub_Name f)} spids: [1023] ) ] redirects: [] ) ] ) redirects: [] ) ] spids: [902 917] ) ] else_action: [ (command.ForEach iter_names: [f] iterable: (for_iter.Args) body: (command.DoGroup children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<__strip_duplicate_slashes>} {(DQ (${ Id.VSub_Name f))}) right: <Id.Eof_RParen _> ) } spids: [1059] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name f> var_name: f suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [1071] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name f> var_name: f suffix_op: (suffix_op.Slice begin: {<Id.Lit_Digits 0>} length: {<Id.Lit_Digits 1>} ) right: <Id.Arith_RBrace _> ) } right: {<'/'>} ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f) op: assign_op.Equal rhs: {(DQ <'/'> (${ Id.VSub_Name f))} spids: [1097] ) ] redirects: [] ) ] ) (command.ForEach iter_names: [g] iterable: (for_iter.Words words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PORTAGE_DOCOMPRESS> var_name: PORTAGE_DOCOMPRESS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] ) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(${ Id.VSub_Name f)} right: {(DQ (${ Id.VSub_Name g))} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> arg_word: {<2>} ) ] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'PORTAGE_DOCOMPRESS['> name: PORTAGE_DOCOMPRESS index: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PORTAGE_DOCOMPRESS> var_name: PORTAGE_DOCOMPRESS prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) op: assign_op.Equal rhs: {(${ Id.VSub_Name f)} spids: [1151] ) ] redirects: [] ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: useq body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<has>} {($ Id.VSub_DollarName EBUILD_PHASE)} {<prerm>} {<postrm>}) (C {<eqawarn>} {(DQ <'QA Notice: The \'useq\' function is deprecated (replaced by \'use\')'>)} ) ] ) (C {<use>} {(${ Id.VSub_Number 1)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: usev body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<use>} {(${ Id.VSub_Number 1)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 1> var_name: 1 suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '!'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1223 1232] ) ] else_action: [] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [(command.Sentence child:(C {<___eapi_has_usex>}) terminator:<Id.Op_Semi _>)] ) action: [ (command.ShFunction name: usex body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<use>} {(DQ ($ Id.VSub_Number 1))}) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 2> var_name: 2 suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: {<yes>} ) right: <Id.Right_DollarBrace '}'> ) ($ Id.VSub_Number 4) ) } ) ] spids: [1276 1285] ) ] else_action: [ (C {<echo>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 3> var_name: 3 suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<no>}) right: <Id.Right_DollarBrace '}'> ) ($ Id.VSub_Number 5) ) } ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [1261 1266] ) ] else_action: [] redirects: [] ) (command.ShFunction name: use body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'u='> ($ Id.VSub_Number 1)}) (C {<local>} {<Id.Lit_VarLike 'found='> <0>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name u> var_name: u suffix_op: (suffix_op.Slice begin: {<Id.Lit_Digits 0>} length: {<Id.Lit_Digits 1>} ) right: <Id.Arith_RBrace _> ) } right: {(DQ <'!'>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u='> name:u) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name u> var_name: u suffix_op: (suffix_op.Slice begin:{<Id.Lit_Digits 1>}) right: <Id.Arith_RBrace _> ) } spids: [1377] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'found='> name:found) op: assign_op.Equal rhs: {<1>} spids: [1385] ) ] redirects: [] ) ] spids: [1352 1374] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {($ Id.VSub_DollarName EBUILD_PHASE)} right: {<depend>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<true>})] spids: [1393 1407] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName PORTAGE_IUSE)} ) right: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName EBUILD_PHASE)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName PORTAGE_INTERNAL_CALLER)} ) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName u)} right: {($ Id.VSub_DollarName PORTAGE_IUSE)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {(${ Id.VSub_Name EAPI)} right: {<Id.Lit_Other '^'> <Id.Lit_Other '('> <0> <Id.Lit_Other '|'> <1> <Id.Lit_Other '|'> <2> <Id.Lit_Other '|'> <3> <Id.Lit_Other '|'> <4> <Id.Lit_Other '|'> <4-python> <Id.Lit_Other '|'> <4-slot-abi> <Id.Lit_Other ')'> <Id.Lit_Other '$'> } ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ <'USE Flag \''> (${ Id.VSub_Name u) <'\' not in IUSE for '> (${ Id.VSub_Name CATEGORY) <'/'> (${ Id.VSub_Name PF) ) } ) ] spids: [1501 1535] ) ] else_action: [] redirects: [] ) (C {<eqawarn>} {(DQ <'QA Notice: USE Flag \''> (${ Id.VSub_Name u) <'\' not'>)} {(DQ <'in IUSE for '> (${ Id.VSub_Name CATEGORY) <'/'> (${ Id.VSub_Name PF))} ) ] spids: [1482 1498] ) ] else_action: [] redirects: [] ) ] spids: [1454 1479] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'IFS='> (single_quoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_Literals ' '> <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\n'>] right: <Id.Right_SingleQuote '\''> ) } {<Id.Lit_VarLike 'prev_shopts='> ($ Id.VSub_Hyphen -)} {<ret>} ) (C {<set>} {<-f>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<has>} {(${ Id.VSub_Name u)} {(${ Id.VSub_Name USE)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret) op: assign_op.Equal rhs: {(${ Id.VSub_Name found)} spids: [1635] ) ] redirects: [] ) ] spids: [1618 1632] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Unary op_id: Id.Arith_Bang child: ($ Id.Lit_ArithVarLike found) ) ) } spids: [1644] ) ] redirects: [] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name prev_shopts)} right: {<Id.Lit_Other '*'> <f> <Id.Lit_Other '*'>} ) redirects: [] ) (C {<set>} {<Id.Lit_Other '+'> <f>}) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(${ Id.VSub_Name ret)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: use_with body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'!!! use_with() called without a parameter.'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <'!!! use_with <USEFLAG> [<flagname> [value]]'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [1693 1706] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_use_enable_and_use_with_support_empty_third_argument>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'UW_SUFFIX='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 3> var_name: 3 suffix_op: (suffix_op.Unary op: <Id.VTest_Plus _> arg_word: {<'='> ($ Id.VSub_Number 3)} ) right: <Id.Right_DollarBrace '}'> ) } ) ] spids: [1738 1743] ) ] else_action: [ (C {<local>} {<Id.Lit_VarLike 'UW_SUFFIX='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 3> var_name: 3 suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {<'='> ($ Id.VSub_Number 3)} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'UWORD='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 2> var_name: 2 suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {($ Id.VSub_Number 1)} ) right: <Id.Right_DollarBrace '}'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<use>} {($ Id.VSub_Number 1)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <--with-> (${ Id.VSub_Name UWORD) (${ Id.VSub_Name UW_SUFFIX))}) ] spids: [1785 1792] ) ] else_action: [(C {<echo>} {(DQ <--without-> (${ Id.VSub_Name UWORD))})] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: use_enable body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'!!! use_enable() called without a parameter.'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <'!!! use_enable <USEFLAG> [<flagname> [value]]'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [1838 1851] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_use_enable_and_use_with_support_empty_third_argument>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'UE_SUFFIX='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 3> var_name: 3 suffix_op: (suffix_op.Unary op: <Id.VTest_Plus _> arg_word: {<'='> ($ Id.VSub_Number 3)} ) right: <Id.Right_DollarBrace '}'> ) } ) ] spids: [1883 1888] ) ] else_action: [ (C {<local>} {<Id.Lit_VarLike 'UE_SUFFIX='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 3> var_name: 3 suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {<'='> ($ Id.VSub_Number 3)} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'UWORD='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 2> var_name: 2 suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {($ Id.VSub_Number 1)} ) right: <Id.Right_DollarBrace '}'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<use>} {($ Id.VSub_Number 1)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <--enable-> (${ Id.VSub_Name UWORD) (${ Id.VSub_Name UE_SUFFIX))}) ] spids: [1930 1937] ) ] else_action: [(C {<echo>} {(DQ <--disable-> (${ Id.VSub_Name UWORD))})] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: unpack body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<srcdir>}) (C {<local>} {<x>}) (C {<local>} {<y>} {<y_insensitive>}) (C {<local>} {<suffix>} {<suffix_insensitive>}) (C {<local>} {<myfail>}) (C {<local>} {<Id.Lit_VarLike 'eapi='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name EAPI> var_name: EAPI suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<0>}) right: <Id.Right_DollarBrace '}'> ) } ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_Star '*'))} {<Id.Lit_RBracket ']'>}) (C {<die>} {(DQ <'Nothing passed to the \'unpack\' command'>)}) ] ) (command.ForEach iter_names: [x] iterable: (for_iter.Words words:[{(DQ ($ Id.VSub_At '@'))}]) body: (command.DoGroup children: [ (C {<__vecho>} {(DQ <'>>> Unpacking '> (${ Id.VSub_Name x) <' to '> (${ Id.VSub_Name PWD))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'suffix='> name:suffix) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <.>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [2070] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'suffix_insensitive='> name: suffix_insensitive ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [{<tr>} {(DQ <'[:upper:]'>)} {(DQ <'[:lower:]'>)}] redirects: [ (redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: {(DQ (${ Id.VSub_Name suffix))} ) ] more_env: [(env_pair name:LC_ALL val:{<C>} spids:[2081])] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [2079] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<.> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [2104] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name y> var_name: y suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <.>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [2113] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'y_insensitive='> name: y_insensitive ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [{<tr>} {(DQ <'[:upper:]'>)} {(DQ <'[:lower:]'>)}] redirects: [ (redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: {(DQ (${ Id.VSub_Name y))} ) ] more_env: [(env_pair name:LC_ALL val:{<C>} spids:[2124])] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [2122] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(${ Id.VSub_Name x)} right: {<Id.Lit_Other '*'> <'/'> <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcdir='> name:srcdir) op: assign_op.Equal rhs: {(${ Id.VSub_Name DISTDIR) <'/'>} spids: [2176] ) ] redirects: [] ) ] spids: [2152 2169] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name x)} right: {<'./'> <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcdir='> name:srcdir) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [2206] ) ] redirects: [] ) ] spids: [2183 2199] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_unpack_supports_absolute_paths>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'srcdir='> name: srcdir ) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [2228] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name x)} right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DISTDIR> var_name: DISTDIR suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) <'/'> <Id.Lit_Other '*'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} { (DQ <'QA Notice: unpack called with redundant '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'{DISTDIR} in path'> ) } ) ] spids: [2232 2253] ) ] else_action: [] redirects: [] ) ] spids: [2216 2221] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name x)} right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DISTDIR> var_name: DISTDIR suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) <'/'> <Id.Lit_Other '*'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ <'Arguments to unpack() cannot begin with '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'{DISTDIR} in EAPI '> (${ Id.VSub_Name EAPI) ) } ) ] spids: [2268 2289] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name x)} right: {<'/'> <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ <'Arguments to unpack() cannot be absolute in EAPI '> (${ Id.VSub_Name EAPI) ) } ) ] spids: [2304 2321] ) ] else_action: [ (C {<die>} { (DQ < 'Relative paths to unpack() must be prefixed with \'./\' in EAPI ' > (${ Id.VSub_Name EAPI) ) } ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_s child: {(${ Id.VSub_Name srcdir) (${ Id.VSub_Name x)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ <'unpack: '> (${ Id.VSub_Name x) <' does not exist'>)} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [2353 2371] ) ] else_action: [] redirects: [] ) (command.ShFunction name: __unpack_tar body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name y_insensitive)} right: {<tar>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<___eapi_unpack_is_case_sensitive>}) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {<tar>} right: {(${ Id.VSub_Name y)} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} { (DQ <'secondary suffix \''> (${ Id.VSub_Name y) <'\' which is unofficially'> ) } {(DQ <'supported with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'tar\'.'>)} ) ] spids: [2420 2442] ) ] else_action: [] redirects: [] ) (command.Pipeline children: [ (C {($ Id.VSub_Number 1)} {<-c>} {<-->} { (DQ ($ Id.VSub_DollarName srcdir) ($ Id.VSub_DollarName x)) } ) (C {<tar>} {<xof>} {<->}) ] negated: F stderr_indices: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<__assert_sigpipe_ok>} {(DQ ($ Id.VSub_DollarName myfail))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] spids: [2401 2417] ) ] else_action: [ (C {<local>} {<Id.Lit_VarLike 'cwd_dest='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'cwd_dest='> name: cwd_dest ) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name cwd_dest> var_name: cwd_dest suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<.> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [2522] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [ {($ Id.VSub_Number 1)} {<-c>} {<-->} { (DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x) ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name cwd_dest))} ) ] more_env: [] do_fork: T ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [2531 2559] ) ] else_action: [] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'myfail='> name:myfail) op: assign_op.Equal rhs: {(DQ <'unpack: failure unpacking '> (${ Id.VSub_Name x))} spids: [2584] ) ] redirects: [] ) (command.Case to_match: {(DQ (${ Id.VSub_Name suffix_insensitive))} arms: [ (case_arm pat_list: [{<tar>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<___eapi_unpack_is_case_sensitive>}) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {<tar>} right: {(${ Id.VSub_Name suffix)} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} { (DQ <'suffix \''> (${ Id.VSub_Name suffix) <'\' which is unofficially supported'> ) } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'tar\'.'>)} ) ] spids: [2608 2630] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<tar>} {<xof>} { (DQ ($ Id.VSub_DollarName srcdir) ($ Id.VSub_DollarName x) ) } ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [2663 2677] ) ] else_action: [] redirects: [] ) ] spids: [2604 2605 2695 -1] ) (case_arm pat_list: [{<tgz>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<___eapi_unpack_is_case_sensitive>}) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {<tgz>} right: {(${ Id.VSub_Name suffix)} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} { (DQ <'suffix \''> (${ Id.VSub_Name suffix) <'\' which is unofficially supported'> ) } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'tgz\'.'>)} ) ] spids: [2702 2724] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<tar>} {<xozf>} { (DQ ($ Id.VSub_DollarName srcdir) ($ Id.VSub_DollarName x) ) } ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [2757 2771] ) ] else_action: [] redirects: [] ) ] spids: [2698 2699 2789 -1] ) (case_arm pat_list: [{<tbz>} {<tbz2>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<___eapi_unpack_is_case_sensitive>}) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ <' tbz tbz2 '>)} right: {<Id.Lit_Other '*'> (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'> } ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} { (DQ <'suffix \''> (${ Id.VSub_Name suffix) <'\' which is unofficially supported'> ) } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'tbz\' or \'tbz2\'.'>)} ) ] spids: [2798 2828] ) ] else_action: [] redirects: [] ) (command.Pipeline children: [ (C { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PORTAGE_BUNZIP2_COMMAND> var_name: PORTAGE_BUNZIP2_COMMAND suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {(${ Id.VSub_Name PORTAGE_BZIP2_COMMAND) <' -d'>} ) right: <Id.Right_DollarBrace '}'> ) } {<-c>} {<-->} {(DQ ($ Id.VSub_DollarName srcdir) ($ Id.VSub_DollarName x))} ) (C {<tar>} {<xof>} {<->}) ] negated: F stderr_indices: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<__assert_sigpipe_ok>} {(DQ ($ Id.VSub_DollarName myfail))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] spids: [2792 2795 2901 -1] ) (case_arm pat_list: [{<zip>} {<jar>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<___eapi_unpack_is_case_sensitive>}) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ <' ZIP zip jar '>)} right: {<Id.Lit_Other '*'> (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'> } ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} { (DQ <'suffix \''> (${ Id.VSub_Name suffix) <'\' which is unofficially supported'> ) } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'.'>)} {(DQ <'Instead use \'ZIP\', \'zip\', or \'jar\'.'>)} ) ] spids: [2910 2940] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<unzip>} {<-qo>} {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))} ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [2987 3005] ) ] else_action: [] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: { (command_sub left_token: <Id.Left_ProcSubIn '<('> child: (command.CommandList children: [ (command.Sentence child: (C {<set>} {<Id.Lit_Other '+'> <x>}) terminator: <Id.Op_Semi _> ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<true>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<echo>} {<n>}) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] ) terminator: <Id.Op_Semi _> ) ] ) redirects: [] ) ] ) right: <Id.Eof_RParen _> ) } ) ] ) ] spids: [2904 2907 3054 -1] ) (case_arm pat_list: [{<gz>} {<z>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<___eapi_unpack_is_case_sensitive>}) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ <' gz z Z '>)} right: {<Id.Lit_Other '*'> (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'> } ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} { (DQ <'suffix \''> (${ Id.VSub_Name suffix) <'\' which is unofficially supported'> ) } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'gz\', \'z\', or \'Z\'.'>)} ) ] spids: [3063 3093] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<__unpack_tar>} {(DQ <'gzip -d'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] spids: [3057 3060 3139 -1] ) (case_arm pat_list: [{<bz2>} {<bz>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<___eapi_unpack_is_case_sensitive>}) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ <' bz bz2 '>)} right: {<Id.Lit_Other '*'> (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'> } ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} { (DQ <'suffix \''> (${ Id.VSub_Name suffix) <'\' which is unofficially supported'> ) } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'bz\' or \'bz2\'.'>)} ) ] spids: [3148 3178] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<__unpack_tar>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PORTAGE_BUNZIP2_COMMAND> var_name: PORTAGE_BUNZIP2_COMMAND suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {(${ Id.VSub_Name PORTAGE_BZIP2_COMMAND) <' -d'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] spids: [3142 3145 3233 -1] ) (case_arm pat_list: [{<7z>}] action: [ (C {<local>} {<my_output>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'my_output='> name: my_output ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<7z>} {<x>} {<-y>} {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))} ) right: <Id.Eof_RParen _> ) ) } spids: [3245] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ (${ Id.VSub_Name my_output))}] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<die>} {(DQ ($ Id.VSub_DollarName myfail))}) ] spids: [3266 3279] ) ] else_action: [] redirects: [] ) ] spids: [3236 3237 3304 -1] ) (case_arm pat_list: [{<rar>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<___eapi_unpack_is_case_sensitive>}) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ <' rar RAR '>)} right: {<Id.Lit_Other '*'> (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'> } ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} { (DQ <'suffix \''> (${ Id.VSub_Name suffix) <'\' which is unofficially supported'> ) } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'rar\' or \'RAR\'.'>)} ) ] spids: [3311 3341] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<unrar>} {<x>} {<-idq>} {<-o> <Id.Lit_Other '+'>} {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))} ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3374 3397] ) ] else_action: [] redirects: [] ) ] spids: [3307 3308 3415 -1] ) (case_arm pat_list: [{<lha>} {<lzh>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<___eapi_unpack_is_case_sensitive>}) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ <' LHA LHa lha lzh '>)} right: {<Id.Lit_Other '*'> (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'> } ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} { (DQ <'suffix \''> (${ Id.VSub_Name suffix) <'\' which is unofficially supported'> ) } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'.'>)} {(DQ <'Instead use \'LHA\', \'LHa\', \'lha\', or \'lzh\'.'>)} ) ] spids: [3424 3454] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<lha>} {<xfq>} {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))} ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3493 3511] ) ] else_action: [] redirects: [] ) ] spids: [3418 3421 3529 -1] ) (case_arm pat_list: [{<a>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<___eapi_unpack_is_case_sensitive>}) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ <' a '>)} right: {<Id.Lit_Other '*'> (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'> } ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} { (DQ <'suffix \''> (${ Id.VSub_Name suffix) <'\' which is unofficially supported'> ) } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'a\'.'>)} ) ] spids: [3536 3566] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<ar>} {<x>} {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))} ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3599 3617] ) ] else_action: [] redirects: [] ) ] spids: [3532 3533 3635 -1] ) (case_arm pat_list: [{<deb>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<___eapi_unpack_is_case_sensitive>}) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ <' deb '>)} right: {<Id.Lit_Other '*'> (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'> } ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} { (DQ <'suffix \''> (${ Id.VSub_Name suffix) <'\' which is unofficially supported'> ) } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'deb\'.'>)} ) ] spids: [3642 3672] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [{<ar>} {<--version>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(DQ <'GNU ar'>) <Id.Lit_Other '*'>} ) redirects: [] ) (command.Simple words: [{<type>} {<-P>} {<deb2targz>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [3769] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'created_symlink='> <0>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} { (DQ ($ Id.VSub_DollarName srcdir) ($ Id.VSub_DollarName x) ) } {<-ef>} {(DQ ($ Id.VSub_DollarName y))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<ln>} {<-sf>} { (DQ ($ Id.VSub_DollarName srcdir) ($ Id.VSub_DollarName x) ) } {(DQ ($ Id.VSub_DollarName y))} ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3820 3838] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'created_symlink='> name: created_symlink ) op: assign_op.Equal rhs: {<1>} spids: [3856] ) ] redirects: [] ) ] spids: [3784 3805] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<deb2targz>} {(DQ ($ Id.VSub_DollarName y))}) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3863 3874] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName created_symlink)} {<Id.Lit_Equals '='>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName y))})] spids: [3892 3906] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<mv>} {<-f>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name y> var_name: y suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<.deb>} ) right: <Id.Right_DollarBrace '}'> ) ) <.tar.gz> } {<data.tar.gz>} ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<mv>} {<-f>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name y> var_name: y suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<.deb>} ) right: <Id.Right_DollarBrace '}'> ) ) <.tar.xz> } {<data.tar.xz>} ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3952 3972] ) ] else_action: [] redirects: [] ) ] spids: [3929 3949] ) ] else_action: [] redirects: [] ) ] spids: [3729 3766] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<ar>} {<x>} { (DQ ($ Id.VSub_DollarName srcdir) ($ Id.VSub_DollarName x) ) } ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3996 4010] ) ] else_action: [] redirects: [] ) ] redirects: [] ) ] spids: [3638 3639 4031 -1] ) (case_arm pat_list: [{<lzma>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<___eapi_unpack_is_case_sensitive>}) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ <' lzma '>)} right: {<Id.Lit_Other '*'> (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'> } ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} { (DQ <'suffix \''> (${ Id.VSub_Name suffix) <'\' which is unofficially supported'> ) } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'lzma\'.'>)} ) ] spids: [4038 4068] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<__unpack_tar>} {(DQ <'lzma -d'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] spids: [4034 4035 4114 -1] ) (case_arm pat_list: [{<xz>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<___eapi_unpack_is_case_sensitive>}) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ <' xz '>)} right: {<Id.Lit_Other '*'> (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'> } ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} { (DQ <'suffix \''> (${ Id.VSub_Name suffix) <'\' which is unofficially supported'> ) } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'xz\'.'>)} ) ] spids: [4121 4151] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_unpack_supports_xz>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<__unpack_tar>} {(DQ <'xz -d'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] spids: [4184 4189] ) ] else_action: [ (C {<__vecho>} { (DQ <'unpack '> (${ Id.VSub_Name x) <': file format not recognized. Ignoring.'> ) } ) ] redirects: [] ) ] spids: [4117 4118 4222 -1] ) (case_arm pat_list: [{<txz>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<___eapi_unpack_is_case_sensitive>}) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ <' txz '>)} right: {<Id.Lit_Other '*'> (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'> } ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} { (DQ <'suffix \''> (${ Id.VSub_Name suffix) <'\' which is unofficially supported'> ) } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'txz\'.'>)} ) ] spids: [4229 4259] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_unpack_supports_txz>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<tar>} {<xof>} { (DQ ($ Id.VSub_DollarName srcdir) ($ Id.VSub_DollarName x) ) } ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [4300 4314] ) ] else_action: [] redirects: [] ) ] spids: [4292 4297] ) ] else_action: [ (C {<__vecho>} { (DQ <'unpack '> (${ Id.VSub_Name x) <': file format not recognized. Ignoring.'> ) } ) ] redirects: [] ) ] spids: [4225 4226 4349 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<__vecho>} { (DQ <'unpack '> (${ Id.VSub_Name x) <': file format not recognized. Ignoring.'> ) } ) ] spids: [4352 4353 4367 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.Pipeline children: [ (C {<find>} {<.>} {<-mindepth>} {<1>} {<-maxdepth>} {<1>} {<Id.KW_Bang '!'>} {<-type>} {<l>} {<-print0>} ) (C {(${ Id.VSub_Name XARGS)} {<-0>} {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/chmod-lite'>)} ) ] negated: F stderr_indices: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: econf body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<x>}) (C {<local>} {<Id.Lit_VarLike 'pid='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name BASHPID> var_name: BASHPID suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<__bashpid>}) right: <Id.Eof_RParen _> ) } ) right: <Id.Right_DollarBrace '}'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<___eapi_has_prefix_variables>})] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<local>} {<Id.Lit_VarLike 'EPREFIX='>})] spids: [4449 4456] ) ] else_action: [] redirects: [] ) (command.ShFunction name: __hasg body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<x>} {<Id.Lit_VarLike 's='> ($ Id.VSub_Number 1)}) (C {<shift>}) (command.ForEach iter_names: [x] iterable: (for_iter.Args) body: (command.DoGroup children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name x)} right: {(${ Id.VSub_Name s)} ) redirects: [] ) (C {<echo>} {(DQ (${ Id.VSub_Name x))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: __hasgq body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.Simple words: [{<__hasg>} {(DQ ($ Id.VSub_At '@'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (C {<local>} {<Id.Lit_VarLike 'phase_func='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<__ebuild_arg_to_phase>} {(DQ ($ Id.VSub_DollarName EBUILD_PHASE))}) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName phase_func)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<___eapi_has_src_configure>})] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName phase_func)} right: {<src_compile>} ) redirects: [] ) (C {<eqawarn>} {(DQ <'QA Notice: econf called in'>)} {(DQ ($ Id.VSub_DollarName phase_func) <' instead of src_compile'>)} ) ] ) ] spids: [4586 4593] ) ] else_action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName phase_func)} right: {<src_configure>} ) redirects: [] ) (C {<eqawarn>} {(DQ <'QA Notice: econf called in'>)} {(DQ ($ Id.VSub_DollarName phase_func) <' instead of src_configure'>)} ) ] ) ] redirects: [] ) ] spids: [4571 4583] ) ] else_action: [] redirects: [] ) (C {<Id.Lit_Colon ':'>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ECONF_SOURCE> var_name: ECONF_SOURCE suffix_op: (suffix_op.Unary op:<Id.VTest_ColonEquals _> arg_word:{<.>}) right: <Id.Right_DollarBrace '}'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-x>} {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName CONFIG_SHELL)} ) right: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<head>} {<-n1>} { (DQ ($ Id.VSub_DollarName ECONF_SOURCE) <'/configure'> ) } ) right: <Id.Eof_RParen _> ) ) } right: {<Id.Lit_Other '^'> (SQ <'#!'>) <Id.Lit_Other '['> <Id.Lit_Other '['> <Id.Lit_Other ':'> <space> <Id.Lit_Other ':'> <Id.Lit_Other ']'> <Id.Lit_Other ']'> <Id.Lit_Other '*'> <'/bin/sh'> <Id.Lit_Other '('> <Id.Lit_Other '['> <Id.Lit_Other '['> <Id.Lit_Other ':'> <space> <Id.Lit_Other ':'> <Id.Lit_Other ']'> <Id.Lit_Other ']'> <Id.Lit_Other '|'> <Id.Lit_Other '$'> <Id.Lit_Other ')'> } ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cp>} {<-p>} {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} { (DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure._portage_tmp_.'> (${ Id.VSub_Name pid) ) } ) (C {<die>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<sed>} {<-i>} {<-e>} { (DQ <'1s:^#![[:space:]]*/bin/sh:#!'> ($ Id.VSub_DollarName CONFIG_SHELL) <':'> ) } {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure._portage_tmp_.'> (${ Id.VSub_Name pid))} ) (C {<die>} { (DQ <'Substition of shebang in \''> (${ Id.VSub_Name ECONF_SOURCE) <'/configure\' failed'> ) } ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<touch>} {<-r>} {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} { (DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure._portage_tmp_.'> (${ Id.VSub_Name pid) ) } ) (C {<die>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mv>} {<-f>} { (DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure._portage_tmp_.'> (${ Id.VSub_Name pid) ) } {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} ) (C {<die>}) ] ) ] spids: [4690 4746] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-e>} {(DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/gnuconfig/'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {<find>} {(DQ (${ Id.VSub_Name WORKDIR))} {<-type>} {<f>} {(SQ <'('>)} {<-name>} {<config.guess>} {<-o>} {<-name>} {<config.sub>} {(SQ <')'>)} {<-print0>} ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<read>} {<-r>} {<-d>} { (single_quoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\0'>] right: <Id.Right_SingleQuote '\''> ) } {<x>} ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (C {<__vecho>} { (DQ <' * econf: updating '> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.PatSub pat: {(${ Id.VSub_Name WORKDIR) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\/'> ch: '/' ) } replace: (rhs_word.Empty) replace_mode: Id.Undefined_Tok slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) <' with '> (${ Id.VSub_Name EPREFIX) <'/usr/share/gnuconfig/'> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) (C {<cp>} {<-f>} {(DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/gnuconfig/'> (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) ) } {(DQ (${ Id.VSub_Name x) <.> (${ Id.VSub_Name pid))} ) (C {<mv>} {<-f>} {(DQ (${ Id.VSub_Name x) <.> (${ Id.VSub_Name pid))} {(DQ (${ Id.VSub_Name x))} ) ] ) redirects: [] ) ] negated: F stderr_indices: [] ) ] spids: [4875 4891] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'conf_args='> (sh_array_literal left:<Id.Op_LParen _> words:[]) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe] children: [ (C {<___eapi_econf_passes_--disable-dependency-tracking>}) (C {<___eapi_econf_passes_--disable-silent-rules>}) (C {<___eapi_econf_passes_--docdir_and_--htmldir>}) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'conf_help='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} {<--help>} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_econf_passes_--disable-dependency-tracking>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name conf_help)} right: {<Id.Lit_Other '*'> <--disable-dependency-tracking> <Id.Lit_Other '*'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_args+='> name: conf_args ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{<--disable-dependency-tracking>}] ) } spids: [5109] ) ] redirects: [] ) ] spids: [5089 5106] ) ] else_action: [] redirects: [] ) ] spids: [5081 5086] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_econf_passes_--disable-silent-rules>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name conf_help)} right: {<Id.Lit_Other '*'> <--disable-silent-rules> <Id.Lit_Other '*'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_args+='> name: conf_args ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{<--disable-silent-rules>}] ) } spids: [5152] ) ] redirects: [] ) ] spids: [5132 5149] ) ] else_action: [] redirects: [] ) ] spids: [5124 5129] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_econf_passes_--docdir_and_--htmldir>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name conf_help)} right: {<Id.Lit_Other '*'> <--docdir> <Id.Lit_Other '*'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_args+='> name: conf_args ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {<--docdir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/doc/'> (${ Id.VSub_Name PF) } ] ) } spids: [5195] ) ] redirects: [] ) ] spids: [5175 5192] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name conf_help)} right: {<Id.Lit_Other '*'> <--htmldir> <Id.Lit_Other '*'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_args+='> name: conf_args ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {<--htmldir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/doc/'> (${ Id.VSub_Name PF) <'/html'> } ] ) } spids: [5237] ) ] redirects: [] ) ] spids: [5217 5234] ) ] else_action: [] redirects: [] ) ] spids: [5167 5172] ) ] else_action: [] redirects: [] ) ] spids: [5046 5059] ) ] else_action: [] redirects: [] ) (C {<local>} {<CONF_LIBDIR>} {<Id.Lit_VarLike 'LIBDIR_VAR='> (DQ <LIBDIR_> (${ Id.VSub_Name ABI))} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name ABI)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name LIBDIR_VAR> var_name: LIBDIR_VAR prefix_op: <Id.VSub_Bang '!'> right: <Id.Right_DollarBrace '}'> ) } ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CONF_LIBDIR='> name: CONF_LIBDIR ) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name LIBDIR_VAR> var_name: LIBDIR_VAR prefix_op: <Id.VSub_Bang '!'> right: <Id.Right_DollarBrace '}'> ) } spids: [5313] ) ] redirects: [] ) ] spids: [5287 5310] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name CONF_LIBDIR)} ) redirects: [] ) (command.Pipeline children: [ (C {<__hasgq>} {<--libdir> <Id.Lit_Equals '='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\*'> ch: '*' ) } {(DQ ($ Id.VSub_At '@'))} ) ] negated: T stderr_indices: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<export>} {<Id.Lit_VarLike 'CONF_PREFIX='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<__hasg>} {<--exec-prefix> <Id.Lit_Equals '='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\*'> ch: '*' ) } {(DQ ($ Id.VSub_At '@'))} ) right: <Id.Eof_RParen _> ) } ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(${ Id.VSub_Name CONF_PREFIX)} ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CONF_PREFIX='> name: CONF_PREFIX ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<__hasg>} {<--prefix> <Id.Lit_Equals '='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\*'> ch: '*' ) } {(DQ ($ Id.VSub_At '@'))} ) right: <Id.Eof_RParen _> ) } spids: [5382] ) ] redirects: [] ) ] ) (C {<Id.Lit_Colon ':'>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CONF_PREFIX> var_name: CONF_PREFIX suffix_op: (suffix_op.Unary op: <Id.VTest_ColonEquals _> arg_word: {(${ Id.VSub_Name EPREFIX) <Id.Lit_Slash '/'> <usr>} ) right: <Id.Right_DollarBrace '}'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CONF_PREFIX='> name: CONF_PREFIX ) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CONF_PREFIX> var_name: CONF_PREFIX suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '*'> <'='>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [5409] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(${ Id.VSub_Name CONF_PREFIX)} right: {<'/'> <Id.Lit_Other '*'>} ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CONF_PREFIX='> name: CONF_PREFIX ) op: assign_op.Equal rhs: {(DQ <'/'> (${ Id.VSub_Name CONF_PREFIX))} spids: [5433] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(${ Id.VSub_Name CONF_LIBDIR)} right: {<'/'> <Id.Lit_Other '*'>} ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CONF_LIBDIR='> name: CONF_LIBDIR ) op: assign_op.Equal rhs: {(DQ <'/'> (${ Id.VSub_Name CONF_LIBDIR))} spids: [5457] ) ] redirects: [] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_args+='> name: conf_args ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {<--libdir> <Id.Lit_Equals '='> (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<__strip_duplicate_slashes>} { (DQ (${ Id.VSub_Name CONF_PREFIX) (${ Id.VSub_Name CONF_LIBDIR) ) } ) right: <Id.Eof_RParen _> ) ) } ] ) } spids: [5466] ) ] redirects: [] ) ] spids: [5323 5351] ) ] else_action: [] redirects: [] ) (C {<eval>} {(DQ <'local -a EXTRA_ECONF=('> (${ Id.VSub_Name EXTRA_ECONF) <')'>)}) (C {<set>} {<-->} {<--prefix> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/usr'>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CBUILD> var_name: CBUILD suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {<'--build='> (${ Id.VSub_Name CBUILD)} ) right: <Id.Right_DollarBrace '}'> ) } {<--host> <Id.Lit_Equals '='> (${ Id.VSub_Name CHOST)} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CTARGET> var_name: CTARGET suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {<'--target='> (${ Id.VSub_Name CTARGET)} ) right: <Id.Right_DollarBrace '}'> ) } {<--mandir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/man'>} {<--infodir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/info'> } {<--datadir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share'>} {<--sysconfdir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/etc'>} {<--localstatedir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/var/lib'>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name conf_args> var_name: conf_args bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } {(DQ ($ Id.VSub_At '@'))} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name EXTRA_ECONF> var_name: EXTRA_ECONF bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ) (C {<__vecho>} {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} {(DQ ($ Id.VSub_At '@'))} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} {(DQ ($ Id.VSub_At '@'))} ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-s>} {<config.log>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>}) (C {<echo>} { (DQ < '!!! Please attach the following file when seeking support:' > ) } ) (C {<echo>} {(DQ <'!!! '> (${ Id.VSub_Name PWD) <'/config.log'>)}) ] spids: [5676 5687] ) ] else_action: [] redirects: [] ) (C {<__helpers_die>} {(DQ <'econf failed'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [5655 5672] ) ] else_action: [] redirects: [] ) ] spids: [4671 4687] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<die>} {(DQ <'configure is not executable'>)})] spids: [5729 5745] ) ] else_action: [(C {<die>} {(DQ <'no configure script found'>)})] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: einstall body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<___eapi_has_einstall>})] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ <'\''> (${ Id.VSub_Name FUNCNAME) <'\' has been banned for EAPI \''> ($ Id.VSub_DollarName EAPI) <'\''> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [5777 5784] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'LOCAL_EXTRA_EINSTALL='> (DQ (${ Id.VSub_Name EXTRA_EINSTALL))} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<___eapi_has_prefix_variables>})] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})] spids: [5823 5830] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIBDIR_VAR='> name:LIBDIR_VAR) op: assign_op.Equal rhs: {(DQ <LIBDIR_> (${ Id.VSub_Name ABI))} spids: [5844] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name ABI))} {<-a>} {<-n>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name LIBDIR_VAR> var_name: LIBDIR_VAR prefix_op: <Id.VSub_Bang '!'> right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CONF_LIBDIR='> name: CONF_LIBDIR ) op: assign_op.Equal rhs: { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name LIBDIR_VAR> var_name: LIBDIR_VAR prefix_op: <Id.VSub_Bang '!'> right: <Id.Right_DollarBrace '}'> ) ) } spids: [5882] ) ] redirects: [] ) ] spids: [5853 5879] ) ] else_action: [] redirects: [] ) (C {<unset>} {<LIBDIR_VAR>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name CONF_LIBDIR))} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CONF_PREFIX> var_name: CONF_PREFIX suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {<set>} ) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_Equals '='>} {<set>} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'EI_DESTLIBDIR='> name: EI_DESTLIBDIR ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name D) <'/'> (${ Id.VSub_Name CONF_PREFIX) <'/'> (${ Id.VSub_Name CONF_LIBDIR) ) } spids: [5935] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'EI_DESTLIBDIR='> name: EI_DESTLIBDIR ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<__strip_duplicate_slashes>} {(DQ (${ Id.VSub_Name EI_DESTLIBDIR))} ) right: <Id.Eof_RParen _> ) ) } spids: [5951] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'LOCAL_EXTRA_EINSTALL='> name: LOCAL_EXTRA_EINSTALL ) op: assign_op.Equal rhs: { (DQ <'libdir='> (${ Id.VSub_Name EI_DESTLIBDIR) <' '> (${ Id.VSub_Name LOCAL_EXTRA_EINSTALL) ) } spids: [5965] ) ] redirects: [] ) (C {<unset>} {<EI_DESTLIBDIR>}) ] spids: [5899 5932] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'./'> <Id.Lit_LBracket '['> <mM> <Id.Lit_RBracket ']'> <akefile>} {<-o>} {<-f>} {<'./GNUmakefile'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name PORTAGE_DEBUG))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <1>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MAKE> var_name: MAKE suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<make>} ) right: <Id.Right_DollarBrace '}'> ) } {<-n>} {<Id.Lit_VarLike 'prefix='> (DQ (${ Id.VSub_Name ED) <usr>)} {<Id.Lit_VarLike 'datadir='> (DQ (${ Id.VSub_Name ED) <'usr/share'>)} {<Id.Lit_VarLike 'infodir='> (DQ (${ Id.VSub_Name ED) <'usr/share/info'>)} {<Id.Lit_VarLike 'localstatedir='> (DQ (${ Id.VSub_Name ED) <'var/lib'>)} {<Id.Lit_VarLike 'mandir='> (DQ (${ Id.VSub_Name ED) <'usr/share/man'>)} {<Id.Lit_VarLike 'sysconfdir='> (DQ (${ Id.VSub_Name ED) <etc>)} {(${ Id.VSub_Name LOCAL_EXTRA_EINSTALL)} {(${ Id.VSub_Name MAKEOPTS)} {<-j1>} {(DQ ($ Id.VSub_At '@'))} {(${ Id.VSub_Name EXTRA_EMAKE)} {<install>} ) ] spids: [6012 6032] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MAKE> var_name: MAKE suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<make>} ) right: <Id.Right_DollarBrace '}'> ) } {<Id.Lit_VarLike 'prefix='> (DQ (${ Id.VSub_Name ED) <usr>)} {<Id.Lit_VarLike 'datadir='> (DQ (${ Id.VSub_Name ED) <'usr/share'>) } {<Id.Lit_VarLike 'infodir='> (DQ (${ Id.VSub_Name ED) <'usr/share/info'>)} {<Id.Lit_VarLike 'localstatedir='> (DQ (${ Id.VSub_Name ED) <'var/lib'>) } {<Id.Lit_VarLike 'mandir='> (DQ (${ Id.VSub_Name ED) <'usr/share/man'>)} {<Id.Lit_VarLike 'sysconfdir='> (DQ (${ Id.VSub_Name ED) <etc>)} {(${ Id.VSub_Name LOCAL_EXTRA_EINSTALL)} {(${ Id.VSub_Name MAKEOPTS)} {<-j1>} {(DQ ($ Id.VSub_At '@'))} {(${ Id.VSub_Name EXTRA_EMAKE)} {<install>} ) ] negated: T stderr_indices: [] ) ] ) action: [ (C {<__helpers_die>} {(DQ <'einstall failed'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [6131 6226] ) ] else_action: [] redirects: [] ) ] spids: [5987 6009] ) ] else_action: [(C {<die>} {(DQ <'no Makefile found'>)})] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: __eapi0_pkg_nofetch body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{(${ Id.VSub_Name A)}) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (C {<elog>} {(DQ <'The following files cannot be fetched for '> (${ Id.VSub_Name PN) <':'>)}) (C {<local>} {<x>}) (command.ForEach iter_names: [x] iterable: (for_iter.Words words:[{(${ Id.VSub_Name A)}]) body: (command.DoGroup children:[(C {<elog>} {(DQ <' '> (${ Id.VSub_Name x))})]) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: __eapi0_src_unpack body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name A)}) redirects: [] ) (C {<unpack>} {(${ Id.VSub_Name A)}) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: __eapi0_src_compile body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-x>} {<'./configure'>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<econf>})] spids: [6362 6374] ) ] else_action: [] redirects: [] ) (C {<__eapi2_src_compile>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: __eapi0_src_test body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'emake_cmd='> (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MAKE> var_name: MAKE suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<make>}) right: <Id.Right_DollarBrace '}'> ) <' '> (${ Id.VSub_Name MAKEOPTS) <' '> (${ Id.VSub_Name EXTRA_EMAKE) ) } ) (C {<local>} {<Id.Lit_VarLike 'internal_opts='>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_default_src_test_disables_parallel_jobs>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'internal_opts+='> name: internal_opts ) op: assign_op.PlusEqual rhs: {(DQ <' -j1'>)} spids: [6448] ) ] redirects: [] ) ] spids: [6440 6445] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [ {($ Id.VSub_DollarName emake_cmd)} {(${ Id.VSub_Name internal_opts)} {<check>} {<-n>} ] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<__vecho>} { (DQ (${ Id.VSub_Name emake_cmd) <' '> (${ Id.VSub_Name internal_opts) <' check'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {($ Id.VSub_DollarName emake_cmd)} {(${ Id.VSub_Name internal_opts)} {<check>} ) (C {<die>} {(DQ <'Make check failed. See above for details.'>)}) ] ) ] spids: [6457 6474] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [ {($ Id.VSub_DollarName emake_cmd)} {(${ Id.VSub_Name internal_opts)} {<test>} {<-n>} ] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<__vecho>} { (DQ (${ Id.VSub_Name emake_cmd) <' '> (${ Id.VSub_Name internal_opts) <' test'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {($ Id.VSub_DollarName emake_cmd)} {(${ Id.VSub_Name internal_opts)} {<test>}) (C {<die>} {(DQ <'Make test failed. See above for details.'>)}) ] ) ] spids: [6513 6530] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: __eapi1_src_compile body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [(C {<__eapi2_src_configure>}) (C {<__eapi2_src_compile>})] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: __eapi2_src_prepare body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [(C {<Id.Lit_Colon ':'>})] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: __eapi2_src_configure body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_x child: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ECONF_SOURCE> var_name: ECONF_SOURCE suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<.>} ) right: <Id.Right_DollarBrace '}'> ) <'/configure'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<econf>})] spids: [6608 6625] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: __eapi2_src_compile body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {<Makefile>} {<Id.Lit_RBracket ']'>}) (C {<Id.Lit_LBracket '['>} {<-f>} {<GNUmakefile>} {<Id.Lit_RBracket ']'>}) (C {<Id.Lit_LBracket '['>} {<-f>} {<makefile>} {<Id.Lit_RBracket ']'>}) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [(C {<emake>}) (C {<die>} {(DQ <'emake failed'>)})] ) ] spids: [6643 6674] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: __eapi4_src_install body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id:Id.BoolUnary_f child:{<Makefile>}) right: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_f child: {<GNUmakefile>} ) right: (bool_expr.Unary op_id:Id.BoolUnary_f child:{<makefile>}) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<emake>} {<Id.Lit_VarLike 'DESTDIR='> (DQ (${ Id.VSub_Name D))} {<install>}) ] spids: [6700 6724] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [{<declare>} {<-p>} {<DOCS>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<d>}) (command.ForEach iter_names: [d] iterable: (for_iter.Words words: [ {<README> <Id.Lit_Star '*'>} {<ChangeLog>} {<AUTHORS>} {<NEWS>} {<TODO>} {<CHANGES>} {<THANKS>} {<BUGS>} {<FAQ>} {<CREDITS>} {<CHANGELOG>} ] ) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_s child: {(DQ (${ Id.VSub_Name d))} ) redirects: [] ) (C {<dodoc>} {(DQ (${ Id.VSub_Name d))}) ] ) ] ) redirects: [] ) ] spids: [6743 6758] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<declare>} {<-p>} {<DOCS>}) right: <Id.Eof_RParen _> ) } right: {(DQ <'declare -a '>) <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<dodoc>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DOCS> var_name: DOCS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ) ] spids: [6828 6851] ) ] else_action: [(C {<dodoc>} {(${ Id.VSub_Name DOCS)})] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: __eapi6_src_prepare body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [{<declare>} {<-p>} {<PATCHES>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(DQ <'declare -a'>) <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PATCHES> var_name: PATCHES bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) redirects: [] ) (C {<eapply>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PATCHES> var_name: PATCHES bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ) ] ) ] spids: [6888 6913] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name PATCHES)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<eapply>} {(${ Id.VSub_Name PATCHES)})] spids: [6943 6956] ) ] else_action: [] redirects: [] ) (C {<eapply_user>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: __eapi6_src_install body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id:Id.BoolUnary_f child:{<Makefile>}) right: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_f child: {<GNUmakefile>} ) right: (bool_expr.Unary op_id:Id.BoolUnary_f child:{<makefile>}) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<emake>} {<Id.Lit_VarLike 'DESTDIR='> (DQ (${ Id.VSub_Name D))} {<install>}) ] spids: [6982 7006] ) ] else_action: [] redirects: [] ) (C {<einstalldocs>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: has_version body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<atom>} {<eroot>} {<Id.Lit_VarLike 'host_root='> <false>} {<Id.Lit_VarLike 'root='> (${ Id.VSub_Name ROOT)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Number 1)} right: {<--host-root>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host_root='> name:host_root) op: assign_op.Equal rhs: {<true>} spids: [7088] ) ] redirects: [] ) (C {<shift>}) ] spids: [7071 7085] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'atom='> name:atom) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [7098] ) ] redirects: [] ) (C {<shift>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>}) (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unused argument(s): '> ($ Id.VSub_Star '*') ) } ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {(${ Id.VSub_Name host_root)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C { < ___eapi_best_version_and_has_version_support_--host-root > } ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': option --host-root is not supported with EAPI '> (${ Id.VSub_Name EAPI) ) } ) ] spids: [7143 7150] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'root='> name:root) op: assign_op.Equal rhs: {<'/'>} spids: [7172] ) ] redirects: [] ) ] spids: [7132 7140] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_has_prefix_variables>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {(${ Id.VSub_Name host_root)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eroot='> name:eroot) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name root> var_name: root suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) (${ Id.VSub_Name PORTAGE_OVERRIDE_EPREFIX) <'/'> } spids: [7211] ) ] redirects: [] ) ] spids: [7200 7208] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eroot='> name:eroot) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name root> var_name: root suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) (${ Id.VSub_Name EPREFIX) <'/'> } spids: [7226] ) ] redirects: [] ) ] redirects: [] ) ] spids: [7180 7185] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eroot='> name:eroot) op: assign_op.Equal rhs: {(${ Id.VSub_Name root)} spids: [7244] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName PORTAGE_IPC_DAEMON)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {(DQ ($ Id.VSub_DollarName PORTAGE_BIN_PATH)) <'/ebuild-ipc'>} {<has_version>} {(DQ (${ Id.VSub_Name eroot))} {(DQ (${ Id.VSub_Name atom))} ) ] spids: [7253 7265] ) ] else_action: [ (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-helpers/portageq'>)} {<has_version>} {(DQ (${ Id.VSub_Name eroot))} {(DQ (${ Id.VSub_Name atom))} ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'retval='> ($ Id.VSub_QMark '?')}) (command.Case to_match: {(DQ (${ Id.VSub_Name retval))} arms: [ (case_arm pat_list: [{<0>} {<1>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(${ Id.VSub_Name retval)} ) ] spids: [7333 7336 7346 -1] ) (case_arm pat_list: [{<2>}] action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': invalid atom: '> (${ Id.VSub_Name atom) ) } ) ] spids: [7349 7350 7369 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval) ) } ) ] spids: [7376 7389] ) ] else_action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval) ) } ) ] redirects: [] ) ] spids: [7372 7373 7430 -1] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: best_version body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<atom>} {<eroot>} {<Id.Lit_VarLike 'host_root='> <false>} {<Id.Lit_VarLike 'root='> (${ Id.VSub_Name ROOT)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Number 1)} right: {<--host-root>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host_root='> name:host_root) op: assign_op.Equal rhs: {<true>} spids: [7496] ) ] redirects: [] ) (C {<shift>}) ] spids: [7479 7493] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'atom='> name:atom) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [7506] ) ] redirects: [] ) (C {<shift>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>}) (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unused argument(s): '> ($ Id.VSub_Star '*') ) } ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {(${ Id.VSub_Name host_root)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C { < ___eapi_best_version_and_has_version_support_--host-root > } ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': option --host-root is not supported with EAPI '> (${ Id.VSub_Name EAPI) ) } ) ] spids: [7551 7558] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'root='> name:root) op: assign_op.Equal rhs: {<'/'>} spids: [7580] ) ] redirects: [] ) ] spids: [7540 7548] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_has_prefix_variables>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {(${ Id.VSub_Name host_root)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eroot='> name:eroot) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name root> var_name: root suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) (${ Id.VSub_Name PORTAGE_OVERRIDE_EPREFIX) <'/'> } spids: [7619] ) ] redirects: [] ) ] spids: [7608 7616] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eroot='> name:eroot) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name root> var_name: root suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) (${ Id.VSub_Name EPREFIX) <'/'> } spids: [7634] ) ] redirects: [] ) ] redirects: [] ) ] spids: [7588 7593] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eroot='> name:eroot) op: assign_op.Equal rhs: {(${ Id.VSub_Name root)} spids: [7652] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName PORTAGE_IPC_DAEMON)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {(DQ ($ Id.VSub_DollarName PORTAGE_BIN_PATH)) <'/ebuild-ipc'>} {<best_version>} {(DQ (${ Id.VSub_Name eroot))} {(DQ (${ Id.VSub_Name atom))} ) ] spids: [7661 7673] ) ] else_action: [ (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-helpers/portageq'>)} {<best_version>} {(DQ (${ Id.VSub_Name eroot))} {(DQ (${ Id.VSub_Name atom))} ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'retval='> ($ Id.VSub_QMark '?')}) (command.Case to_match: {(DQ (${ Id.VSub_Name retval))} arms: [ (case_arm pat_list: [{<0>} {<1>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(${ Id.VSub_Name retval)} ) ] spids: [7741 7744 7754 -1] ) (case_arm pat_list: [{<2>}] action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': invalid atom: '> (${ Id.VSub_Name atom) ) } ) ] spids: [7757 7758 7777 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval) ) } ) ] spids: [7784 7797] ) ] else_action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval) ) } ) ] redirects: [] ) ] spids: [7780 7781 7838 -1] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_has_get_libdir>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: get_libdir body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'libdir_var='> (DQ <LIBDIR_> (${ Id.VSub_Name ABI))}) (C {<local>} {<Id.Lit_VarLike 'libdir='> (DQ <lib>)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name ABI)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name libdir_var> var_name: libdir_var prefix_op: <Id.VSub_Bang '!'> right: <Id.Right_DollarBrace '}'> ) } ) ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libdir='> name:libdir) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name libdir_var> var_name: libdir_var prefix_op: <Id.VSub_Bang '!'> right: <Id.Right_DollarBrace '}'> ) } spids: [7902] ) ] redirects: [] ) ] ) (C {<echo>} {(DQ (${ Id.VSub_Name libdir))}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [7846 7851] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_has_einstalldocs>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: einstalldocs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Subshell child: (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [{<declare>} {<-p>} {<DOCS>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) ] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<d>}) (command.ForEach iter_names: [d] iterable: (for_iter.Words words: [ {<README> <Id.Lit_Star '*'>} {<ChangeLog>} {<AUTHORS>} {<NEWS>} {<TODO>} {<CHANGES>} {<THANKS>} {<BUGS>} {<FAQ>} {<CREDITS>} {<CHANGELOG>} ] ) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_f child: {(${ Id.VSub_Name d)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_s child: {(${ Id.VSub_Name d)} ) ) redirects: [] ) (C {<docinto>} {<'/'>}) (C {<dodoc>} {(DQ (${ Id.VSub_Name d))}) ] ) ] ) redirects: [] ) ] spids: [7942 7957] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<declare>} {<-p>} {<DOCS>}) right: <Id.Eof_RParen _> ) } right: {(DQ <'declare -a'>) <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.WordTest w: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DOCS> var_name: DOCS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) redirects: [] ) (C {<docinto>} {<'/'>}) (C {<dodoc>} {<-r>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DOCS> var_name: DOCS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ) ] ) ] spids: [8039 8062] ) ] else_action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.WordTest w:{(${ Id.VSub_Name DOCS)}) redirects: [] ) (C {<docinto>} {<'/'>}) (C {<dodoc>} {<-r>} {(${ Id.VSub_Name DOCS)}) ] ) ] redirects: [] ) redirects: [] ) (command.Subshell child: (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [{<declare>} {<-p>} {<HTML_DOCS>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(DQ <'declare -a'>) <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.WordTest w: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name HTML_DOCS> var_name: HTML_DOCS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) redirects: [] ) (C {<docinto>} {<html>}) (C {<dodoc>} {<-r>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name HTML_DOCS> var_name: HTML_DOCS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ) ] ) ] spids: [8136 8162] ) ] else_action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.WordTest w:{(${ Id.VSub_Name HTML_DOCS)}) redirects: [] ) (C {<docinto>} {<html>}) (C {<dodoc>} {<-r>} {(${ Id.VSub_Name HTML_DOCS)}) ] ) ] redirects: [] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [7924 7929] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [(command.Sentence child:(C {<___eapi_has_eapply>}) terminator:<Id.Op_Semi _>)] ) action: [ (command.ShFunction name: eapply body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<failed>} {<Id.Lit_VarLike 'patch_cmd='> <patch>}) (C {<local>} {<-x>} {<Id.Lit_VarLike 'LC_COLLATE='> <POSIX>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<type>} {<-P>} {<gpatch>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'patch_cmd='> name: patch_cmd ) op: assign_op.Equal rhs: {<gpatch>} spids: [8289] ) ] redirects: [] ) ] ) (command.ShFunction name: _eapply_patch body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'f='> (${ Id.VSub_Number 1)}) (C {<local>} {<Id.Lit_VarLike 'prefix='> (${ Id.VSub_Number 2)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'started_applying='> name: started_applying ) op: assign_op.Equal rhs: {<1>} spids: [8318] ) ] redirects: [] ) (C {<ebegin>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name prefix> var_name: prefix suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<'Applying '>} ) right: <Id.Right_DollarBrace '}'> ) (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name f> var_name: f suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) (command.Simple words: [ {(${ Id.VSub_Name patch_cmd)} {<-p1>} {<-f>} {<-s>} {<-g0>} {<--no-backup-if-mismatch>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name patch_options> var_name: patch_options bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ (${ Id.VSub_Name f))} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'failed='> name:failed) op: assign_op.Equal rhs: {(${ Id.VSub_QMark '?')} spids: [8393] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<eend>} {(DQ (${ Id.VSub_Name failed))})] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} { (DQ <'patch -p1 '> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name patch_options> var_name: patch_options bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) <' failed with '> (${ Id.VSub_Name f) ) } ) ] spids: [8399 8412] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (C {<local>} {<Id.Lit_VarLike 'patch_options='> (sh_array_literal left:<Id.Op_LParen _> words:[]) } {<Id.Lit_VarLike 'files='> (sh_array_literal left:<Id.Op_LParen _> words:[])} ) (C {<local>} {<i>} {<found_doublehyphen>}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 1>} ) cond: (arith_expr.Binary op_id: Id.Arith_LessEqual left: ($ Id.Lit_ArithVarLike i) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_At '@'> var_name: '@' prefix_op: <Id.VSub_Pound '#'> right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id: Id.Arith_DPlus child: ($ Id.Lit_ArithVarLike i) ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_At '@'> var_name: '@' suffix_op: (suffix_op.Slice begin: ($ Id.Lit_ArithVarLike i) length: {<Id.Lit_Digits 1>} ) right: <Id.Arith_RBrace _> ) } right: {<-->} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'patch_options='> name: patch_options ) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_At '@'> var_name: '@' suffix_op: (suffix_op.Slice begin: {<Id.Lit_Digits 1>} length: (arith_expr.Binary op_id: Id.Arith_Minus left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 1>} ) ) right: <Id.Arith_RBrace _> ) ) } ] ) } spids: [8514] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'files='> name: files ) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_At '@'> var_name: '@' suffix_op: (suffix_op.Slice begin: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 1>} ) ) right: <Id.Arith_RBrace _> ) ) } ] ) } spids: [8532] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'found_doublehyphen='> name: found_doublehyphen ) op: assign_op.Equal rhs: {<1>} spids: [8548] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [8492 8511] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(${ Id.VSub_Name found_doublehyphen)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 1>} ) cond: (arith_expr.Binary op_id: Id.Arith_LessEqual left: ($ Id.Lit_ArithVarLike i) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_At '@'> var_name: '@' prefix_op: <Id.VSub_Pound '#'> right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id: Id.Arith_DPlus child: ($ Id.Lit_ArithVarLike i) ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_At '@'> var_name: '@' suffix_op: (suffix_op.Slice begin: ($ Id.Lit_ArithVarLike i) length: {<Id.Lit_Digits 1>} ) right: <Id.Arith_RBrace _> ) } right: {<-> <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'patch_options='> name: patch_options ) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_At '@'> var_name: '@' suffix_op: (suffix_op.Slice begin: {<Id.Lit_Digits 1>} length: (arith_expr.Binary op_id: Id.Arith_Minus left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 1>} ) ) right: <Id.Arith_RBrace _> ) ) } ] ) } spids: [8636] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'files='> name: files ) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_At '@'> var_name: '@' suffix_op: (suffix_op.Slice begin: ($ Id.Lit_ArithVarLike i) ) right: <Id.Arith_RBrace _> ) ) } ] ) } spids: [8654] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [8613 8633] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.ForEach iter_names: [i] iterable: (for_iter.Words words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name files> var_name: files bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name i)} right: {<-> <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ < 'eapply: all options must be passed before non-options' > ) } ) ] spids: [8701 8717] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] spids: [8566 8579] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name files> var_name: files bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<die>} {(DQ <'eapply: no files specified'>)})] spids: [8737 8753] ) ] else_action: [] redirects: [] ) (C {<local>} {<f>}) (command.ForEach iter_names: [f] iterable: (for_iter.Words words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name files> var_name: files bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_d child: {(${ Id.VSub_Name f)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: _eapply_get_files body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'LC_ALL='> <POSIX>}) (C {<local>} {<Id.Lit_VarLike 'prev_shopt='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<shopt>} {<-p>} {<nullglob>}) right: <Id.Eof_RParen _> ) } ) (C {<shopt>} {<-s>} {<nullglob>}) (C {<local>} {<f>}) (command.ForEach iter_names: [f] iterable: (for_iter.Words words: [ {(DQ (${ Id.VSub_Number 1)) <'/'> <Id.Lit_Star '*'> } ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name f)} right: {<Id.Lit_Other '*'> <.diff> } ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name f)} right: {<Id.Lit_Other '*'> <.patch> } ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'files+='> name: files ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ (${ Id.VSub_Name f))} ] ) } spids: [8892] ) ] redirects: [] ) ] spids: [8862 8889] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (C {(${ Id.VSub_Name prev_shopt)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (C {<local>} {<Id.Lit_VarLike 'files='> (sh_array_literal left: <Id.Op_LParen _> words: [] ) } ) (C {<_eapply_get_files>} {(DQ (${ Id.VSub_Name f))}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name files> var_name: files bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) } ) redirects: [] ) (C {<die>} { (DQ <'No *.{patch,diff} files in directory '> (${ Id.VSub_Name f) ) } ) ] ) (C {<einfo>} {(DQ <'Applying patches from '> (${ Id.VSub_Name f) <' ...'>)} ) (C {<local>} {<f2>}) (command.ForEach iter_names: [f2] iterable: (for_iter.Words words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name files> var_name: files bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] ) body: (command.DoGroup children: [ (C {<_eapply_patch>} {(DQ (${ Id.VSub_Name f2))} {(SQ <' '>)} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {(${ Id.VSub_Name failed)} right: {<0>} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(DQ (${ Id.VSub_Name failed))} ) ] ) ] ) redirects: [] ) ] spids: [8791 8804] ) ] else_action: [ (C {<_eapply_patch>} {(DQ (${ Id.VSub_Name f))}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {(${ Id.VSub_Name failed)} right: {<0>} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(DQ (${ Id.VSub_Name failed))} ) ] ) ] redirects: [] ) ] ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [8241 8246] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_has_eapply_user>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: eapply_user body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name EBUILD_PHASE)} right: {<prepare>} ) redirects: [] ) (C {<die>} { (DQ <'eapply_user() called during invalid phase: '> (${ Id.VSub_Name EBUILD_PHASE) ) } ) ] ) (C {<local>} {<Id.Lit_VarLike 'tagfile='> (${ Id.VSub_Name T) <'/.portage_user_patches_applied'> } ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {(${ Id.VSub_Name tagfile)} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] ) (command.Simple words: [] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name tagfile))} ) ] more_env: [] do_fork: F ) (C {<local>} {<Id.Lit_VarLike 'basedir='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PORTAGE_CONFIGROOT> var_name: PORTAGE_CONFIGROOT suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) <'/etc/portage/patches'> } ) (C {<local>} {<applied>} {<d>} {<f>}) (C {<local>} {<-A>} {<_eapply_user_patches>}) (C {<local>} {<Id.Lit_VarLike 'prev_shopt='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<shopt>} {<-p>} {<nullglob>}) right: <Id.Eof_RParen _> ) } ) (C {<shopt>} {<-s>} {<nullglob>}) (command.ForEach iter_names: [d] iterable: (for_iter.Words words: [ (word.BracedTree parts: [ (DQ (${ Id.VSub_Name basedir)) <'/'> (${ Id.VSub_Name CATEGORY) <'/'> (word_part.BracedTuple words: [ {(${ Id.VSub_Name P) <-> (${ Id.VSub_Name PR)} {(${ Id.VSub_Name P)} {(${ Id.VSub_Name PN)} ] ) (word_part.BracedTuple words: [ {<Id.Lit_Colon ':'> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name SLOT> var_name: SLOT suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } {} ] ) ] ) ] ) body: (command.DoGroup children: [ (command.ForEach iter_names: [f] iterable: (for_iter.Words words: [{(DQ (${ Id.VSub_Name d)) <'/'> <Id.Lit_Star '*'>}] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name f)} right: {<Id.Lit_Other '*'> <.diff>} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name f)} right: {<Id.Lit_Other '*'> <.patch>} ) ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _eapply_user_patches > var_name: _eapply_user_patches bracket_op: (bracket_op.ArrayIndex expr: { (braced_var_sub left: < Id.Left_DollarBrace '${' > token: <Id.VSub_Name f> var_name: f suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##' > arg_word: { <Id.Lit_Other '*' > <Id.Lit_Slash '/'> } ) right: < Id.Right_DollarBrace '}' > ) } ) right: <Id.Right_DollarBrace '}'> ) } ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen '_eapply_user_patches['> name: _eapply_user_patches index: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name f> var_name: f suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'> } ) right: <Id.Right_DollarBrace '}'> ) } ) op: assign_op.Equal rhs: {(${ Id.VSub_Name f)} spids: [9393] ) ] redirects: [] ) ] spids: [9342 9390] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _eapply_user_patches> var_name: _eapply_user_patches prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<read>} {<-r>} {<-d>} {(SQ )} {<f>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _eapply_user_patches> var_name: _eapply_user_patches bracket_op: (bracket_op.ArrayIndex expr: {(${ Id.VSub_Name f)} ) right: <Id.Right_DollarBrace '}'> ) } spids: [9462] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_s child: {(${ Id.VSub_Name f)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eapply>} {(DQ (${ Id.VSub_Name f))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'applied='> name: applied ) op: assign_op.Equal rhs: {<1>} spids: [9498] ) ] redirects: [] ) ] spids: [9473 9486] ) ] else_action: [] redirects: [] ) ] ) redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: { (command_sub left_token: <Id.Left_ProcSubIn '<('> child: (command.Pipeline children: [ (C {<printf>} {<-->} {(SQ <'%s\\0'>)} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _eapply_user_patches> var_name: _eapply_user_patches prefix_op: <Id.VSub_Bang '!'> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) ) } ) (command.Simple words: [{<sort>} {<-z>}] redirects: [] more_env: [ (env_pair name: LC_ALL val: {<C>} spids: [9531] ) ] do_fork: T ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) ] ) ] spids: [9423 9442] ) ] else_action: [] redirects: [] ) (C {(${ Id.VSub_Name prev_shopt)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name applied)} ) redirects: [] ) (C {<ewarn>} {(DQ <'User patches applied.'>)}) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [9097 9102] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_has_in_iuse>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: in_iuse body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'use='> (${ Id.VSub_Number 1)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ (${ Id.VSub_Name use))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'!!! in_iuse() called without a parameter.'>)}] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <'!!! in_iuse <USEFLAG>'>)}] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<die>} {(DQ <'in_iuse() called without a parameter'>)}) ] spids: [9598 9613] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'liuse='> (sh_array_literal left: <Id.Op_LParen _> words: [{(${ Id.VSub_Name IUSE_EFFECTIVE)}] ) } ) (C {<has>} {(DQ (${ Id.VSub_Name use))} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name liuse> var_name: liuse bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<'['> <Id.Lit_Other '+'> <'-]'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [9574 9579] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_has_master_repositories>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: master_repositories body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<output>} {<Id.Lit_VarLike 'repository='> ($ Id.VSub_Number 1)} {<retval>} ) (C {<shift>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: {($ Id.VSub_Pound '#')} right: {<0>} ) redirects: [] ) (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unused argument(s): '> ($ Id.VSub_Star '*') ) } ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} {<master_repositories>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} ) ] spids: [9742 9755] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C { (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-helpers/portageq'> ) } {<master_repositories>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} ) right: <Id.Eof_RParen _> ) } spids: [9783] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'retval='> name:retval) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [9811] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)}) redirects: [] ) (C {<echo>} {(DQ (${ Id.VSub_Name output))}) ] ) (command.Case to_match: {(DQ (${ Id.VSub_Name retval))} arms: [ (case_arm pat_list: [{<0>} {<1>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(${ Id.VSub_Name retval)} ) ] spids: [9847 9850 9860 -1] ) (case_arm pat_list: [{<2>}] action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': invalid repository: '> (${ Id.VSub_Name repository) ) } ) ] spids: [9863 9864 9883 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) right: <Id.Right_DollarBrace '}'> ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval) ) } ) ] spids: [9890 9903] ) ] else_action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval) ) } ) ] redirects: [] ) ] spids: [9886 9887 9944 -1] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [9687 9692] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_has_repository_path>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: repository_path body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<output>} {<Id.Lit_VarLike 'repository='> ($ Id.VSub_Number 1)} {<retval>} ) (C {<shift>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: {($ Id.VSub_Pound '#')} right: {<0>} ) redirects: [] ) (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unused argument(s): '> ($ Id.VSub_Star '*') ) } ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} {<repository_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} ) ] spids: [10010 10023] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C { (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-helpers/portageq'> ) } {<get_repo_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} ) right: <Id.Eof_RParen _> ) } spids: [10051] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'retval='> name:retval) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [10079] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)}) redirects: [] ) (C {<echo>} {(DQ (${ Id.VSub_Name output))}) ] ) (command.Case to_match: {(DQ (${ Id.VSub_Name retval))} arms: [ (case_arm pat_list: [{<0>} {<1>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(${ Id.VSub_Name retval)} ) ] spids: [10115 10118 10128 -1] ) (case_arm pat_list: [{<2>}] action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': invalid repository: '> (${ Id.VSub_Name repository) ) } ) ] spids: [10131 10132 10151 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) right: <Id.Right_DollarBrace '}'> ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval) ) } ) ] spids: [10158 10171] ) ] else_action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval) ) } ) ] redirects: [] ) ] spids: [10154 10155 10212 -1] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [9955 9960] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_has_available_eclasses>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: available_eclasses body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<output>} {<Id.Lit_VarLike 'repository='> (${ Id.VSub_Name PORTAGE_REPO_NAME)} {<retval>} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: {($ Id.VSub_Pound '#')} right: {<0>} ) redirects: [] ) (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unused argument(s): '> ($ Id.VSub_Star '*') ) } ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} {<available_eclasses>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} ) ] spids: [10277 10290] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C { (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-helpers/portageq'> ) } {<available_eclasses>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} ) right: <Id.Eof_RParen _> ) } spids: [10318] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'retval='> name:retval) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [10346] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)}) redirects: [] ) (C {<echo>} {(DQ (${ Id.VSub_Name output))}) ] ) (command.Case to_match: {(DQ (${ Id.VSub_Name retval))} arms: [ (case_arm pat_list: [{<0>} {<1>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(${ Id.VSub_Name retval)} ) ] spids: [10382 10385 10395 -1] ) (case_arm pat_list: [{<2>}] action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': invalid repository: '> (${ Id.VSub_Name repository) ) } ) ] spids: [10398 10399 10418 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) right: <Id.Right_DollarBrace '}'> ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval) ) } ) ] spids: [10425 10438] ) ] else_action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval) ) } ) ] redirects: [] ) ] spids: [10421 10422 10479 -1] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [10223 10228] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_has_eclass_path>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: eclass_path body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'eclass='> ($ Id.VSub_Number 1)} {<output>} {<Id.Lit_VarLike 'repository='> (${ Id.VSub_Name PORTAGE_REPO_NAME)} {<retval>} ) (C {<shift>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: {($ Id.VSub_Pound '#')} right: {<0>} ) redirects: [] ) (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unused argument(s): '> ($ Id.VSub_Star '*') ) } ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} {<eclass_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} {(DQ (${ Id.VSub_Name eclass))} ) ] spids: [10550 10563] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C { (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-helpers/portageq'> ) } {<eclass_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} {(DQ (${ Id.VSub_Name eclass))} ) right: <Id.Eof_RParen _> ) } spids: [10597] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'retval='> name:retval) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [10631] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)}) redirects: [] ) (C {<echo>} {(DQ (${ Id.VSub_Name output))}) ] ) (command.Case to_match: {(DQ (${ Id.VSub_Name retval))} arms: [ (case_arm pat_list: [{<0>} {<1>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(${ Id.VSub_Name retval)} ) ] spids: [10667 10670 10680 -1] ) (case_arm pat_list: [{<2>}] action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': invalid repository: '> (${ Id.VSub_Name repository) ) } ) ] spids: [10683 10684 10703 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) right: <Id.Right_DollarBrace '}'> ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval) ) } ) ] spids: [10710 10723] ) ] else_action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval) ) } ) ] redirects: [] ) ] spids: [10706 10707 10764 -1] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [10490 10495] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_has_license_path>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: license_path body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'license='> ($ Id.VSub_Number 1)} {<output>} {<Id.Lit_VarLike 'repository='> (${ Id.VSub_Name PORTAGE_REPO_NAME)} {<retval>} ) (C {<shift>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: {($ Id.VSub_Pound '#')} right: {<0>} ) redirects: [] ) (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unused argument(s): '> ($ Id.VSub_Star '*') ) } ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} {<license_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} {(DQ (${ Id.VSub_Name license))} ) ] spids: [10835 10848] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C { (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-helpers/portageq'> ) } {<license_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} {(DQ (${ Id.VSub_Name license))} ) right: <Id.Eof_RParen _> ) } spids: [10882] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'retval='> name:retval) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [10916] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)}) redirects: [] ) (C {<echo>} {(DQ (${ Id.VSub_Name output))}) ] ) (command.Case to_match: {(DQ (${ Id.VSub_Name retval))} arms: [ (case_arm pat_list: [{<0>} {<1>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(${ Id.VSub_Name retval)} ) ] spids: [10952 10955 10965 -1] ) (case_arm pat_list: [{<2>}] action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': invalid repository: '> (${ Id.VSub_Name repository) ) } ) ] spids: [10968 10969 10988 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) right: <Id.Right_DollarBrace '}'> ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval) ) } ) ] spids: [10995 11008] ) ] else_action: [ (C {<die>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval) ) } ) ] redirects: [] ) ] spids: [10991 10992 11049 -1] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [10775 10780] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_has_package_manager_build_user>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: package_manager_build_user body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [(C {<echo>} {(DQ (${ Id.VSub_Name PORTAGE_BUILD_USER))})] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [11060 11065] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<___eapi_has_package_manager_build_group>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: package_manager_build_group body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [(C {<echo>} {(DQ (${ Id.VSub_Name PORTAGE_BUILD_GROUP))})] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [11089 11094] ) ] else_action: [] redirects: [] ) ] )