# sitecopy(1) completion -*- shell-script -*- # Copyright 2003 Eelco Lempsink # 2011 Raphaƫl Droz # License: GNU GPL v2 or later proc _sitecopy { var cur = '', prev = '', words = '', cword = '', split = '' _init_completion -s || return matchstr $prev { --debug|-d { global COMPREPLY := '( '$( compgen -W "socket files rcfile ftp http httpbody rsh sftp xml xmlparse cleartext" -- "$cur" ) ) compopt -o nospace return 0 } --logfile|-g|--rcfile|-r { _filedir return 0 } --storepath|-p { _filedir -d return 0 } } matchstr $cur { --* { global COMPREPLY := '( '$( compgen -W "$(_parse_help $1)" -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace return 0 } # only complete long options - { compopt -o nospace global COMPREPLY := '( '-- ) return 0 } } if [[ -r ~/.sitecopyrc ]] { global COMPREPLY := '( '$( compgen -W "$($1 -v | \ command sed -n '/^Site:/s/Site: //p')" -- "$cur" ) ) } return 0 } && complete -F _sitecopy -o default sitecopy # ex: ts=4 sw=4 et filetype=sh (CommandList children: [ (AndOr children: [ (FuncDef name: _sitecopy body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:cur) op:Equal spids:[22]) (assign_pair lhs:(LhsName name:prev) op:Equal spids:[24]) (assign_pair lhs:(LhsName name:words) op:Equal spids:[26]) (assign_pair lhs:(LhsName name:cword) op:Equal spids:[28]) (assign_pair lhs:(LhsName name:split) op:Equal spids:[30]) ] spids: [20] ) (AndOr children: [ (C {(_init_completion)} {(-s)}) (ControlFlow token:) ] op_id: Op_DPipe ) (Case to_match: {($ VSub_Name "$prev")} arms: [ (case_arm pat_list: [{(--debug)} {(-d)}] 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 ("socket files rcfile ftp http httpbody\n") ( " rsh sftp xml xmlparse cleartext" ) ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [59 76] ) } ] ) } spids: [56] ) ] spids: [56] ) (C {(compopt)} {(-o)} {(nospace)}) (ControlFlow token: arg_word: {(0)} ) ] spids: [50 53 93 -1] ) (case_arm pat_list: [{(--logfile)} {(-g)} {(--rcfile)} {(-r)}] action: [ (C {(_filedir)}) (ControlFlow token: arg_word: {(0)} ) ] spids: [96 103 114 -1] ) (case_arm pat_list: [{(--storepath)} {(-p)}] action: [ (C {(_filedir)} {(-d)}) (ControlFlow token: arg_word: {(0)} ) ] spids: [117 120 133 -1] ) ] spids: [43 47 136] ) (Case to_match: {($ VSub_Name "$cur")} arms: [ (case_arm pat_list: [{(--) (Lit_Other "*")}] 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 (CommandSubPart command_list: (CommandList children: [ (C {(_parse_help)} {($ VSub_Number "$1")}) ] ) left_token: spids: [162 166] ) ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [155 175] ) } ] ) } spids: [152] ) ] spids: [152] ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$COMPREPLY")} right: {(Lit_Other "*") (BoolBinary_GlobEqual "=")} ) ) (C {(compopt)} {(-o)} {(nospace)}) ] op_id: Op_DAmp ) (ControlFlow token: arg_word: {(0)} ) ] spids: [147 149 205 -1] ) (case_arm pat_list: [{(-)}] action: [ (C {(compopt)} {(-o)} {(nospace)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: {(ArrayLiteralPart words:[{(--)}])} spids: [224] ) ] spids: [224] ) (ControlFlow token: arg_word: {(0)} ) ] spids: [213 214 237 -1] ) ] spids: [140 144 240] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_r child: {(Lit_Tilde "~") (/.sitecopyrc)} ) ) 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)} { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Number "$1")} {(-v)}) (C {(command)} {(sed)} {(-n)} {(SQ <"/^Site:/s/Site: //p">)} ) ] negated: False ) ] ) left_token: spids: [269 287] ) ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [262 296] ) } ] ) } spids: [259] ) ] spids: [259] ) ] spids: [-1 256] ) ] spids: [-1 301] ) (ControlFlow token: arg_word:{(0)}) ] spids: [17] ) spids: [13 16] ) (C {(complete)} {(-F)} {(_sitecopy)} {(-o)} {(default)} {(sitecopy)}) ] op_id: Op_DAmp ) ] )