mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-05-22 04:51:12 +02:00
add lxc plugin
This commit is contained in:
parent
d848c94804
commit
fb24126672
2 changed files with 171 additions and 0 deletions
11
plugins/lxc/README.md
Normal file
11
plugins/lxc/README.md
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# lxc
|
||||||
|
|
||||||
|
This plugin adds completion for the Linux Containers CLI tool.
|
||||||
|
|
||||||
|
To use it, add `lxc` to the plugins array in your zshrc file:
|
||||||
|
|
||||||
|
```zsh
|
||||||
|
plugins=(... lxc)
|
||||||
|
```
|
||||||
|
|
||||||
|
Updated on August 14th, 2017.
|
||||||
160
plugins/lxc/_lxc
Normal file
160
plugins/lxc/_lxc
Normal file
|
|
@ -0,0 +1,160 @@
|
||||||
|
#compdef lxc-start lxc-stop lxc-console lxc-restart lxc-create lxc-destroy lxc-monitor lxc-cgroup lxc-checkpoint lxc-execute lxc-freeze lxc-unfreeze lxc-info lxc-netstat lxc-ps lxc-wait
|
||||||
|
#=====================================================================================================
|
||||||
|
# Copied from https://gist.github.com/sabottenda/9870189/e0c4d5b999441d0c67562b068ebdf79ea8374773
|
||||||
|
# original source is here: https://lists.linuxcontainers.org/pipermail/lxc-devel/2010-April/001172.html
|
||||||
|
#=====================================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
_lxc_containers() {
|
||||||
|
local -a containers
|
||||||
|
containers=( $(/bin/ls /var/lib/lxc) )
|
||||||
|
compadd "$@" -a containers
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
_lxc_common_opts=(
|
||||||
|
'(-o --logfile)'{-o,--logfile=}'[Output log to FILE instead of stderr]:logfile:_files'
|
||||||
|
'(-l --logpriority)'{-l,--logpriority=}'[Set log priority to LEVEL]:level:'
|
||||||
|
'(-q --quiet)'{-q,--quiet}'[Dont produce any output]'
|
||||||
|
'(-h --help)'{-h,--help}'[Help list]'
|
||||||
|
'--usage[Give a short usage message]'
|
||||||
|
)
|
||||||
|
|
||||||
|
_lxc_name_opt=(
|
||||||
|
'(-n --name)'{-n,--name=}'[Name of the container]:name:_lxc_containers'
|
||||||
|
)
|
||||||
|
|
||||||
|
_lxc_start_opts=(
|
||||||
|
'(-d --daemon)'{-d,--daemon}'[Daemonize the container]'
|
||||||
|
'(-f --rcfile)'{-f,--rcfile=}'[Load configuration file FILE]:config:_files'
|
||||||
|
'(-s --define)'{-s,--define}'[Assign VAL to configuration variable KEY]'
|
||||||
|
)
|
||||||
|
|
||||||
|
_lxc_console_opts=(
|
||||||
|
'(-t --tty)'{-t,--tty=}'[Console TTY number]'
|
||||||
|
'(-e --escape)'{-e,--escape=}'[Prefix for escape command]'
|
||||||
|
)
|
||||||
|
|
||||||
|
_lxc_restart_opts=(
|
||||||
|
'(-p --pause)'{-p,--pause}'[Do not release the container after the restart]'
|
||||||
|
'(-d --directory)'{-d,--directory=}'[Name of statefile]:name:_files'
|
||||||
|
'(-f --rcfile)'{-f,--rcfile=}'[Load configuration file FILE]:config:_files'
|
||||||
|
'(-s --define)'{-s,--define}'[Assign VAL to configuration variable KEY]'
|
||||||
|
)
|
||||||
|
|
||||||
|
_lxc_create_opts=(
|
||||||
|
'(-n --name)'{-n,--name=}'[Name of the container]:name'
|
||||||
|
'(-f --config)'{-f,--config=}'[Load configuration file FILE]:config:_files'
|
||||||
|
'(-t --template)'{-t,--template=}'[LXC template script]:tpl:_files'
|
||||||
|
'(-h --help)'{-h,--help}'[Help list]'
|
||||||
|
)
|
||||||
|
|
||||||
|
_lxc_checkpoint_opts=(
|
||||||
|
'(-k --kill)'{-k,--kill}'[Stop the container after the checkpoint]'
|
||||||
|
'(-p --pause)'{-p,--pause}'[Dont unfreeze the container after the checkpoint]'
|
||||||
|
'(-d --directory)'{-d,--directory=}'[Where to store the statefile]:statefile:_files'
|
||||||
|
)
|
||||||
|
|
||||||
|
_lxc_execute_opts=(
|
||||||
|
'(-f --rcfile)'{-f,--rcfile=}'[Load configuration file FILE]:config:_files'
|
||||||
|
'(-s --define)'{-s,--define}'[Assign VAL to configuration variable KEY]'
|
||||||
|
)
|
||||||
|
|
||||||
|
_lxc_ps_opts=(
|
||||||
|
'--help[Display the help]'
|
||||||
|
'--usage[Display the command usage]'
|
||||||
|
'--name[Display processes related to given containers. Containers are identified by a comma separated list of their names.]'
|
||||||
|
'--lxc[Display processes related to all LXC containers]'
|
||||||
|
)
|
||||||
|
|
||||||
|
_lxc_wait_opts=(
|
||||||
|
'(-s --state)'{-s,--state=}'[ORed states to wait for: STOPPED, STARTING, RUNNING, STOPPING, ABORTING, FREEZING, FROZEN]:state'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Dispatcher
|
||||||
|
|
||||||
|
_lxc() {
|
||||||
|
case "$service" in
|
||||||
|
lxc-start)
|
||||||
|
_arguments -s : \
|
||||||
|
"$_lxc_name_opt[@]" \
|
||||||
|
"$_lxc_start_opts[@]" \
|
||||||
|
"$_lxc_common_opts[@]"
|
||||||
|
;;
|
||||||
|
lxc-stop)
|
||||||
|
_arguments -s : \
|
||||||
|
"$_lxc_name_opt[@]" \
|
||||||
|
"$_lxc_common_opts[@]" \
|
||||||
|
;;
|
||||||
|
lxc-console)
|
||||||
|
_arguments -s : \
|
||||||
|
"$_lxc_name_opt[@]" \
|
||||||
|
"$_lxc_console_opts[@]" \
|
||||||
|
"$_lxc_common_opts[@]"
|
||||||
|
;;
|
||||||
|
lxc-restart)
|
||||||
|
_arguments -s : \
|
||||||
|
"$_lxc_name_opt[@]" \
|
||||||
|
"$_lxc_restart_opts[@]" \
|
||||||
|
"$_lxc_common_opts[@]"
|
||||||
|
;;
|
||||||
|
lxc-create)
|
||||||
|
_arguments -s : "$_lxc_create_opts[@]"
|
||||||
|
;;
|
||||||
|
lxc-destroy)
|
||||||
|
_arguments -s : "$_lxc_name_opt[@]"
|
||||||
|
;;
|
||||||
|
lxc-monitor)
|
||||||
|
_arguments -s : \
|
||||||
|
"$_lxc_name_opt[@]" \
|
||||||
|
"$_lxc_common_opts[@]"
|
||||||
|
;;
|
||||||
|
lxc-cgroup)
|
||||||
|
_arguments -s : \
|
||||||
|
"$_lxc_name_opt[@]" \
|
||||||
|
"$_lxc_common_opts[@]"
|
||||||
|
;;
|
||||||
|
lxc-checkpoint)
|
||||||
|
_arguments -s : \
|
||||||
|
"$_lxc_name_opt[@]" \
|
||||||
|
"$_lxc_checkpoint_opts[@]" \
|
||||||
|
"$_lxc_common_opts[@]"
|
||||||
|
;;
|
||||||
|
lxc-execute)
|
||||||
|
_arguments -s : \
|
||||||
|
"$_lxc_name_opt[@]" \
|
||||||
|
"$_lxc_execute_opts[@]" \
|
||||||
|
"$_lxc_common_opts[@]"
|
||||||
|
;;
|
||||||
|
lxc-freeze)
|
||||||
|
_arguments -s : \
|
||||||
|
"$_lxc_name_opt[@]" \
|
||||||
|
"$_lxc_common_opts[@]"
|
||||||
|
;;
|
||||||
|
lxc-unfreeze)
|
||||||
|
_arguments -s : \
|
||||||
|
"$_lxc_name_opt[@]" \
|
||||||
|
"$_lxc_common_opts[@]"
|
||||||
|
;;
|
||||||
|
lxc-info)
|
||||||
|
_arguments -s : \
|
||||||
|
"$_lxc_name_opt[@]" \
|
||||||
|
"$_lxc_common_opts[@]"
|
||||||
|
;;
|
||||||
|
lxc-netstat)
|
||||||
|
_arguments -s : "$_lxc_name_opt[@]"
|
||||||
|
;;
|
||||||
|
lxc-ps)
|
||||||
|
_arguments -s : "$_lxc_ps_opts[@]"
|
||||||
|
;;
|
||||||
|
lxc-wait)
|
||||||
|
_arguments -s : \
|
||||||
|
"$_lxc_name_opt[@]" \
|
||||||
|
"$_lxc_wait_opts[@]"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
return 1
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
_lxc "$@"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue