(command.CommandList children: [ (command.ShFunction name: _rpm_installed_packages body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id:Id.BoolUnary_r child:{</var/log/rpmpkgs>}) right: (bool_expr.Binary op_id: Id.BoolBinary_nt left: {</var/log/rpmpkgs>} right: {</var/lib/rpm/Packages>} ) ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<sed>} {<-ne>} { (SQ < 's|^\\([^[:space:]]\\{1,\\}\\)-[^[:space:]-]\\{1,\\}-[^[:space:]-]\\{1,\\}\\.rpm$|\\1|p' > ) } {</var/log/rpmpkgs>} ) ] ) ) ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [43] ) ] ) ] spids: [15 36] ) (if_arm cond: [ (command.Sentence child: (command.Simple words: [{<type>} {<rpmqpack>}] redirects: [ (redir.Redir op: <Id.Redir_AndGreat '&>'> fd: -1 arg_word: {</dev/null>} ) ] ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'$( rpmqpack )'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [101] ) ] ) ] spids: [83 94] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [ { (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<rpm>} ) ) } {<-qa>} {<--nodigest>} {<--nosignature>} {<--queryformat> <Id.Lit_Equals '='> (SQ <'%{NAME} '>)} {(DQ ($ Id.VSub_DollarName '$cur') <'*'>)} ] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) ] ) ) } ] ) } spids: [128] ) ] ) ] ) ] ) ) (command.ShFunction name: _rpm_groups body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'IFS='> (single_quoted left: <Id.Left_SingleQuoteC "$'"> tokens: [<Id.Char_OneChar '\\n'>] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [ { (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<rpm>} ) ) } {<-qa>} {<--nodigest>} {<--nosignature>} {<--queryformat> <Id.Lit_Equals '='> (SQ <'%{GROUP}\\n'>) } ] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) ] ) ) ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [186] ) ] ) ] ) ) (command.ShFunction name: _rpm_macros body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C { (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<rpm>} ) ) } {<--showrc>} ) (C {<sed>} {<-ne>} { (SQ < 's/^-\\{0,1\\}[0-9]\\{1,\\}[:=][[:space:]]\\{1,\\}\\([^[:space:](]\\{3,\\}\\).*/%\\1/p' > ) } ) ] negated: F ) ] ) ) ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [248] ) ] ) ] ) ) (command.ShFunction name: _rpm_buildarchs body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C { (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<rpm>} ) ) } {<--showrc>} ) (C {<sed>} {<-ne>} { (SQ < 's/^\\s*compatible\\s\\s*build\\s\\s*archs\\s*:\\s*\\(.*\\)/\\1/ p' > ) } ) ] negated: F ) ] ) ) ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [305] ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _rpm body: (command.BraceGroup children: [ (C {<local>} {<cur>} {<prev>} {<words>} {<cword>} {<split>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_init_completion>} {<-s>}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_DollarName '$cword')} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$cur')} arms: [ (case_arm pat_list: [{<--> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (SQ <'--help --version --initdb\n'> < ' --checksig --addsign --delsign --rebuilddb --showrc\n' > <' --setperms --setugids --eval --install --upgrade --query\n'> < ' --freshen --erase --verify --querytags --import' > ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [423] ) ] ) ] spids: [418 420 452 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'-e -E -F -i -q -t -U -V'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [459] ) ] ) ] spids: [455 456 485 -1] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [391 404] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [ {<--dbpath>} {<--excludepath>} {<--prefix>} {<--relocate>} {<--root>} {<-r>} ] action: [ (C {<_filedir>} {<-d>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [507 518 531 -1] ) (case_arm pat_list: [{<--eval>} {<-E>}] action: [ (C {<_rpm_macros>} {($ Id.VSub_Number '$1')}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [534 537 550 -1] ) (case_arm pat_list: [{<--pipe>}] action: [ (C {<compopt>} {<-o>} {<filenames>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-c>} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [564] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [553 554 589 -1] ) (case_arm pat_list: [{<--rcfile>}] action: [ (C {<_filedir>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [592 593 604 -1] ) (case_arm pat_list: [{<--specfile>}] action: [ (C {<_filedir>} {<spec>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [607 608 625 -1] ) (case_arm pat_list: [ {<--whatenchances>} {<--whatprovides>} {<--whatrecommends>} {<--whatrequires>} {<--whatsuggests>} {<--whatsupplements>} ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<Id.Lit_Other '*'> </> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [(C {<_filedir>})] spids: [644 661] ) ] else_action: [ (C {<local>} {<Id.Lit_VarLike 'IFS='> (single_quoted left: <Id.Left_SingleQuoteC "$'"> tokens: [<Id.Char_OneChar '\\n'>] ) } {<fmt>} ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <enhances>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fmt) op: assign_op.Equal rhs: {<ENHANCENAME>} spids: [695] ) ] ) ] spids: [691 693 698 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <provides>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fmt) op: assign_op.Equal rhs: {<PROVIDENAME>} spids: [705] ) ] ) ] spids: [701 703 708 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <recommends>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fmt) op: assign_op.Equal rhs: {<RECOMMENDNAME>} spids: [715] ) ] ) ] spids: [711 713 718 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <requires>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fmt) op: assign_op.Equal rhs: {<REQUIRENAME>} spids: [725] ) ] ) ] spids: [721 723 728 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <suggests>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fmt) op: assign_op.Equal rhs: {<SUGGESTNAME>} spids: [735] ) ] ) ] spids: [731 733 738 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <supplements>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fmt) op: assign_op.Equal rhs: {<SUPPLEMENTNAME>} spids: [745] ) ] ) ] spids: [741 743 748 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {($ Id.VSub_Number '$1')} {<-qa>} {<--nodigest>} {<--nosignature>} {<--queryformat> <Id.Lit_Equals '='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <Id.Lit_Other '%'> <Id.Lit_LBrace '{'> ($ Id.VSub_DollarName '$fmt' ) <Id.Lit_RBrace '}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <n> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"' > ) } ] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) (C {<command>} {<grep>} {<-vF>} {(SQ <'(none)'>)} ) ] negated: F ) ] ) ) ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [754] ) ] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [628 641 825 -1] ) (case_arm pat_list: [{<--define>} {<-D>} {<--fileid>} {<--hdrid>} {<--pkgid>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [828 837 849 -1] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$split')}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (C {<local>} {<Id.Lit_VarLike 'opts='> (DQ <'--define= --eval= --macros= --nodigest --nosignature --rcfile=\n'> <' --quiet --pipe --verbose'> ) } ) (command.Case to_match: { (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) } arms: [ (case_arm pat_list: [ {<-> <Id.Lit_LBracket '['> <iFU> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>} {<--install>} {<--freshen>} {<--upgrade>} ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ ($ Id.VSub_DollarName '$opts') <' --percent --force --test\n'> <' --replacepkgs --replacefiles --root --excludedocs --includedocs\n'> < ' --noscripts --ignorearch --dbpath --prefix= --ignoreos --nodeps\n' > <' --allfiles --ftpproxy --ftpport --justdb --httpproxy --httpport\n'> < ' --noorder --relocate= --badreloc --notriggers --excludepath=\n' > <' --ignoresize --oldpackage --queryformat --repackage\n'> <' --nosuggests'> ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [925] ) ] ) ] spids: [906 922] ) ] else_action: [(C {<_filedir>} {(SQ <'[rs]pm'>)})] ) ] spids: [892 903 969 -1] ) (case_arm pat_list: [{<-e>} {<--erase>}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ ($ Id.VSub_DollarName '$opts') <' --allmatches --noscripts\n'> <' --notriggers --nodeps --test --repackage'> ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [997] ) ] ) ] spids: [978 994] ) ] else_action: [(C {<_rpm_installed_packages>} {($ Id.VSub_Number '$1')})] ) ] spids: [972 975 1034 -1] ) (case_arm pat_list: [{<-q> <Id.Lit_Star '*'>} {<--query>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:opts) op: assign_op.PlusEqual rhs: { (DQ <' --changelog --configfiles --conflicts --docfiles --dump\n'> < ' --enhances --filesbypkg --filecaps --fileclass --filecolor\n' > <' --fileprovide --filerequire --filesbypkg --info --list\n'> < ' --obsoletes --pipe --provides --queryformat= --requires\n' > <' --scripts --suggests --triggers --xml --recommends\n'> <' --supplements'> ) } spids: [1048] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {<Id.Lit_Other '*'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ) <-> (word_part.ExtGlob op: <Id.ExtGlob_At '@('> arms: [ { (word_part.ExtGlob op: <Id.ExtGlob_Star '*('> arms: [{<'[^ -]'>}] ) <f> } {<'-file '>} ] ) <Id.Lit_Other '*'> } ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ ($ Id.VSub_DollarName '$opts') <' --dbpath --fscontext\n'> <' --last --root --state'> ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [1115] ) ] ) ] spids: [1096 1112] ) ] else_action: [(C {<_filedir>})] ) ] spids: [1060 1089] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {<Id.Lit_Other '*'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ) <-> (word_part.ExtGlob op: <Id.ExtGlob_At '@('> arms: [ { (word_part.ExtGlob op: <Id.ExtGlob_Star '*('> arms: [{<'[^ -]'>}] ) <g> } {<'-group '>} ] ) <Id.Lit_Other '*'> } ) ) terminator: <Id.Op_Semi _> ) ] action: [(C {<_rpm_groups>} {($ Id.VSub_Number '$1')})] spids: [1150 1179] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {<Id.Lit_Other '*'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ) <-> (word_part.ExtGlob op: <Id.ExtGlob_At '@('> arms: [ { (word_part.ExtGlob op: <Id.ExtGlob_Star '*('> arms: [{<'[^ -]'>}] ) <p> } {<'-package '>} ] ) <Id.Lit_Other '*'> } ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ ($ Id.VSub_DollarName '$opts') <' --ftpport --ftpproxy\n'> <' --httpport --httpproxy --nomanifest'> ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [1246] ) ] ) ] spids: [1227 1243] ) ] else_action: [(C {<_filedir>} {(SQ <'[rs]pm'>)})] ) ] spids: [1191 1220] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ ($ Id.VSub_DollarName '$opts') <' --all --file --fileid\n'> <' --dbpath --fscontext --ftswalk --group --hdrid --last\n'> < ' --package --pkgid --root= --specfile --state\n' > <' --triggeredby --whatenhances --whatprovides\n'> < ' --whatrecommends --whatrequires --whatsuggests\n' > <' --whatsupplements'> ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [1311] ) ] ) ] spids: [1292 1308] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) } right: {<Id.Lit_Other '*'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ) <-> (word_part.ExtGlob op: <Id.ExtGlob_At '@('> arms: [ { (word_part.ExtGlob op: <Id.ExtGlob_Star '*('> arms: [{<'[^ -]'>}] ) <a> } {<'-all '>} ] ) <Id.Lit_Other '*'> } ) ) terminator: <Id.Op_Semi _> ) ] action: [(C {<_rpm_installed_packages>} {($ Id.VSub_Number '$1')})] spids: [1343 1372] ) ] ) ] ) ] spids: [1037 1041 1386 -1] ) (case_arm pat_list: [{<-K> <Id.Lit_Star '*'>} {<--checksig>}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ ($ Id.VSub_DollarName '$opts') <' --nopgp --nogpg --nomd5'> ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [1415] ) ] ) ] spids: [1396 1412] ) ] else_action: [(C {<_filedir>} {(SQ <'[rs]pm'>)})] ) ] spids: [1389 1393 1455 -1] ) (case_arm pat_list: [ {<-> <Id.Lit_LBracket '['> <Vy> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>} {<--verify>} ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ ($ Id.VSub_DollarName '$opts') <' --root= --dbpath --nodeps\n'> <' --nogroup --nolinkto --nomode --nomtime --nordev --nouser\n'> < ' --nofiles --noscripts --nomd5 --querytags --specfile\n' > <' --whatenhances --whatprovides --whatrecommends\n'> < ' --whatrequires --whatsuggests --whatsupplements' > ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [1487] ) ] ) ] spids: [1468 1484] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {<Id.Lit_Other '*'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ) <-> (word_part.ExtGlob op: <Id.ExtGlob_At '@('> arms: [ { (word_part.ExtGlob op: <Id.ExtGlob_Star '*('> arms: [{<'[^ -]'>}] ) <f> } {<'-file '>} ] ) <Id.Lit_Other '*'> } ) ) terminator: <Id.Op_Semi _> ) ] action: [(C {<_filedir>})] spids: [1522 1551] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {<Id.Lit_Other '*'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ) <-> (word_part.ExtGlob op: <Id.ExtGlob_At '@('> arms: [ { (word_part.ExtGlob op: <Id.ExtGlob_Star '*('> arms: [{<'[^ -]'>}] ) <g> } {<'-group '>} ] ) <Id.Lit_Other '*'> } ) ) terminator: <Id.Op_Semi _> ) ] action: [(C {<_rpm_groups>} {($ Id.VSub_Number '$1')})] spids: [1557 1586] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {<Id.Lit_Other '*'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ) <-> (word_part.ExtGlob op: <Id.ExtGlob_At '@('> arms: [ { (word_part.ExtGlob op: <Id.ExtGlob_Star '*('> arms: [{<'[^ -]'>}] ) <p> } {<'-package '>} ] ) <Id.Lit_Other '*'> } ) ) terminator: <Id.Op_Semi _> ) ] action: [(C {<_filedir>} {(SQ <'[rs]pm'>)})] spids: [1594 1623] ) ] else_action: [(C {<_rpm_installed_packages>} {($ Id.VSub_Number '$1')})] ) ] spids: [1458 1465 1644 -1] ) (case_arm pat_list: [{<--resign>} {<--addsign>} {<--delsign>}] action: [(C {<_filedir>} {(SQ <'[rs]pm'>)})] spids: [1647 1652 1662 -1] ) (case_arm pat_list: [{<--setperms>} {<--setgids>}] action: [(C {<_rpm_installed_packages>} {($ Id.VSub_Number '$1')})] spids: [1665 1668 1676 -1] ) (case_arm pat_list: [{<--import>} {<--dbpath>} {<--root>}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'--import --dbpath --root='>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [1706] ) ] ) ] spids: [1687 1703] ) ] else_action: [(C {<_filedir>})] ) ] spids: [1679 1684 1741 -1] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$COMPREPLY')} right: {<Id.Lit_Other '*'> <Id.BoolBinary_GlobEqual '='>} ) ) (C {<compopt>} {<-o>} {<nospace>}) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) ) (C {<complete>} {<-F>} {<_rpm>} {<rpm>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _rpmbuild body: (command.BraceGroup children: [ (C {<local>} {<cur>} {<prev>} {<words>} {<cword>} {<split>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_init_completion>} {<-s>}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (C {<local>} {<Id.Lit_VarLike 'rpm='> (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{<'build*'>}) ) ) } ) (command.AndOr ops: [Id.Op_DPipe Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$rpm')} right: {($ Id.VSub_Number '$1')} ) ) (command.Pipeline children: [ (command.Simple words: [{<type>} {($ Id.VSub_DollarName '$rpm')}] redirects: [ (redir.Redir op: <Id.Redir_AndGreat '&>'> fd: -1 arg_word: {</dev/null>} ) ] ) ] negated: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rpm) op: assign_op.Equal rhs: (word.Empty) spids: [1850] ) ] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<--buildroot>} {<--root>} {<-r>} {<--dbpath>}] action: [ (C {<_filedir>} {<-d>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1861 1868 1881 -1] ) (case_arm pat_list: [{<--target>}] action: [ (C {<_rpm_buildarchs>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1884 1885 1896 -1] ) (case_arm pat_list: [{<--eval>} {<-E>}] action: [ (C {<_rpm_macros>} {($ Id.VSub_DollarName '$rpm')}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1899 1902 1915 -1] ) (case_arm pat_list: [{<--macros>} {<--rcfile>}] action: [ (C {<_filedir>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1918 1921 1932 -1] ) (case_arm pat_list: [{<--buildpolicy>}] action: [ (C {<local>} {<Id.Lit_VarLike 'cfgdir='> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [ {($ Id.VSub_DollarName '$rpm')} {<--eval>} {(SQ <'%{_rpmconfigdir}'>)} ] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) ] ) ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName '$cfgdir')}) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {<command>} {<ls>} { ($ Id.VSub_DollarName '$cfgdir' ) } ] redirects: [ (redir.Redir op: <Id.Redir_Great '2>' > fd: 2 arg_word: {</dev/null>} ) ] ) (C {<sed>} {<-ne>} {(SQ <'s/^brp-//p'>)} ) ] negated: F ) ] ) ) ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [1970] ) ] ) ] spids: [1958 1967] ) ] ) ] spids: [1935 1936 2020 -1] ) (case_arm pat_list: [{<--define>} {<-D>} {<--with>} {<--without>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2023 2030 2038 -1] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$split')}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$cur')} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<_parse_help>} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) ) ) } {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [2072] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$COMPREPLY')} right: {<Id.Lit_Other '*'> <Id.BoolBinary_GlobEqual '='>} ) ) (C {<compopt>} {<-o>} {<nospace>}) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2055 2069] ) ] ) (C {<local>} {<word>} {<ext>}) (command.ForEach iter_name: word iter_words: [ { (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName '$word')} arms: [ (case_arm pat_list: [{<-b> <Id.Lit_QMark '?'>} {<--clean>} {<--nobuild>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ext) op: assign_op.Equal rhs: {<spec>} spids: [2177] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [2168 2174 2184 -1] ) (case_arm pat_list: [{<-t> <Id.Lit_QMark '?'>} {<--tarbuild>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ext) op: assign_op.Equal rhs: {(SQ <'@(t?(ar.)@([gx]z|bz?(2))|tar?(.@(lzma|Z)))'>)} spids: [2194] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [2187 2191 2203 -1] ) (case_arm pat_list: [{<--rebuild>} {<--recompile>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ext) op: assign_op.Equal rhs: {(SQ <'@(?(no)src.r|s)pm'>)} spids: [2212] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [2206 2209 2221 -1] ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName '$ext')} ) ) (C {<_filedir>} {($ Id.VSub_DollarName '$ext')}) ] ) ] ) ) (C {<complete>} {<-F>} {<_rpmbuild>} {<rpmbuild>} {<rpmbuild-md5>}) ] ) ] )