(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 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 ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})] spids: [156 163] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <' failed'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$ret')} ) ] spids: [220 234] ) ] ) ] spids: [177 197] ) ] ) ] ) ] ) ) (command.ShFunction name: insinto body: (BraceGroup 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 ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})] spids: [310 317] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <' failed'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$ret')} ) ] spids: [374 388] ) ] ) ] spids: [331 351] ) ] ) ] ) ] ) ) (command.ShFunction name: exeinto body: (BraceGroup 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 ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})] spids: [466 473] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <' failed'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$ret')} ) ] spids: [530 544] ) ] ) ] spids: [487 507] ) ] ) ] ) ] ) ) (command.ShFunction name: docinto body: (BraceGroup 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 ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})] spids: [622 629] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <' failed'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$ret')} ) ] spids: [696 710] ) ] ) ] spids: [643 668] ) ] ) ] ) ] ) ) (command.ShFunction name: insopts body: (BraceGroup 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'>)}) ] ) ] ) ) (command.ShFunction name: diropts body: (BraceGroup children: [(C {<export>} {<Id.Lit_VarLike 'DIROPTIONS='> (DQ ($ Id.VSub_At '$@'))})] ) ) (command.ShFunction name: exeopts body: (BraceGroup 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'>)}) ] ) ] ) ) (command.ShFunction name: libopts body: (BraceGroup 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'>)}) ] ) ] ) ) (command.ShFunction name: docompress body: (BraceGroup 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>)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<shift>}) (command.ForEach iter_name: f do_arg_iter: T body: (command.DoGroup children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:f) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<__strip_duplicate_slashes>} {(DQ (${ Id.VSub_Name f))} ) ) } spids: [931] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:f) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name f> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<Id.Lit_Slash '/'>} ) ) } spids: [943] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: { (braced_var_sub token: <Id.VSub_Name f> suffix_op: (suffix_op.Slice begin: {<Id.Lit_Digits 0>} length: {<Id.Lit_Digits 1>} ) ) } right: {<'/'>} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:f) op: assign_op.Equal rhs: {(DQ <'/'> (${ Id.VSub_Name f))} spids: [969] ) ] ) ] ) (command.ForEach iter_name: g iter_words: [ { (DQ (braced_var_sub token: <Id.VSub_Name PORTAGE_DOCOMPRESS_SKIP> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F 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))} ) ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> arg_word: {<2>} ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: PORTAGE_DOCOMPRESS_SKIP index: { (braced_var_sub token: <Id.VSub_Name PORTAGE_DOCOMPRESS_SKIP> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) op: assign_op.Equal rhs: {(${ Id.VSub_Name f)} spids: [1023] ) ] ) ] ) ) ] spids: [902 917] ) ] else_action: [ (command.ForEach iter_name: f do_arg_iter: T body: (command.DoGroup children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:f) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<__strip_duplicate_slashes>} {(DQ (${ Id.VSub_Name f))}) ) } spids: [1059] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:f) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name f> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<Id.Lit_Slash '/'>} ) ) } spids: [1071] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: { (braced_var_sub token: <Id.VSub_Name f> suffix_op: (suffix_op.Slice begin: {<Id.Lit_Digits 0>} length: {<Id.Lit_Digits 1>} ) ) } right: {<'/'>} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:f) op: assign_op.Equal rhs: {(DQ <'/'> (${ Id.VSub_Name f))} spids: [1097] ) ] ) ] ) (command.ForEach iter_name: g iter_words: [ { (DQ (braced_var_sub token: <Id.VSub_Name PORTAGE_DOCOMPRESS> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F 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))} ) ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> arg_word: {<2>} ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: PORTAGE_DOCOMPRESS index: { (braced_var_sub token: <Id.VSub_Name PORTAGE_DOCOMPRESS> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) op: assign_op.Equal rhs: {(${ Id.VSub_Name f)} spids: [1151] ) ] ) ] ) ) ] ) ] ) ) (command.ShFunction name: useq body: (BraceGroup 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)}) ] ) ) (command.ShFunction name: usev body: (BraceGroup 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 token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{<'!'>}) ) ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1223 1232] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>}) ] ) ) (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 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 token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<yes>}) ) ($ Id.VSub_Number '$4') ) } ) ] spids: [1276 1285] ) ] else_action: [ (C {<echo>} { (DQ (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<no>}) ) ($ Id.VSub_Number '$5') ) } ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) ) ] spids: [1261 1266] ) ] ) (command.ShFunction name: use body: (BraceGroup 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 token: <Id.VSub_Name u> suffix_op: (suffix_op.Slice begin: {<Id.Lit_Digits 0>} length: {<Id.Lit_Digits 1>} ) ) } right: {(DQ <'!'>)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:u) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name u> suffix_op: (suffix_op.Slice begin:{<Id.Lit_Digits 1>}) ) } spids: [1377] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:found) op: assign_op.Equal rhs: {<1>} spids: [1385] ) ] ) ] spids: [1352 1374] ) ] ) (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>} ) ) 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')} ) ) ) ) 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')} ) ) ) 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 '$'> } ) ) ) 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] ) ] ) (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] ) ] ) ] spids: [1454 1479] ) ] ) (C {<local>} {<Id.Lit_VarLike 'IFS='> (single_quoted left: <Id.Left_CSingleQuote '$\''> tokens: [<Id.Char_Literals ' '> <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\n'>] multiline: F ) } {<Id.Lit_VarLike 'prev_shopts='> ($ Id.VSub_Hyphen '$-')} {<ret>} ) (C {<Id.KW_Set 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 name:ret) op: assign_op.Equal rhs: {(${ Id.VSub_Name found)} spids: [1635] ) ] ) ] spids: [1618 1632] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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] ) ] ) ] ) (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 '*'>} ) ) (C {<Id.KW_Set set>} {<Id.Lit_Other '+'> <f>}) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(${ Id.VSub_Name ret)} ) ] ) ) (command.ShFunction name: use_with body: (BraceGroup 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>})] 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>})] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [1693 1706] ) ] ) (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 token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id: Id.VTest_Plus arg_word: {<'='> ($ Id.VSub_Number '$3')} ) ) } ) ] spids: [1738 1743] ) ] else_action: [ (C {<local>} {<Id.Lit_VarLike 'UW_SUFFIX='> (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {<'='> ($ Id.VSub_Number '$3')} ) ) } ) ] ) (C {<local>} {<Id.Lit_VarLike 'UWORD='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_Number '$1')} ) ) } ) (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))})] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: use_enable body: (BraceGroup 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>})] 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>})] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [1838 1851] ) ] ) (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 token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id: Id.VTest_Plus arg_word: {<'='> ($ Id.VSub_Number '$3')} ) ) } ) ] spids: [1883 1888] ) ] else_action: [ (C {<local>} {<Id.Lit_VarLike 'UE_SUFFIX='> (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {<'='> ($ Id.VSub_Number '$3')} ) ) } ) ] ) (C {<local>} {<Id.Lit_VarLike 'UWORD='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_Number '$1')} ) ) } ) (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))})] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: unpack body: (BraceGroup 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 token: <Id.VSub_Name EAPI> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{<0>}) ) } ) (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_name: x iter_words: [{(DQ ($ Id.VSub_At '$@'))}] do_arg_iter: F 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 name:suffix) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name x> suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{<'*.'>}) ) } spids: [2070] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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:[2080])] do_fork: T ) ) } spids: [2078] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:y) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name x> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{<'.*'>}) ) } spids: [2103] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:y) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name y> suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{<'*.'>}) ) } spids: [2111] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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:[2121])] do_fork: T ) ) } spids: [2119] ) ] ) (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 '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:srcdir) op: assign_op.Equal rhs: {(${ Id.VSub_Name DISTDIR) <'/'>} spids: [2173] ) ] ) ] spids: [2149 2166] ) (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 '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:srcdir) op: assign_op.Equal rhs: (word.Empty) spids: [2203] ) ] ) ] spids: [2180 2196] ) ] 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 name:srcdir) op: assign_op.Equal rhs: (word.Empty) spids: [2225] ) ] ) (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 token: <Id.VSub_Name DISTDIR> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<Id.Lit_Slash '/'>} ) ) <'/'> <Id.Lit_Other '*'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eqawarn>} { (DQ <'QA Notice: unpack called with redundant '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'{DISTDIR} in path'> ) } ) ] spids: [2229 2250] ) ] ) ] spids: [2213 2218] ) (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 token: <Id.VSub_Name DISTDIR> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<Id.Lit_Slash '/'>} ) ) <'/'> <Id.Lit_Other '*'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ <'Arguments to unpack() cannot begin with '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'{DISTDIR} in EAPI '> (${ Id.VSub_Name EAPI) ) } ) ] spids: [2265 2286] ) (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 '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ <'Arguments to unpack() cannot be absolute in EAPI '> (${ Id.VSub_Name EAPI) ) } ) ] spids: [2301 2318] ) ] else_action: [ (C {<die>} { (DQ < 'Relative paths to unpack() must be prefixed with \'./\' in EAPI ' > (${ Id.VSub_Name EAPI) ) } ) ] ) ] ) (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)} ) ) ) 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: [2350 2368] ) ] ) (command.ShFunction name: __unpack_tar body: (BraceGroup 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>} ) ) 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)} ) ) ] ) 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: [2417 2439] ) ] ) (command.Pipeline children: [ (C {($ Id.VSub_Number '$1')} {<-c>} {<-->} { (DQ ($ Id.VSub_DollarName '$srcdir') ($ Id.VSub_DollarName '$x') ) } ) (C {<tar>} {<xof>} {<->}) ] negated: F ) (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: [2398 2414] ) ] else_action: [ (C {<local>} {<Id.Lit_VarLike 'cwd_dest='> (braced_var_sub token: <Id.VSub_Name x> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {<'*'> <Id.Lit_Slash '/'>} ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cwd_dest) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name cwd_dest> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<'.*'>} ) ) } spids: [2519] ) ] ) (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))} ) ] do_fork: T ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [2527 2555] ) ] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:myfail) op: assign_op.Equal rhs: {(DQ <'unpack: failure unpacking '> (${ Id.VSub_Name x))} spids: [2580] ) ] ) (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)} ) ) ] ) 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: [2604 2626] ) ] ) (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 ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [2659 2673] ) ] ) ] spids: [2600 2601 2691 -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)} ) ) ] ) 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: [2698 2720] ) ] ) (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 ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [2753 2767] ) ] ) ] spids: [2694 2695 2785 -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 '*'> } ) ) ] ) 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: [2794 2824] ) ] ) (command.Pipeline children: [ (C { (braced_var_sub token: <Id.VSub_Name PORTAGE_BUNZIP2_COMMAND> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(${ Id.VSub_Name PORTAGE_BZIP2_COMMAND) <' -d'>} ) ) } {<-c>} {<-->} {(DQ ($ Id.VSub_DollarName '$srcdir') ($ Id.VSub_DollarName '$x'))} ) (C {<tar>} {<xof>} {<->}) ] negated: F ) (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: [2788 2791 2897 -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 '*'> } ) ) ] ) 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: [2906 2936] ) ] ) (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 ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [2983 3001] ) ] 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 {<Id.KW_Set 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 _> ) ] ) ) ] ) ) } ) ] ) ] spids: [2900 2903 3050 -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 '*'> } ) ) ] ) 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: [3059 3089] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<__unpack_tar>} {(DQ <'gzip -d'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] spids: [3053 3056 3135 -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 '*'> } ) ) ] ) 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: [3144 3174] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<__unpack_tar>} { (DQ (braced_var_sub token: <Id.VSub_Name PORTAGE_BUNZIP2_COMMAND> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(${ Id.VSub_Name PORTAGE_BZIP2_COMMAND) <' -d'>} ) ) ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] spids: [3138 3141 3229 -1] ) (case_arm pat_list: [{<7z>}] action: [ (C {<local>} {<my_output>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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))} ) ) ) } spids: [3241] ) ] ) (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>} ) ] do_fork: T ) (C {<die>} {(DQ ($ Id.VSub_DollarName '$myfail'))}) ] spids: [3262 3275] ) ] ) ] spids: [3232 3233 3300 -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 '*'> } ) ) ] ) 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: [3307 3337] ) ] ) (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 ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3370 3393] ) ] ) ] spids: [3303 3304 3411 -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 '*'> } ) ) ] ) 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: [3420 3450] ) ] ) (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 ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3489 3507] ) ] ) ] spids: [3414 3417 3525 -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 '*'> } ) ) ] ) 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: [3532 3562] ) ] ) (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 ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3595 3613] ) ] ) ] spids: [3528 3529 3631 -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 '*'> } ) ) ] ) 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: [3638 3668] ) ] ) (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'>} ) ] do_fork: T ) ) } right: {(DQ <'GNU ar'>) <Id.Lit_Other '*'>} ) ) (command.Simple words: [{<type>} {<-P>} {<deb2targz>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:y) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name x> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {<'*'> <Id.Lit_Slash '/'>} ) ) } spids: [3765] ) ] ) (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 ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3816 3834] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:created_symlink) op: assign_op.Equal rhs: {<1>} spids: [3852] ) ] ) ] spids: [3780 3801] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<deb2targz>} {(DQ ($ Id.VSub_DollarName '$y'))} ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3859 3870] ) ] ) (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: [3888 3902] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<mv>} {<-f>} { (DQ (braced_var_sub token: <Id.VSub_Name y> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<.deb>} ) ) ) <.tar.gz> } {<data.tar.gz>} ) ] negated: T ) 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 token: <Id.VSub_Name y> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<.deb>} ) ) ) <.tar.xz> } {<data.tar.xz>} ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3948 3968] ) ] ) ] spids: [3925 3945] ) ] ) ] spids: [3725 3762] ) ] 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 ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3992 4006] ) ] ) ] ) ] spids: [3634 3635 4027 -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 '*'> } ) ) ] ) 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: [4034 4064] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<__unpack_tar>} {(DQ <'lzma -d'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] spids: [4030 4031 4110 -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 '*'> } ) ) ] ) 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: [4117 4147] ) ] ) (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: [4180 4185] ) ] else_action: [ (C {<__vecho>} { (DQ <'unpack '> (${ Id.VSub_Name x) <': file format not recognized. Ignoring.'> ) } ) ] ) ] spids: [4113 4114 4218 -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 '*'> } ) ) ] ) 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: [4225 4255] ) ] ) (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 ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [4296 4310] ) ] ) ] spids: [4288 4293] ) ] else_action: [ (C {<__vecho>} { (DQ <'unpack '> (${ Id.VSub_Name x) <': file format not recognized. Ignoring.'> ) } ) ] ) ] spids: [4221 4222 4345 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<__vecho>} { (DQ <'unpack '> (${ Id.VSub_Name x) <': file format not recognized. Ignoring.'> ) } ) ] spids: [4348 4349 4363 -1] ) ] ) ] ) ) (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 ) ] ) ) (command.ShFunction name: econf body: (BraceGroup children: [ (C {<local>} {<x>}) (C {<local>} {<Id.Lit_VarLike 'pid='> (braced_var_sub token: <Id.VSub_Name BASHPID> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<__bashpid>}))} ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<___eapi_has_prefix_variables>})] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<local>} {<Id.Lit_VarLike 'EPREFIX='>})] spids: [4445 4452] ) ] ) (command.ShFunction name: __hasg body: (BraceGroup children: [ (C {<local>} {<x>} {<Id.Lit_VarLike 's='> ($ Id.VSub_Number '$1')}) (C {<shift>}) (command.ForEach iter_name: x do_arg_iter: T 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)} ) ) (C {<echo>} {(DQ (${ Id.VSub_Name x))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ) (command.ShFunction name: __hasgq body: (BraceGroup 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'>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) ) (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'))}) ) } ) (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')} ) ) 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 ) 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>} ) ) (C {<eqawarn>} {(DQ <'QA Notice: econf called in'>)} { (DQ ($ Id.VSub_DollarName '$phase_func') <' instead of src_compile'> ) } ) ] ) ] spids: [4582 4589] ) ] 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>} ) ) (C {<eqawarn>} {(DQ <'QA Notice: econf called in'>)} { (DQ ($ Id.VSub_DollarName '$phase_func') <' instead of src_configure'>) } ) ] ) ] ) ] spids: [4567 4579] ) ] ) (C {<Id.Lit_Colon ':'>} { (braced_var_sub token: <Id.VSub_Name ECONF_SOURCE> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonEquals arg_word:{<.>}) ) } ) (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.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 ')'> } ) ) ) 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: [4686 4742] ) ] ) (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_CSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\0'>] multiline: F ) } {<x>} ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (C {<__vecho>} { (DQ <' * econf: updating '> (braced_var_sub token: <Id.VSub_Name x> suffix_op: (suffix_op.PatSub pat: {(${ Id.VSub_Name WORKDIR) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\/'> ) } replace_mode: Id.Undefined_Tok ) ) <' with '> (${ Id.VSub_Name EPREFIX) <'/usr/share/gnuconfig/'> (braced_var_sub token: <Id.VSub_Name x> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {<'*'> <Id.Lit_Slash '/'>} ) ) ) } ) (C {<cp>} {<-f>} {(DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/gnuconfig/'> (DQ (braced_var_sub token: <Id.VSub_Name x> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {<'*'> <Id.Lit_Slash '/'>} ) ) ) } {(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))} ) ] ) ) ] negated: F ) ] spids: [4871 4887] ) ] ) (C {<local>} {<Id.Lit_VarLike 'conf_args='> (sh_array_literal left:<Id.Op_LParen _>)} ) (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'>} ) ] do_fork: T ) ) } ) (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 '*'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:conf_args) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{<--disable-dependency-tracking>}] ) } spids: [5105] ) ] ) ] spids: [5085 5102] ) ] ) ] spids: [5077 5082] ) ] ) (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 '*'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:conf_args) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{<--disable-silent-rules>}] ) } spids: [5148] ) ] ) ] spids: [5128 5145] ) ] ) ] spids: [5120 5125] ) ] ) (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 '*'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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: [5191] ) ] ) ] spids: [5171 5188] ) ] ) (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 '*'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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: [5233] ) ] ) ] spids: [5213 5230] ) ] ) ] spids: [5163 5168] ) ] ) ] spids: [5042 5055] ) ] ) (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 token: <Id.VSub_Name LIBDIR_VAR> prefix_op: (Id.VSub_Bang) ) } ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONF_LIBDIR) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name LIBDIR_VAR> prefix_op: (Id.VSub_Bang) ) } spids: [5309] ) ] ) ] spids: [5283 5306] ) ] ) (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)} ) ) (command.Pipeline children: [ (C {<__hasgq>} {<--libdir> <Id.Lit_Equals '='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\*'> ) } {(DQ ($ Id.VSub_At '$@'))} ) ] negated: T ) ] ) 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 '\\*'> ) } {(DQ ($ Id.VSub_At '$@'))} ) ) } ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(${ Id.VSub_Name CONF_PREFIX)} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 '\\*'> ) } {(DQ ($ Id.VSub_At '$@'))} ) ) } spids: [5378] ) ] ) ] ) (C {<Id.Lit_Colon ':'>} { (braced_var_sub token: <Id.VSub_Name CONF_PREFIX> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonEquals arg_word: {(${ Id.VSub_Name EPREFIX) <Id.Lit_Slash '/'> <usr>} ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONF_PREFIX) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name CONF_PREFIX> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {<'*='>} ) ) } spids: [5405] ) ] ) (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 '*'>} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONF_PREFIX) op: assign_op.Equal rhs: {(DQ <'/'> (${ Id.VSub_Name CONF_PREFIX))} spids: [5428] ) ] ) ] ) (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 '*'>} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONF_LIBDIR) op: assign_op.Equal rhs: {(DQ <'/'> (${ Id.VSub_Name CONF_LIBDIR))} spids: [5452] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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) ) } ) ) ) } ] ) } spids: [5461] ) ] ) ] spids: [5319 5347] ) ] ) (C {<eval>} {(DQ <'local -a EXTRA_ECONF=('> (${ Id.VSub_Name EXTRA_ECONF) <')'>)}) (C {<Id.KW_Set set>} {<-->} {<--prefix> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/usr'>} { (braced_var_sub token: <Id.VSub_Name CBUILD> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {<'--build='> (${ Id.VSub_Name CBUILD)} ) ) } {<--host> <Id.Lit_Equals '='> (${ Id.VSub_Name CHOST)} { (braced_var_sub token: <Id.VSub_Name CTARGET> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {<'--target='> (${ Id.VSub_Name CTARGET)} ) ) } {<--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 token: <Id.VSub_Name conf_args> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } {(DQ ($ Id.VSub_At '$@'))} { (DQ (braced_var_sub token: <Id.VSub_Name EXTRA_ECONF> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ) (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 ) 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: [5671 5682] ) ] ) (C {<__helpers_die>} {(DQ <'econf failed'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [5650 5667] ) ] ) ] spids: [4667 4683] ) (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: [5724 5740] ) ] else_action: [(C {<die>} {(DQ <'no configure script found'>)})] ) ] ) ) (command.ShFunction name: einstall body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children:[(C {<___eapi_has_einstall>})] negated:T) 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: [5772 5779] ) ] ) (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 ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})] spids: [5818 5825] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIBDIR_VAR) op: assign_op.Equal rhs: {(DQ <LIBDIR_> (${ Id.VSub_Name ABI))} spids: [5839] ) ] ) (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 token: <Id.VSub_Name LIBDIR_VAR> prefix_op: (Id.VSub_Bang) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONF_LIBDIR) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name LIBDIR_VAR> prefix_op: (Id.VSub_Bang) ) ) } spids: [5877] ) ] ) ] spids: [5848 5874] ) ] ) (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 token: <Id.VSub_Name CONF_PREFIX> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {<set>} ) ) ) } {<Id.Lit_Equals '='>} {<Id.KW_Set set>} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EI_DESTLIBDIR) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name D) <'/'> (${ Id.VSub_Name CONF_PREFIX) <'/'> (${ Id.VSub_Name CONF_LIBDIR) ) } spids: [5930] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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))} ) ) ) } spids: [5946] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LOCAL_EXTRA_EINSTALL) op: assign_op.Equal rhs: { (DQ <'libdir='> (${ Id.VSub_Name EI_DESTLIBDIR) <' '> (${ Id.VSub_Name LOCAL_EXTRA_EINSTALL) ) } spids: [5960] ) ] ) (C {<unset>} {<EI_DESTLIBDIR>}) ] spids: [5894 5927] ) ] ) (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 token: <Id.VSub_Name MAKE> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<make>} ) ) } {<-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: [6007 6027] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C { (braced_var_sub token: <Id.VSub_Name MAKE> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<make>} ) ) } {<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 ) ] ) action: [ (C {<__helpers_die>} {(DQ <'einstall failed'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [6126 6221] ) ] ) ] spids: [5982 6004] ) ] else_action: [(C {<die>} {(DQ <'no Makefile found'>)})] ) ] ) ) (command.ShFunction name: __eapi0_pkg_nofetch body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{(${ Id.VSub_Name A)}) ) (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_name: x iter_words: [{(${ Id.VSub_Name A)}] do_arg_iter: F body: (command.DoGroup children:[(C {<elog>} {(DQ <' '> (${ Id.VSub_Name x))})]) ) ] ) ) (command.ShFunction name: __eapi0_src_unpack body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name A)}) ) (C {<unpack>} {(${ Id.VSub_Name A)}) ] ) ] ) ) (command.ShFunction name: __eapi0_src_compile body: (BraceGroup 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: [6357 6369] ) ] ) (C {<__eapi2_src_compile>}) ] ) ) (command.ShFunction name: __eapi0_src_test body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'emake_cmd='> (DQ (braced_var_sub token: <Id.VSub_Name MAKE> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{<make>}) ) <' '> (${ 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 name:internal_opts) op: assign_op.PlusEqual rhs: {(DQ <' -j1'>)} spids: [6443] ) ] ) ] spids: [6435 6440] ) ] ) (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'>} ) ] 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>})] 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: [6452 6469] ) (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'>} ) ] 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>})] 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: [6508 6525] ) ] ) ] ) ) (command.ShFunction name: __eapi1_src_compile body: (BraceGroup children:[(C {<__eapi2_src_configure>}) (C {<__eapi2_src_compile>})]) ) (command.ShFunction name: __eapi2_src_prepare body: (BraceGroup children:[(C {<Id.Lit_Colon ':'>})]) ) (command.ShFunction name: __eapi2_src_configure body: (BraceGroup 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 token: <Id.VSub_Name ECONF_SOURCE> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<.>} ) ) <'/configure'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<econf>})] spids: [6603 6620] ) ] ) ] ) ) (command.ShFunction name: __eapi2_src_compile body: (BraceGroup 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: [6638 6669] ) ] ) ] ) ) (command.ShFunction name: __eapi4_src_install body: (BraceGroup 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>}) ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<emake>} {<Id.Lit_VarLike 'DESTDIR='> (DQ (${ Id.VSub_Name D))} {<install>}) ] spids: [6695 6719] ) ] ) (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'>} ) ] do_fork: T ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<d>}) (command.ForEach iter_name: d iter_words: [ {<README> <Id.Lit_Star '*'>} {<ChangeLog>} {<AUTHORS>} {<NEWS>} {<TODO>} {<CHANGES>} {<THANKS>} {<BUGS>} {<FAQ>} {<CREDITS>} {<CHANGELOG>} ] do_arg_iter: F 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))} ) ) (C {<dodoc>} {(DQ (${ Id.VSub_Name d))}) ] ) ] ) ) ] spids: [6738 6753] ) (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: {(DQ <'declare -a '>) <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<dodoc>} { (DQ (braced_var_sub token: <Id.VSub_Name DOCS> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ) ] spids: [6823 6846] ) ] else_action: [(C {<dodoc>} {(${ Id.VSub_Name DOCS)})] ) ] ) ) (command.ShFunction name: __eapi6_src_prepare body: (BraceGroup 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'>} ) ] do_fork: T ) ) } right: {(DQ <'declare -a'>) <Id.Lit_Other '*'>} ) ) 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 token: <Id.VSub_Name PATCHES> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) ) (C {<eapply>} { (DQ (braced_var_sub token: <Id.VSub_Name PATCHES> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ) ] ) ] spids: [6883 6908] ) (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)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<eapply>} {(${ Id.VSub_Name PATCHES)})] spids: [6938 6951] ) ] ) (C {<eapply_user>}) ] ) ) (command.ShFunction name: __eapi6_src_install body: (BraceGroup 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>}) ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<emake>} {<Id.Lit_VarLike 'DESTDIR='> (DQ (${ Id.VSub_Name D))} {<install>}) ] spids: [6977 7001] ) ] ) (C {<einstalldocs>}) ] ) ) (command.ShFunction name: has_version body: (BraceGroup 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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:host_root) op: assign_op.Equal rhs: {<true>} spids: [7083] ) ] ) (C {<shift>}) ] spids: [7066 7080] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:atom) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [7093] ) ] ) (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 token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': 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 ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': option --host-root is not supported with EAPI '> (${ Id.VSub_Name EAPI) ) } ) ] spids: [7138 7145] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:root) op: assign_op.Equal rhs: {<'/'>} spids: [7167] ) ] ) ] spids: [7127 7135] ) ] ) (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 name:eroot) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name root> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<Id.Lit_Slash '/'>} ) ) (${ Id.VSub_Name PORTAGE_OVERRIDE_EPREFIX) <'/'> } spids: [7206] ) ] ) ] spids: [7195 7203] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:eroot) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name root> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<Id.Lit_Slash '/'>} ) ) (${ Id.VSub_Name EPREFIX) <'/'> } spids: [7221] ) ] ) ] ) ] spids: [7175 7180] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:eroot) op: assign_op.Equal rhs: {(${ Id.VSub_Name root)} spids: [7239] ) ] ) ] ) (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')} ) ) 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: [7248 7260] ) ] 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))} ) ] ) (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: [7328 7331 7341 -1] ) (case_arm pat_list: [{<2>}] action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': invalid atom: '> (${ Id.VSub_Name atom) ) } ) ] spids: [7344 7345 7364 -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)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval) ) } ) ] spids: [7371 7384] ) ] else_action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval) ) } ) ] ) ] spids: [7367 7368 7425 -1] ) ] ) ] ) ) (command.ShFunction name: best_version body: (BraceGroup 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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:host_root) op: assign_op.Equal rhs: {<true>} spids: [7491] ) ] ) (C {<shift>}) ] spids: [7474 7488] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:atom) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [7501] ) ] ) (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 token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': 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 ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': option --host-root is not supported with EAPI '> (${ Id.VSub_Name EAPI) ) } ) ] spids: [7546 7553] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:root) op: assign_op.Equal rhs: {<'/'>} spids: [7575] ) ] ) ] spids: [7535 7543] ) ] ) (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 name:eroot) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name root> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<Id.Lit_Slash '/'>} ) ) (${ Id.VSub_Name PORTAGE_OVERRIDE_EPREFIX) <'/'> } spids: [7614] ) ] ) ] spids: [7603 7611] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:eroot) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name root> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<Id.Lit_Slash '/'>} ) ) (${ Id.VSub_Name EPREFIX) <'/'> } spids: [7629] ) ] ) ] ) ] spids: [7583 7588] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:eroot) op: assign_op.Equal rhs: {(${ Id.VSub_Name root)} spids: [7647] ) ] ) ] ) (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')} ) ) 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: [7656 7668] ) ] 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))} ) ] ) (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: [7736 7739 7749 -1] ) (case_arm pat_list: [{<2>}] action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': invalid atom: '> (${ Id.VSub_Name atom) ) } ) ] spids: [7752 7753 7772 -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)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval) ) } ) ] spids: [7779 7792] ) ] else_action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval) ) } ) ] ) ] spids: [7775 7776 7833 -1] ) ] ) ] ) ) (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 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 token: <Id.VSub_Name libdir_var> prefix_op: (Id.VSub_Bang) ) } ) ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:libdir) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name libdir_var> prefix_op: (Id.VSub_Bang) ) } spids: [7897] ) ] ) ] ) (C {<echo>} {(DQ (${ Id.VSub_Name libdir))}) ] ) ) ] spids: [7841 7846] ) ] ) (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 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'>} ) ] do_fork: T ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<d>}) (command.ForEach iter_name: d iter_words: [ {<README> <Id.Lit_Star '*'>} {<ChangeLog>} {<AUTHORS>} {<NEWS>} {<TODO>} {<CHANGES>} {<THANKS>} {<BUGS>} {<FAQ>} {<CREDITS>} {<CHANGELOG>} ] do_arg_iter: F 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)} ) ) ) (C {<docinto>} {<'/'>}) (C {<dodoc>} {(DQ (${ Id.VSub_Name d))}) ] ) ] ) ) ] spids: [7937 7952] ) (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: {(DQ <'declare -a'>) <Id.Lit_Other '*'>} ) ) 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 token: <Id.VSub_Name DOCS> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) ) (C {<docinto>} {<'/'>}) (C {<dodoc>} {<-r>} { (DQ (braced_var_sub token: <Id.VSub_Name DOCS> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ) ] ) ] spids: [8034 8057] ) ] else_action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.WordTest w:{(${ Id.VSub_Name DOCS)}) ) (C {<docinto>} {<'/'>}) (C {<dodoc>} {<-r>} {(${ Id.VSub_Name DOCS)}) ] ) ] ) ) (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'>} ) ] do_fork: T ) ) } right: {(DQ <'declare -a'>) <Id.Lit_Other '*'>} ) ) 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 token: <Id.VSub_Name HTML_DOCS> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) ) (C {<docinto>} {<html>}) (C {<dodoc>} {<-r>} { (DQ (braced_var_sub token: <Id.VSub_Name HTML_DOCS> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ) ] ) ] spids: [8131 8157] ) ] else_action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.WordTest w:{(${ Id.VSub_Name HTML_DOCS)}) ) (C {<docinto>} {<html>}) (C {<dodoc>} {<-r>} {(${ Id.VSub_Name HTML_DOCS)}) ] ) ] ) ) ] ) ) ] spids: [7919 7924] ) ] ) (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 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'>} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:patch_cmd) op: assign_op.Equal rhs: {<gpatch>} spids: [8284] ) ] ) ] ) (command.ShFunction name: _eapply_patch body: (BraceGroup 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 name:started_applying) op: assign_op.Equal rhs: {<1>} spids: [8313] ) ] ) (C {<ebegin>} { (DQ (braced_var_sub token: <Id.VSub_Name prefix> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<'Applying '>} ) ) (braced_var_sub token: <Id.VSub_Name f> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {<'*'> <Id.Lit_Slash '/'>} ) ) ) } ) (command.Simple words: [ {(${ Id.VSub_Name patch_cmd)} {<-p1>} {<-f>} {<-s>} {<-g0>} {<--no-backup-if-mismatch>} { (DQ (braced_var_sub token: <Id.VSub_Name patch_options> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ (${ Id.VSub_Name f))} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {(${ Id.VSub_QMark '?')} spids: [8388] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<eend>} {(DQ (${ Id.VSub_Name failed))})] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<__helpers_die>} { (DQ <'patch -p1 '> (braced_var_sub token: <Id.VSub_Name patch_options> bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) ) <' failed with '> (${ Id.VSub_Name f) ) } ) ] spids: [8394 8407] ) ] ) ] ) ) (C {<local>} {<Id.Lit_VarLike 'patch_options='> (sh_array_literal left:<Id.Op_LParen _>)} {<Id.Lit_VarLike 'files='> (sh_array_literal left:<Id.Op_LParen _>)} ) (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 token:<Id.VSub_At '@'> prefix_op:(Id.VSub_Pound))} ) 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 token: <Id.VSub_At '@'> suffix_op: (suffix_op.Slice begin: <Id.Lit_ArithVarLike i> length: {<Id.Lit_Digits 1>} ) ) } right: {<-->} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:patch_options) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (braced_var_sub token: <Id.VSub_At '@'> 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>} ) ) ) ) } ] ) } spids: [8509] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:files) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (braced_var_sub token: <Id.VSub_At '@'> suffix_op: (suffix_op.Slice begin: (arith_expr.Binary op_id: Id.Arith_Plus left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 1>} ) ) ) ) } ] ) } spids: [8527] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:found_doublehyphen) op: assign_op.Equal rhs: {<1>} spids: [8543] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [8487 8506] ) ] ) ] ) ) (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)} ) ) 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 token: <Id.VSub_At '@'> prefix_op: (Id.VSub_Pound) ) } ) 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 token: <Id.VSub_At '@'> suffix_op: (suffix_op.Slice begin: <Id.Lit_ArithVarLike i> length: {<Id.Lit_Digits 1>} ) ) } right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:patch_options) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (braced_var_sub token: <Id.VSub_At '@'> 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>} ) ) ) ) } ] ) } spids: [8631] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:files) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (braced_var_sub token: <Id.VSub_At '@'> suffix_op: (suffix_op.Slice begin: <Id.Lit_ArithVarLike i> ) ) ) } ] ) } spids: [8649] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [8608 8628] ) ] ) ] ) ) (command.ForEach iter_name: i iter_words: [ { (DQ (braced_var_sub token: <Id.VSub_Name files> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F 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 '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ < 'eapply: all options must be passed before non-options' > ) } ) ] spids: [8696 8712] ) ] ) ] ) ) ] spids: [8561 8574] ) ] ) (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 token: <Id.VSub_Name files> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<die>} {(DQ <'eapply: no files specified'>)})] spids: [8732 8748] ) ] ) (C {<local>} {<f>}) (command.ForEach iter_name: f iter_words: [ { (DQ (braced_var_sub token: <Id.VSub_Name files> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F 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)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: _eapply_get_files body: (BraceGroup 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>}) ) } ) (C {<shopt>} {<-s>} {<nullglob>}) (C {<local>} {<f>}) (command.ForEach iter_name: f iter_words: [ {(DQ (${ Id.VSub_Number 1)) <'/'> <Id.Lit_Star '*'>} ] do_arg_iter: F 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> } ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:files) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ (${ Id.VSub_Name f))} ] ) } spids: [8887] ) ] ) ] spids: [8857 8884] ) ] ) ] ) ) (C {(${ Id.VSub_Name prev_shopt)}) ] ) ) (C {<local>} {<Id.Lit_VarLike 'files='> (sh_array_literal left: <Id.Op_LParen _> ) } ) (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 token: <Id.VSub_Name files> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) } ) ) (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_name: f2 iter_words: [ { (DQ (braced_var_sub token: <Id.VSub_Name files> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F 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>} ) ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(DQ (${ Id.VSub_Name failed))} ) ] ) ] ) ) ] spids: [8786 8799] ) ] 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>} ) ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(DQ (${ Id.VSub_Name failed))} ) ] ) ] ) ] ) ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) ) ] spids: [8236 8241] ) ] ) (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 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>} ) ) (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)} ) ) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] ) (command.Simple redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name tagfile))} ) ] do_fork: F ) (C {<local>} {<Id.Lit_VarLike 'basedir='> (braced_var_sub token: <Id.VSub_Name PORTAGE_CONFIGROOT> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<Id.Lit_Slash '/'>} ) ) <'/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>}) ) } ) (C {<shopt>} {<-s>} {<nullglob>}) (command.ForEach iter_name: d iter_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 token: <Id.VSub_Name SLOT> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<Id.Lit_Slash '/'> <'*'>} ) ) } {} ] ) ] ) ] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: f iter_words: [{(DQ (${ Id.VSub_Name d)) <'/'> <Id.Lit_Star '*'>}] do_arg_iter: F 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 token: <Id.VSub_Name _eapply_user_patches > bracket_op: (bracket_op.ArrayIndex expr: { (braced_var_sub token: <Id.VSub_Name f> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {<'*'> <Id.Lit_Slash '/' > } ) ) } ) ) } ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _eapply_user_patches index: { (braced_var_sub token: <Id.VSub_Name f> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {<'*'> <Id.Lit_Slash '/'>} ) ) } ) op: assign_op.Equal rhs: {(${ Id.VSub_Name f)} spids: [9388] ) ] ) ] spids: [9337 9385] ) ] ) ] ) ) ] ) ) (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 token: <Id.VSub_Name _eapply_user_patches> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {<0>} ) ) 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 name:f) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name _eapply_user_patches> bracket_op: (bracket_op.ArrayIndex expr: {(${ Id.VSub_Name f)} ) ) } spids: [9457] ) ] ) (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)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eapply>} {(DQ (${ Id.VSub_Name f))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:applied) op: assign_op.Equal rhs: {<1>} spids: [9493] ) ] ) ] spids: [9468 9481] ) ] ) ] ) 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 token: <Id.VSub_Name _eapply_user_patches> prefix_op: (Id.VSub_Bang) bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ) (command.Simple words: [{<sort>} {<-z>}] more_env: [ (env_pair name: LC_ALL val: {<C>} spids: [9526] ) ] do_fork: T ) ] negated: F ) ) } ) ] ) ] spids: [9418 9437] ) ] ) (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)} ) ) (C {<ewarn>} {(DQ <'User patches applied.'>)}) ] ) ] ) ) ] spids: [9092 9097] ) ] ) (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 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))} ) ) 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>} ) ] 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>} ) ] do_fork: T ) (C {<die>} {(DQ <'in_iuse() called without a parameter'>)}) ] spids: [9593 9608] ) ] ) (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 token: <Id.VSub_Name liuse> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{<'[+-]'>}) ) ) } ) ] ) ) ] spids: [9569 9574] ) ] ) (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 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>} ) ) (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': 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)} ) ) 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: [9735 9748] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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))} ) ) } spids: [9776] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:retval) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [9804] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)}) ) (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: [9840 9843 9853 -1] ) (case_arm pat_list: [{<2>}] action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': invalid repository: '> (${ Id.VSub_Name repository) ) } ) ] spids: [9856 9857 9876 -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)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval) ) } ) ] spids: [9883 9896] ) ] else_action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval) ) } ) ] ) ] spids: [9879 9880 9937 -1] ) ] ) ] ) ) ] spids: [9680 9685] ) ] ) (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 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>} ) ) (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': 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)} ) ) 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: [10003 10016] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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))} ) ) } spids: [10044] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:retval) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [10072] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)}) ) (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: [10108 10111 10121 -1] ) (case_arm pat_list: [{<2>}] action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': invalid repository: '> (${ Id.VSub_Name repository) ) } ) ] spids: [10124 10125 10144 -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)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval) ) } ) ] spids: [10151 10164] ) ] else_action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval) ) } ) ] ) ] spids: [10147 10148 10205 -1] ) ] ) ] ) ) ] spids: [9948 9953] ) ] ) (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 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>} ) ) (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': 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)} ) ) 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: [10270 10283] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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))} ) ) } spids: [10311] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:retval) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [10339] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)}) ) (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: [10375 10378 10388 -1] ) (case_arm pat_list: [{<2>}] action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': invalid repository: '> (${ Id.VSub_Name repository) ) } ) ] spids: [10391 10392 10411 -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)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval) ) } ) ] spids: [10418 10431] ) ] else_action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval) ) } ) ] ) ] spids: [10414 10415 10472 -1] ) ] ) ] ) ) ] spids: [10216 10221] ) ] ) (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 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>} ) ) (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': 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)} ) ) 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: [10543 10556] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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))} ) ) } spids: [10590] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:retval) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [10624] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)}) ) (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: [10660 10663 10673 -1] ) (case_arm pat_list: [{<2>}] action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': invalid repository: '> (${ Id.VSub_Name repository) ) } ) ] spids: [10676 10677 10696 -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)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval) ) } ) ] spids: [10703 10716] ) ] else_action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval) ) } ) ] ) ] spids: [10699 10700 10757 -1] ) ] ) ] ) ) ] spids: [10483 10488] ) ] ) (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 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>} ) ) (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': 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)} ) ) 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: [10828 10841] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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))} ) ) } spids: [10875] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:retval) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [10909] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)}) ) (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: [10945 10948 10958 -1] ) (case_arm pat_list: [{<2>}] action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': invalid repository: '> (${ Id.VSub_Name repository) ) } ) ] spids: [10961 10962 10981 -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)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval) ) } ) ] spids: [10988 11001] ) ] else_action: [ (C {<die>} { (DQ (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval) ) } ) ] ) ] spids: [10984 10985 11042 -1] ) ] ) ] ) ) ] spids: [10768 10773] ) ] ) (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 children:[(C {<echo>} {(DQ (${ Id.VSub_Name PORTAGE_BUILD_USER))})]) ) ] spids: [11053 11058] ) ] ) (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 children:[(C {<echo>} {(DQ (${ Id.VSub_Name PORTAGE_BUILD_GROUP))})]) ) ] spids: [11082 11087] ) ] ) ] )