Browse Source

Add bash completion module

Alois Mahdal 9 years ago
parent
commit
8aa0b33a9e
2 changed files with 27 additions and 0 deletions
  1. 5
    0
      mkit/config.ini
  2. 22
    0
      src/complete.bash

+ 5
- 0
mkit/config.ini View File

8
 [lists]
8
 [lists]
9
 
9
 
10
     group = bin
10
     group = bin
11
+    group = etc_bc
11
     group = libexec
12
     group = libexec
12
     group = share
13
     group = share
13
 
14
 
28
     libexec = [ENV:PREFIX]/libexec/saturnin
29
     libexec = [ENV:PREFIX]/libexec/saturnin
29
     share   = [ENV:PREFIX]/share/saturnin
30
     share   = [ENV:PREFIX]/share/saturnin
30
     etc     = /etc/saturnin
31
     etc     = /etc/saturnin
32
+    etc_bc  = /etc/bash_completion.d
31
 
33
 
32
 [vars]
34
 [vars]
33
     __SATURNIN_CACHE_HOME__     = $HOME/.local/share/saturnin
35
     __SATURNIN_CACHE_HOME__     = $HOME/.local/share/saturnin
40
 [files:bin]
42
 [files:bin]
41
     src/bin/saturnin                        = saturnin
43
     src/bin/saturnin                        = saturnin
42
 
44
 
45
+[files:etc_bc]
46
+    src/complete.bash                       = saturnin.bash
47
+
43
 [files:libexec]
48
 [files:libexec]
44
     src/libexec/saturnin-au                 = saturnin-au
49
     src/libexec/saturnin-au                 = saturnin-au
45
     src/libexec/saturnin-clip               = saturnin-clip
50
     src/libexec/saturnin-clip               = saturnin-clip

+ 22
- 0
src/complete.bash View File

1
+
2
+__saturnin() {
3
+    local cur prev opts
4
+    COMPREPLY=()
5
+    cur="${COMP_WORDS[COMP_CWORD]}"
6
+    prev="${COMP_WORDS[COMP_CWORD-1]}"
7
+    opts="--help --verbose --debug --version --version-semver"
8
+
9
+    case "$cur" in
10
+        --*)
11
+            COMPREPLY=(
12
+                $(compgen -W "$opts" -- ${cur})
13
+            )
14
+            ;;
15
+        *)
16
+            COMPREPLY=(
17
+                $(compgen -W "$(saturnin _ls_subcommands)" ${cur})
18
+            )
19
+    esac
20
+}
21
+
22
+complete -F __saturnin saturnin