# bash completion for Portsnap -*- shell-script -*- [[ $OSTYPE == *freebsd* ]] || return 1 proc _portsnap { var cur = '', prev = '', words = '', cword = '' _init_completion || return matchstr $prev { -d|-p { _filedir -d return } -l|-f { _filedir return } } global COMPREPLY := '( '$(compgen -W "fetch cron extract update" -- $cur) ) } && complete -F _portsnap portsnap # ex: ts=4 sw=4 et filetype=sh (CommandList children: [ (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$OSTYPE")} right: {(Lit_Other "*") (freebsd) (Lit_Other "*")} ) ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (AndOr children: [ (FuncDef name: _portsnap body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:cur) op:Equal spids:[32]) (assign_pair lhs:(LhsName name:prev) op:Equal spids:[34]) (assign_pair lhs:(LhsName name:words) op:Equal spids:[36]) (assign_pair lhs:(LhsName name:cword) op:Equal spids:[38]) ] spids: [30] ) (AndOr children: [(C {(_init_completion)}) (ControlFlow token:)] op_id: Op_DPipe ) (Case to_match: {($ VSub_Name "$prev")} arms: [ (case_arm pat_list: [{(-d)} {(-p)}] action: [(C {(_filedir)} {(-d)}) (ControlFlow token:)] spids: [56 59 70 -1] ) (case_arm pat_list: [{(-l)} {(-f)}] action: [(C {(_filedir)}) (ControlFlow token:)] spids: [73 76 85 -1] ) ] spids: [49 53 88] ) (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 ("fetch cron extract update"))} {(--)} {($ VSub_Name "$cur")} ) ] ) left_token: spids: [95 107] ) } ] ) } spids: [92] ) ] spids: [92] ) ] spids: [27] ) spids: [23 26] ) (C {(complete)} {(-F)} {(_portsnap)} {(portsnap)}) ] op_id: Op_DAmp ) ] )