hcloud.plugin.zsh
4055 bytes
1# hcloud plugin for oh-my-zsh
2# Hetzner Cloud CLI: https://github.com/hetznercloud/cli
3
4if (( ! $+commands[hcloud] )); then
5 return
6fi
7
8# If the completion file doesn't exist yet, we need to autoload it and
9# bind it to `hcloud`. Otherwise, compinit will have already done that.
10if [[ ! -f "$ZSH_CACHE_DIR/completions/_hcloud" ]]; then
11 typeset -g -A _comps
12 autoload -Uz _hcloud
13 _comps[hcloud]=_hcloud
14fi
15
16hcloud completion zsh 2> /dev/null >| "$ZSH_CACHE_DIR/completions/_hcloud" &|
17
18# Main alias
19alias hc='hcloud'
20
21# Context management
22alias hcctx='hcloud context'
23alias hcctxls='hcloud context list'
24alias hcctxu='hcloud context use'
25alias hcctxc='hcloud context create'
26alias hcctxd='hcloud context delete'
27alias hcctxa='hcloud context active'
28
29# Server management
30alias hcs='hcloud server'
31alias hcsl='hcloud server list'
32alias hcsc='hcloud server create'
33alias hcsd='hcloud server delete'
34alias hcsdesc='hcloud server describe'
35alias hcspoff='hcloud server poweroff'
36alias hcspon='hcloud server poweron'
37alias hcsr='hcloud server reboot'
38alias hcsreset='hcloud server reset'
39alias hcssh='hcloud server ssh'
40alias hcse='hcloud server enable-rescue'
41alias hcsdr='hcloud server disable-rescue'
42alias hcsip='hcloud server ip'
43
44# Server actions
45alias hcsa='hcloud server attach-iso'
46alias hcsda='hcloud server detach-iso'
47alias hcscip='hcloud server change-type'
48
49# Volume management
50alias hcv='hcloud volume'
51alias hcvl='hcloud volume list'
52alias hcvc='hcloud volume create'
53alias hcvd='hcloud volume delete'
54alias hcvdesc='hcloud volume describe'
55alias hcva='hcloud volume attach'
56alias hcvda='hcloud volume detach'
57alias hcvr='hcloud volume resize'
58
59# Network management
60alias hcn='hcloud network'
61alias hcnl='hcloud network list'
62alias hcnc='hcloud network create'
63alias hcnd='hcloud network delete'
64alias hcndesc='hcloud network describe'
65alias hcnas='hcloud network add-subnet'
66alias hcnds='hcloud network delete-subnet'
67alias hcnar='hcloud network add-route'
68alias hcndr='hcloud network delete-route'
69
70# Floating IP management
71alias hcfip='hcloud floating-ip'
72alias hcfipl='hcloud floating-ip list'
73alias hcfipc='hcloud floating-ip create'
74alias hcfipd='hcloud floating-ip delete'
75alias hcfipdesc='hcloud floating-ip describe'
76alias hcfipa='hcloud floating-ip assign'
77alias hcfipua='hcloud floating-ip unassign'
78
79# SSH key management
80alias hcsk='hcloud ssh-key'
81alias hcskl='hcloud ssh-key list'
82alias hcskc='hcloud ssh-key create'
83alias hcskd='hcloud ssh-key delete'
84alias hcskdesc='hcloud ssh-key describe'
85alias hcsku='hcloud ssh-key update'
86
87# Image management
88alias hci='hcloud image'
89alias hcil='hcloud image list'
90alias hcid='hcloud image delete'
91alias hcidesc='hcloud image describe'
92alias hciu='hcloud image update'
93
94# Firewall management
95alias hcfw='hcloud firewall'
96alias hcfwl='hcloud firewall list'
97alias hcfwc='hcloud firewall create'
98alias hcfwd='hcloud firewall delete'
99alias hcfwdesc='hcloud firewall describe'
100alias hcfwar='hcloud firewall add-rule'
101alias hcfwdr='hcloud firewall delete-rule'
102alias hcfwas='hcloud firewall apply-to-resource'
103alias hcfwrs='hcloud firewall remove-from-resource'
104
105# Load balancer management
106alias hclb='hcloud load-balancer'
107alias hclbl='hcloud load-balancer list'
108alias hclbc='hcloud load-balancer create'
109alias hclbd='hcloud load-balancer delete'
110alias hclbdesc='hcloud load-balancer describe'
111alias hclbu='hcloud load-balancer update'
112alias hclbas='hcloud load-balancer add-service'
113alias hclbds='hcloud load-balancer delete-service'
114alias hclbat='hcloud load-balancer add-target'
115alias hclbdt='hcloud load-balancer delete-target'
116
117# Certificate management
118alias hccert='hcloud certificate'
119alias hccertl='hcloud certificate list'
120alias hccertc='hcloud certificate create'
121alias hccertd='hcloud certificate delete'
122alias hccertdesc='hcloud certificate describe'
123alias hccertu='hcloud certificate update'
124
125# Datacenter and location info
126alias hcdc='hcloud datacenter list'
127alias hcloc='hcloud location list'
128alias hcst='hcloud server-type list'
129alias hcit='hcloud image list --type system'