1# ---------------------------------------------------------- #
2# Aliases and Completions for MicroK8s (https://microk8s.io) #
3# Author: Shaun Tabone (https://github.com/xontab)           #
4# ---------------------------------------------------------- #
5
6# Helper function to cache and load completions
7_microk8s_cache_completion() {
8  local cache="${ZSH_CACHE_DIR}/microk8s_$(echo $1)_completion"
9  if [[ ! -f $cache ]]; then
10    $2 $cache
11  fi
12
13  [[ -f $cache ]] && source $cache
14}
15
16# ---------------------------------------------------------- #
17# microk8s.enable                                            #
18# ALIAS: me                                                  #
19# ---------------------------------------------------------- #
20_microk8s_enable_get_command_list() {
21  microk8s.enable --help | tail -n +7 | awk '{$1=$1;print}'
22}
23
24_microk8s_enable() {
25   compadd -X "MicroK8s Addons" $(_microk8s_enable_get_command_list)
26}
27
28compdef _microk8s_enable microk8s.enable
29alias me='microk8s.enable'
30
31# ---------------------------------------------------------- #
32# microk8s.disable                                           #
33# ALIAS: mdi                                                 #
34# ---------------------------------------------------------- #
35_microk8s_disable_get_command_list() {
36  microk8s.disable --help | tail -n +7 | awk '{$1=$1;print}'
37}
38
39_microk8s_disable() {
40  compadd -X "MicroK8s Addons" $(_microk8s_disable_get_command_list)
41}
42
43compdef _microk8s_disable microk8s.disable
44alias mdi='microk8s.disable'
45
46# ---------------------------------------------------------- #
47# microk8s.kubectl                                           #
48# ALIAS: mk                                                  #
49# ---------------------------------------------------------- #
50_microk8s_kubectl_completion() {
51  if [ $commands[microk8s.kubectl] ]; then
52    microk8s.kubectl 2>/dev/null >/dev/null && microk8s.kubectl completion zsh | sed 's/__start_kubectl kubectl/__start_kubectl microk8s.kubectl/g' >$1
53  fi
54}
55
56_microk8s_cache_completion 'kubectl' _microk8s_kubectl_completion
57
58alias mk='microk8s.kubectl'
59
60# ---------------------------------------------------------- #
61# microk8s.helm                                              #
62# ALIAS: mh                                                  #
63# ---------------------------------------------------------- #
64_microk8s_helm_completion() {
65  if [ $commands[microk8s.helm] ]; then
66    microk8s.helm completion zsh | sed 's/__start_helm helm/__start_helm microk8s.helm/g' >$1
67  fi
68}
69
70_microk8s_cache_completion 'helm' _microk8s_helm_completion
71
72alias mh='microk8s.helm'
73
74# ---------------------------------------------------------- #
75# Other Aliases                                              #
76# ---------------------------------------------------------- #
77alias mco='microk8s.config'
78alias mct='microk8s.ctr'
79alias mis='microk8s.istio'
80alias mst='microk8s.start'
81alias msts='microk8s.status'
82alias msp='microk8s.stop'
83