diff options
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r-- | pkgs/os-specific/linux/upstart/default.nix | 8 | ||||
-rw-r--r-- | pkgs/os-specific/linux/upstart/upstart-bash-completion | 18 |
2 files changed, 26 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/upstart/default.nix b/pkgs/os-specific/linux/upstart/default.nix index 07bc3e6fe757..cb18679dfe5c 100644 --- a/pkgs/os-specific/linux/upstart/default.nix +++ b/pkgs/os-specific/linux/upstart/default.nix @@ -1,5 +1,8 @@ {stdenv, fetchurl}: +let bashCompletion = ./upstart-bash-completion; +in + stdenv.mkDerivation { name = "upstart-0.3.0"; @@ -26,6 +29,11 @@ stdenv.mkDerivation { interfaceVersion = 1; }; + postInstall = '' + t=$out/etc/bash_completion.d + ensureDir $t; cp ${bashCompletion} $t/upstart + ''; + meta = { homepage = "http://upstart.ubuntu.com/"; description = "An event-based replacement for the /sbin/init daemon"; diff --git a/pkgs/os-specific/linux/upstart/upstart-bash-completion b/pkgs/os-specific/linux/upstart/upstart-bash-completion new file mode 100644 index 000000000000..f47d38c90ad2 --- /dev/null +++ b/pkgs/os-specific/linux/upstart/upstart-bash-completion @@ -0,0 +1,18 @@ +_upstart_comp_list(){ + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + if [ $COMP_CWORD -eq 1 ]; then + COMPREPLY=( $(compgen -o filenames -W "$@" $cur) ) + fi +} + +_upstart_complete() { _upstart_comp_list "$(initctl list 2>&1 | grep -E "$1" | cut -f2 -d ' ')"; } + +_waiting(){ _upstart_complete "(waiting|instance)"; } +_running(){ _upstart_complete "(running|instance)"; } +_jobs(){ _upstart_comp_list "$(ls -1 /etc/event.d 2> /dev/null)"; } + +complete -F _jobs status +complete -F _waiting start +complete -F _running stop +complete -F _running restart |