# bash completion for sbopkg(8) -*- shell-script -*- proc _sbopkg { var cur = '', prev = '', words = '', cword = '' _init_completion || return if [[ "$cur" == -* ]] { global COMPREPLY := '( '$( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) [[ $COMPREPLY ]] && return } matchstr $prev { -e { global COMPREPLY := '( '$( compgen -W 'ask continue stop' -- "$cur" ) ) return } -f { _filedir return } -d { _filedir -d return } -V { global COMPREPLY := '( '$( compgen -W "? $( sbopkg -V ? 2>&1 | cut -s -f1 )" -- "$cur" ) ) return } -i|-b { } * { return } } var i = '', config = '' config := '"/etc/sbopkg/sbopkg.conf'" for (( i=${#words[@]}-1; i>0; i-- )); do if [[ "${words[i]}" == -f ]]; then config="${words[i+1]}" __expand_tilde_by_ref config break fi done [[ -r "$config" ]] || return source $config for (( i=1; i<${#words[@]}; i++ )); do case "${words[i]}" in -V) REPO_NAME="${words[i+1]%%/*}" REPO_BRANCH="${words[i+1]#*/}" ;; -d) REPO_ROOT="${words[i+1]}" ;; esac done [[ -r $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT ]] || return global COMPREPLY := '( '$( sed -ne "/^SLACKBUILD NAME: $cur/{s/^SLACKBUILD NAME: //;p}"\ $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT ) $( cd $QUEUEDIR; compgen -f -X "!*.sqf" -- "$cur" ) ) } && complete -F _sbopkg sbopkg # ex: ts=4 sw=4 et filetype=sh (CommandList children: [ (AndOr children: [ (FuncDef name: _sbopkg body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:cur) op:Equal spids:[13]) (assign_pair lhs:(LhsName name:prev) op:Equal spids:[15]) (assign_pair lhs:(LhsName name:words) op:Equal spids:[17]) (assign_pair lhs:(LhsName name:cword) op:Equal spids:[19]) ] spids: [11] ) (AndOr children: [(C {(_init_completion)}) (ControlFlow token:)] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$cur"))} right: {(-) (Lit_Other "*")} ) ) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} {(SQ <"$( _parse_help \"$1\" -h )">)} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [52 68] ) } ] ) } spids: [49] ) ] spids: [49] ) (AndOr children: [ (DBracket expr: (WordTest w:{($ VSub_Name "$COMPREPLY")}) ) (ControlFlow token: ) ] op_id: Op_DAmp ) ] spids: [-1 46] ) ] spids: [-1 84] ) (Case to_match: {(DQ ($ VSub_Name "$prev"))} arms: [ (case_arm pat_list: [{(-e)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} {(SQ <"ask continue stop">)} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [104 120] ) } ] ) } spids: [101] ) ] spids: [101] ) (ControlFlow token:) ] spids: [97 98 128 -1] ) (case_arm pat_list: [{(-f)}] action: [(C {(_filedir)}) (ControlFlow token:)] spids: [131 132 141 -1] ) (case_arm pat_list: [{(-d)}] action: [(C {(_filedir)} {(-d)}) (ControlFlow token:)] spids: [144 145 156 -1] ) (case_arm pat_list: [{(-V)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} { (DQ ("?\n") (" ") (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [ {(sbopkg)} {(-V)} {(Lit_Other "?")} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [183] ) ] ) (C {(cut)} {(-s)} {(-f1)}) ] negated: False ) ] ) left_token: spids: [175 194] ) ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [166 203] ) } ] ) } spids: [163] ) ] spids: [163] ) (ControlFlow token:) ] spids: [159 160 211 -1] ) (case_arm pat_list:[{(-i)}{(-b)}] spids:[214217220-1]) (case_arm pat_list: [{(Lit_Other "*")}] action: [(ControlFlow token:)] spids: [223 224 230 -1] ) ] spids: [88 94 233] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:i) op:Equal spids:[239]) (assign_pair lhs:(LhsName name:config) op:Equal spids:[241]) ] spids: [237] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:config) op: Equal rhs: {(DQ (/etc/sbopkg/sbopkg.conf))} spids: [244] ) ] spids: [244] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithBinary op_id: Arith_Minus left: (ArithWord w: { (BracedVarSub token: prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [256 262] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) ) cond: (ArithBinary op_id: Arith_Great left: (ArithVarRef name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) update: (UnaryAssign op_id:Node_PostDMinus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (BracedVarSub token: bracket_op: (ArrayIndex expr:(ArithVarRef name:i)) spids: [287 292] ) ) } right: {(BoolUnary_f -f)} ) ) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:config) op: Equal rhs: { (DQ (BracedVarSub token: bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [307 314] ) ) } spids: [305] ) ] spids: [305] ) (C {(__expand_tilde_by_ref)} {(config)}) (ControlFlow token: ) ] spids: [-1 302] ) ] spids: [-1 326] ) ] spids: [279 329] ) ) (AndOr children: [ (DBracket expr: (BoolUnary op_id:BoolUnary_r child:{(DQ ($ VSub_Name "$config"))}) ) (ControlFlow token:) ] op_id: Op_DPipe ) (C {(.)} {($ VSub_Name "$config")}) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [365 371] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (Case to_match: { (DQ (BracedVarSub token: bracket_op: (ArrayIndex expr:(ArithVarRef name:i)) spids: [387 392] ) ) } arms: [ (case_arm pat_list: [{(-V)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REPO_NAME) op: Equal rhs: { (DQ (BracedVarSub token: bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) ) suffix_op: (StringUnary op_id: VOp1_DPercent arg_word: {(Lit_Slash /) ("*")} ) spids: [404 414] ) ) } spids: [402] ) ] spids: [402] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REPO_BRANCH) op: Equal rhs: { (DQ (BracedVarSub token: bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) ) suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {("*") (Lit_Slash /)} ) spids: [420 430] ) ) } spids: [418] ) ] spids: [418] ) ] spids: [398 399 434 -1] ) (case_arm pat_list: [{(-d)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REPO_ROOT) op: Equal rhs: { (DQ (BracedVarSub token: bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [443 450] ) ) } spids: [441] ) ] spids: [441] ) ] spids: [437 438 454 -1] ) ] spids: [384 395 457] ) ] spids: [381 460] ) ) (AndOr children: [ (DBracket expr: (BoolUnary op_id: BoolUnary_r child: {($ VSub_Name "$REPO_ROOT") (/) ($ VSub_Name "$REPO_NAME") (/) ($ VSub_Name "$REPO_BRANCH") (/SLACKBUILDS.TXT) } ) ) (ControlFlow token:) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(sed)} {(-ne)} { (DQ ("/^SLACKBUILD NAME: ") ($ VSub_Name "$cur") ("/{s/^SLACKBUILD NAME: //;p}") ) } {($ VSub_Name "$REPO_ROOT") (/) ($ VSub_Name "$REPO_NAME") (/) ($ VSub_Name "$REPO_BRANCH") (/SLACKBUILDS.TXT) } ) ] ) left_token: spids: [485 505] ) } { (CommandSubPart command_list: (CommandList children: [ (Sentence child: (C {(cd)} {($ VSub_Name "$QUEUEDIR")}) terminator: ) (C {(compgen)} {(-f)} {(-X)} {(DQ ("!*.sqf"))} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [508 531] ) } ] ) } spids: [482] ) ] spids: [482] ) ] spids: [8] ) spids: [4 7] ) (C {(complete)} {(-F)} {(_sbopkg)} {(sbopkg)}) ] op_id: Op_DAmp ) ] )