# bash completion for vpnc -*- shell-script -*- proc _vpnc { var cur = '', prev = '', words = '', cword = '' _init_completion || return matchstr $prev { --help|--long-help|--version|--id|--username|--domain|--ifname|\ --application-version|--local-addr|--local-port|--udp-port|--dpd-idle|\ --target-network { return 0 } --gateway { _known_hosts_real $cur return 0 } --vendor { global COMPREPLY := '( '$( compgen -W 'cisco netscreen' -- "$cur" ) ) return 0 } --natt-mode { global COMPREPLY := '( '$( compgen -W 'natt none force-natt cisco-udp' \ -- "$cur" ) ) return 0 } --script|--pid-file|--ca-file { _filedir return 0 } --dh { global COMPREPLY := '( '$( compgen -W 'dh1 dh2 dh5' -- "$cur" ) ) return 0 } --pfs { global COMPREPLY := '( '$( compgen -W 'nopfs dh1 dh2 dh5 server' -- "$cur" ) ) return 0 } --debug { global COMPREPLY := '( '$( compgen -W '0 1 2 3 99' -- "$cur" ) ) return 0 } --auth-mode { global COMPREPLY := '( '$( compgen -W 'psk cert hybrid' -- "$cur" ) ) return 0 } --ca-dir { _filedir -d return 0 } } if [[ "$cur" == -* ]] { global COMPREPLY := '( '$( compgen -W '$( _parse_help "$1" --long-help )' \ -- "$cur" ) ) } else { global COMPREPLY := '( '$( compgen -W '$( command ls /etc/vpnc )' -- "$cur" ) ) } } && complete -F _vpnc vpnc # ex: ts=4 sw=4 et filetype=sh (CommandList children: [ (AndOr children: [ (FuncDef name: _vpnc 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 ) (Case to_match: {($ VSub_Name "$prev")} arms: [ (case_arm pat_list: [ {(--help)} {(--long-help)} {(--version)} {(--id)} {(--username)} {(--domain)} {(--ifname)} {(--application-version)} {(--local-addr)} {(--local-port)} {(--udp-port)} {(--dpd-idle)} {(--target-network)} ] action: [(ControlFlow token: arg_word:{(0)})] spids: [37 66 74 -1] ) (case_arm pat_list: [{(--gateway)}] action: [ (C {(_known_hosts_real)} {(DQ ($ VSub_Name "$cur"))}) (ControlFlow token: arg_word: {(0)} ) ] spids: [77 78 93 -1] ) (case_arm pat_list: [{(--vendor)}] 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 <"cisco netscreen">)} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [103 119] ) } ] ) } spids: [100] ) ] spids: [100] ) (ControlFlow token: arg_word: {(0)} ) ] spids: [96 97 129 -1] ) (case_arm pat_list: [{(--natt-mode)}] 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 <"natt none force-natt cisco-udp">)} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [139 157] ) } ] ) } spids: [136] ) ] spids: [136] ) (ControlFlow token: arg_word: {(0)} ) ] spids: [132 133 167 -1] ) (case_arm pat_list: [{(--script)} {(--pid-file)} {(--ca-file)}] action: [ (C {(_filedir)}) (ControlFlow token: arg_word: {(0)} ) ] spids: [170 175 186 -1] ) (case_arm pat_list: [{(--dh)}] 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 <"dh1 dh2 dh5">)} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [196 212] ) } ] ) } spids: [193] ) ] spids: [193] ) (ControlFlow token: arg_word: {(0)} ) ] spids: [189 190 222 -1] ) (case_arm pat_list: [{(--pfs)}] 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 <"nopfs dh1 dh2 dh5 server">)} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [232 248] ) } ] ) } spids: [229] ) ] spids: [229] ) (ControlFlow token: arg_word: {(0)} ) ] spids: [225 226 258 -1] ) (case_arm pat_list: [{(--debug)}] 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 <"0 1 2 3 99">)} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [268 284] ) } ] ) } spids: [265] ) ] spids: [265] ) (ControlFlow token: arg_word: {(0)} ) ] spids: [261 262 294 -1] ) (case_arm pat_list: [{(--auth-mode)}] 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 <"psk cert hybrid">)} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [304 320] ) } ] ) } spids: [301] ) ] spids: [301] ) (ControlFlow token: arg_word: {(0)} ) ] spids: [297 298 330 -1] ) (case_arm pat_list: [{(--ca-dir)}] action: [ (C {(_filedir)} {(-d)}) (ControlFlow token: arg_word: {(0)} ) ] spids: [333 334 347 -1] ) ] spids: [30 34 350] ) (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\" --long-help )">)} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [376 394] ) } ] ) } spids: [373] ) ] spids: [373] ) ] spids: [-1 370] ) ] else_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 <"$( command ls /etc/vpnc )">)} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [405 421] ) } ] ) } spids: [402] ) ] spids: [402] ) ] spids: [399 426] ) ] spids: [8] ) spids: [4 7] ) (C {(complete)} {(-F)} {(_vpnc)} {(vpnc)}) ] op_id: Op_DAmp ) ] )