# bash completion for fbgs(1) -*- shell-script -*- proc _fbgs { var cur = '', prev = '', words = '', cword = '' _init_completion || return matchstr $prev { -f|--font { var IFS = '$'\n'' global COMPREPLY := '( '$( compgen -W '$( fc-list 2>/dev/null )' -- "$cur" ) ) return } -m|--mode { global COMPREPLY := '( '$( compgen -W '$( sed \ -n "/^mode/{s/^mode \{1,\}\"\([^\"]\{1,\}\)\"/\1/g;p}" \ /etc/fb.modes 2> /dev/null )' -- "$cur" ) ) return } -d|--device { global COMPREPLY := '( '$( compgen -f -d -- "${cur:-/dev/}" ) ) return } -fp|--firstpage|-lp|--lastpage|-r|--resolution|-s|--scroll|-t|\ --timeout { # expect integer value global COMPREPLY := '( '$( compgen -W '{0..9}' ) ) compopt -o nospace return } -T|--vt|-p|--password|-g|--gamma { # argument required but no completions available return } } if [[ "$cur" == -* ]] { global COMPREPLY := '( '$( compgen -W '--bell --help --password -fp --firstpage -lp --lastpage --color -l -xl -xxl --resolution --autozoom --{,no}autoup --{,no}autodown --{,no}fitwidth --{,no}verbose --{,no}random --vt --scroll --timeout --{,no}once --gamma --font --device --mode' -- "$cur" ) ) [[ $COMPREPLY ]] && return } _filedir '?(e)ps|pdf' } && complete -F _fbgs fbgs # ex: ts=4 sw=4 et filetype=sh (CommandList children: [ (AndOr children: [ (FuncDef name: _fbgs 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: {(DQ ($ VSub_Name "$prev"))} arms: [ (case_arm pat_list: [{(-f)} {(--font)}] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(SQ )} spids: [47] ) ] spids: [45] ) (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 <"$( fc-list 2>/dev/null )">)} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [56 72] ) } ] ) } spids: [53] ) ] spids: [53] ) (ControlFlow token:) ] spids: [39 42 80 -1] ) (case_arm pat_list: [{(-m)} {(--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 <"$( sed \\\n"> < " -n \"/^mode/{s/^mode \\{1,\\}\\\"\\([^\\\"]\\{1,\\}\\)\\\"/\\1/g;p}\" \\\n" > <" /etc/fb.modes 2> /dev/null )"> ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [92 110] ) } ] ) } spids: [89] ) ] spids: [89] ) (ControlFlow token:) ] spids: [83 86 118 -1] ) (case_arm pat_list: [{(-d)} {(--device)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-f)} {(-d)} {(--)} { (DQ (BracedVarSub token: suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(Lit_Slash /) (dev) (Lit_Slash /)} ) spids: [141 147] ) ) } ) ] ) left_token: spids: [130 150] ) } ] ) } spids: [127] ) ] spids: [127] ) (ControlFlow token:) ] spids: [121 124 158 -1] ) (case_arm pat_list: [ {(-fp)} {(--firstpage)} {(-lp)} {(--lastpage)} {(-r)} {(--resolution)} {(-s)} {(--scroll)} {(-t)} {(--timeout)} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: PlusEqual rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [(C {(compgen)} {(-W)} {(SQ <"{0..9}">)})] ) left_token: spids: [192 202] ) } ] ) } spids: [189] ) ] spids: [189] ) (C {(compopt)} {(-o)} {(nospace)}) (ControlFlow token:) ] spids: [161 182 217 -1] ) (case_arm pat_list: [{(-T)} {(--vt)} {(-p)} {(--password)} {(-g)} {(--gamma)}] action: [(ControlFlow token:)] spids: [220 231 241 -1] ) ] spids: [30 36 244] ) (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 < "--bell --help --password -fp --firstpage\n" > <" -lp --lastpage --color -l -xl -xxl --resolution --autozoom\n"> < " --{,no}autoup --{,no}autodown --{,no}fitwidth --{,no}verbose\n" > <" --{,no}random --vt --scroll --timeout --{,no}once --gamma --font\n"> <" --device --mode"> ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: spids: [270 290] ) } ] ) } spids: [267] ) ] spids: [267] ) (AndOr children: [ (DBracket expr: (WordTest w:{($ VSub_Name "$COMPREPLY")}) ) (ControlFlow token: ) ] op_id: Op_DAmp ) ] spids: [-1 264] ) ] spids: [-1 306] ) (C {(_filedir)} {(SQ <"?(e)ps|pdf">)}) ] spids: [8] ) spids: [4 7] ) (C {(complete)} {(-F)} {(_fbgs)} {(fbgs)}) ] op_id: Op_DAmp ) ] )