#compdef bamrescue # SPDX-License-Identifier: ISC # bamrescue(1) completion for Zsh -*- shell-script -*- # # This file is part of bamrescue. # # Copyright (C) 2017-2018 Jérémie Roquet # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY # SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER # RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE # USE OR PERFORMANCE OF THIS SOFTWARE. _bamrescue_check() { _arguments \ {-q,--quiet}'[Do not output statistics, stop at first error]' \ '--threads=[Number of threads to use, 0 for auto (default: 0)]' \ '*:bam file:_files -g "*.bam(-.)"'A } _bamrescue_rescue() { _arguments \ '--threads=[Number of threads to use, 0 for auto (default: 0)]' \ '*:bam file:_files -g "*.bam(-.)"' } _bamrescue_command() { local -a _bamrescue_cmds _bamrescue_cmds=( 'check:Check BAM file for corruption' 'rescue:Keep only non-corrupted blocks of BAM file' ) if ((CURRENT == 1)); then _describe -t commands 'bamrescue commands' _bamrescue_cmds else local curcontext="$curcontext" cmd="${${_bamrescue_cmds[(r)$words[1]:*]%%:*}}" if (($#cmd)); then if (( $+functions[_bamrescue_$cmd] )); then _bamrescue_$cmd else _message "no options for $cmd" fi else _message "no more options" fi fi } _arguments \ {-h,--help}'[Show help text]' \ '--version[Show version]' \ '*::bamrescue commands:_bamrescue_command'