0
|
1 # bins completion for bash |
|
2 #-*- mode: shell-script;-*- |
|
3 _bins() |
|
4 { |
|
5 local cur prev tempdir |
|
6 |
|
7 COMPREPLY=() |
|
8 cur=${COMP_WORDS[COMP_CWORD]} |
|
9 prev=${COMP_WORDS[COMP_CWORD-1]} |
|
10 |
|
11 case "$prev" in |
|
12 -f) |
|
13 _filedir |
|
14 return 0 |
|
15 ;; |
|
16 -o) |
|
17 COMPREPLY=( $( compgen -W 'scaled copied custom' -- $cur ) ) |
|
18 return 0 |
|
19 ;; |
|
20 -c) |
|
21 conffile=$HOME/.bins/binsrc |
|
22 for (( i=1; i < COMP_CWORD; i++ )); do |
|
23 if [[ "${COMP_WORDS[i]}" == -f ]]; then |
|
24 conffile=${COMP_WORDS[i+1]} |
|
25 break |
|
26 fi |
|
27 done |
|
28 COMPREPLY=( \ |
|
29 $( awk -F'"' '/<colors style="/ {print $2}' $conffile | grep "^$cur" ) \ |
|
30 $( awk -F"'" "/<colors style='/ {print $2}" $conffile | grep "^$cur" ) \ |
|
31 ) |
|
32 return 0 |
|
33 ;; |
|
34 -t) |
|
35 _filedir -d |
|
36 return 0 |
|
37 ;; |
|
38 -r) |
|
39 COMPREPLY=( $( compgen -W 'dirs pictures dirs,pictures' -- $cur ) ) |
|
40 return 0 |
|
41 ;; |
|
42 -s) |
|
43 tempdir=/usr/share/bins |
|
44 for (( i=1; i < COMP_CWORD; i++ )); do |
|
45 if [[ "${COMP_WORDS[i]}" == -t ]]; then |
|
46 tempdir=${COMP_WORDS[i+1]} |
|
47 break |
|
48 fi |
|
49 done |
|
50 COMPREPLY=( $( find $tempdir -type d -maxdepth 1 -name templates.* | \ |
|
51 sed -e "s|$tempdir/templates.||" | grep "^$cur" ) ) |
|
52 return 0 |
|
53 ;; |
|
54 esac |
|
55 |
|
56 if [[ "$cur" == -* ]]; then |
|
57 COMPREPLY=( $( compgen -W '-f -o -d -c -s -t -p -r -e -i -n -v -h' -- $cur ) ) |
|
58 else |
|
59 _filedir -d |
|
60 fi |
|
61 |
|
62 } |
|
63 complete -F _bins bins |