#!/bin/bash # # koha-common.bash-completion script for koha-* commands # # This file is part of Koha. # # Copyright 2013 Universidad Nacional de Cordoba # Tomas Cohen Arazi # # Koha is free software; you can redistribute it and/or modify it under the # terms of the GNU General Public License as published by the Free Software # Foundation; either version 3 of the License, or (at your option) any later # version. # # Koha is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with Koha; if not, see . _build_substract_switches() { local substract for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do if [[ ${COMP_WORDS[i]} == -* ]]; then substract="$substract -e ${COMP_WORDS[i]}" fi done echo "$substract" } _build_substract_instances() { local substract for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do substract="$substract -e ${COMP_WORDS[i]}" done echo "$substract" } _koha_list_cmd() { local filter=$1 local cur substract instancelist _get_comp_words_by_ref cur # Build a list of the already used words substract=`_build_substract_instances` if [[ "$substract" != "" ]]; then instancelist=$( koha-list $filter | grep -v -x $substract ) else instancelist=$( koha-list $filer ) fi COMPREPLY=( $(compgen -W "$instancelist" -- $cur ) ) } _koha_email_disable() { _koha_list_cmd "--email" return 0 } complete -F _koha_email_disable koha-email-disable _koha_email_enable() { _koha_list_cmd "--noemail" return 0 } complete -F _koha_email_enable koha-email-enable _koha_sip_enabled_instances() { _koha_list_cmd "--sip" return 0 } # koha-*-sip autocomplete with sip-enabled instances complete -F _koha_sip_enabled_instances koha-start-sip complete -F _koha_sip_enabled_instances koha-restart-sip complete -F _koha_sip_enabled_instances koha-stop-sip _koha_sip_disabled() { _koha_list_cmd "--nosip" return 0 } # koha-enable-sip autocompletes with sip-disabled instances complete -F _koha_sip_disabled koha-enable-sip _koha_disabled_instances() { _koha_list_cmd "--disabled" return 0 } _koha_enabled_instances() { _koha_list_cmd "--enabled" return 0 } # koha-enable autocompletes with disabled instances complete -F _koha_disabled_instances koha-enable # koha-disable autocompletes with enabled instances complete -F _koha_enabled_instances koha-disable # koha-*-zebra autocomplete with enabled instances complete -F _koha_enabled_instances koha-start-zebra complete -F _koha_enabled_instances koha-restart-zebra complete -F _koha_enabled_instances koha-stop-zebra _koha_list() { local cur opts substract COMPREPLY=() _get_comp_words_by_ref cur opts="--enabled --disabled --email --noemail --sip --nosip --help -h" # Build a list of the already used option switches for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do if [[ ${COMP_WORDS[i]} == -* ]]; then case ${COMP_WORDS[i]} in --disabled) substract="$substract -e --enabled"; ;; --enabled) substract="$substract -e --disabled"; ;; --email) substract="$substract -e --noemail"; ;; --noemail) substract="$substract -e --email"; ;; --sip) substract="$substract -e --nosip"; ;; --nosip) substract="$substract -e --sip"; ;; --help) substract="$substract -e -h"; ;; -h) substract="$substract -e --help"; ;; esac substract="$substract -e ${COMP_WORDS[i]}" fi done if [[ "$substract" != "" ]]; then opts=$( echo $opts | sed -e 's/ /\n/g' | grep -v -x $substract ) fi COMPREPLY=( $(compgen -W "$opts" -- $cur ) ) return 0 } complete -F _koha_list koha-list # Local variables: # mode: shell-script # sh-basic-offset: 4 # sh-indent-comment: t # indent-tabs-mode: nil # End: # ex: ts=4 sw=4 et filetype=sh