diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2015-09-16 22:18:48 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2015-09-16 22:18:48 +0200 |
commit | a38d9d1ca8a11a10b73a1034730248355787025d (patch) | |
tree | a5a9da1c088db3c3e76c6f151dd91e9539408402 /nixos | |
parent | 937741c9f3e5bbfddb751a39a19344995af3629e (diff) | |
download | nixlib-a38d9d1ca8a11a10b73a1034730248355787025d.tar nixlib-a38d9d1ca8a11a10b73a1034730248355787025d.tar.gz nixlib-a38d9d1ca8a11a10b73a1034730248355787025d.tar.bz2 nixlib-a38d9d1ca8a11a10b73a1034730248355787025d.tar.lz nixlib-a38d9d1ca8a11a10b73a1034730248355787025d.tar.xz nixlib-a38d9d1ca8a11a10b73a1034730248355787025d.tar.zst nixlib-a38d9d1ca8a11a10b73a1034730248355787025d.zip |
nixos-container: Add bash completion for "nixos-container" command
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/virtualisation/containers.nix | 6 | ||||
-rw-r--r-- | nixos/modules/virtualisation/nixos-container-completion.sh | 33 |
2 files changed, 39 insertions, 0 deletions
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix index 8f881d760706..8d12c5a57fd9 100644 --- a/nixos/modules/virtualisation/containers.nix +++ b/nixos/modules/virtualisation/containers.nix @@ -12,6 +12,12 @@ let perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl"; su = "${pkgs.shadow.su}/bin/su"; inherit (pkgs) utillinux; + + postInstall = '' + t=$out/etc/bash_completion.d + mkdir -p $t + cp ${./nixos-container-completion.sh} $t/nixos-container + ''; }; # The container's init script, a small wrapper around the regular diff --git a/nixos/modules/virtualisation/nixos-container-completion.sh b/nixos/modules/virtualisation/nixos-container-completion.sh new file mode 100644 index 000000000000..0fe8ab811a17 --- /dev/null +++ b/nixos/modules/virtualisation/nixos-container-completion.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +_nixos-container() { + local cur prev opts + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + opts="list create destroy start stop status update login root-login run show-ip show-host-key" + startstop_opts=$(nixos-container list) + update_opts="--config" + + if [[ "$prev" == "nixos-container" ]] + then + COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) + return 0 + fi + + if [[ $(echo "$opts" | grep "$prev") ]] + then + if [[ "$prev" == "start" || "$prev" == "stop" ]] + then + COMPREPLY=( $(compgen -W "${startstop_opts}" -- ${cur}) ) + return 0 + elif [[ "$prev" == "update" ]] + then + COMPREPLY=( $(compgen -W "${update_opts}" -- ${cur}) ) + return 0 + fi + fi +} + +complete -F _nixos-container nixos-container + |