diff --git a/Makefile b/Makefile index 7f5dce4..cffa424 100644 --- a/Makefile +++ b/Makefile @@ -2,12 +2,20 @@ NAME=pulseaudio-tcp PREFIX=/usr BINDIR=$(PREFIX)/bin APPDIR=$(PREFIX)/share/applications +COMPLETIONDIR=$(PREFIX)/share/bash-completion/completions DESTDIR= -.PHONY: all install-bin install-desktop install +.PHONY: all install-bash install-bin install-desktop install all: +install-bash: $(NAME).bash_completion + @install -d -m 755 "$(DESTDIR)$(COMPLETIONDIR)" + @install -m 644 \ + "$(NAME).bash_completion" \ + "$(DESTDIR)$(COMPLETIONDIR)/$(NAME)" + @echo "INFO: Bourne Again Shell completion for $(NAME) was installed to $(COMPLETIONDIR)" + install-bin: $(NAME) @install -d -m 755 "$(DESTDIR)$(BINDIR)" @install -m 755 "$(NAME)" "$(DESTDIR)$(BINDIR)"/"$(NAME)" @@ -24,7 +32,7 @@ install-desktop: $(NAME).desktop.in > "$(DESTDIR)$(APPDIR)"/"$(NAME)".desktop @echo "INFO: $(NAME).desktop was installed to $(APPDIR)" -install: install-bin install-desktop +install: install-bash install-bin install-desktop @if test -z "$(DESTDIR)" ; then \ if test -n "$$(which update-desktop-database)" ; then \ update-desktop-database "$(APPDIR)" ; \ diff --git a/pulseaudio-tcp.bash_completion b/pulseaudio-tcp.bash_completion new file mode 100644 index 0000000..cb46126 --- /dev/null +++ b/pulseaudio-tcp.bash_completion @@ -0,0 +1,22 @@ +_pulseaudio_tcp_completions() { + local cur options commands delete + + cur=${COMP_WORDS[COMP_CWORD]} + options=( "--debug" "--help" "--nogui" ) + commands=( "start" "stop" "status" "setup" "restart" ) + + for delete in "${COMP_WORDS[@]::${#COMP_WORDS[@]}-1}" ; do + options=("${options[@]/$delete}") + commands=("${commands[@]/$delete}") + done + + COMPREPLY=() + + case "$cur" in + '') mapfile -t COMPREPLY < <(compgen -W "${options[*]} ${commands[*]}" -- "$cur") ;; + -*) mapfile -t COMPREPLY < <(compgen -W "${options[*]}" -- "$cur") ;; + [^-]*) mapfile -t COMPREPLY < <(compgen -W "${commands[*]}" -- "$cur") ;; + esac + + return 0 +} && complete -F _pulseaudio_tcp_completions pulseaudio-tcp