Add completions for lsblk, cal, blkid, and fallocate (util-linux)

This commit is contained in:
Aditi76117 2025-08-03 19:08:01 +05:30
parent 5f24f3bc42
commit 0867c7fe93
4 changed files with 275 additions and 0 deletions

59
src/_blkid Normal file
View File

@ -0,0 +1,59 @@
#compdef blkid
# ------------------------------------------------------------------------------
# Copyright (c) 2016 Github zsh-users - https://github.com/zsh-users
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the zsh-users nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Description
# -----------
#
# Completion for blkid (locate/print block device attributes) from util-linux
# https://man7.org/linux/man-pages/man8/blkid.8.html
# ------------------------------------------------------------------------------
# Authors
# -------
# * Aditi Sharma (https://github.com/Aditi76117)
# ------------------------------------------------------------------------------
_arguments \
'(-h --help)'{-h,--help}'[display help message and exit]' \
'(-V --version)'{-V,--version}'[display version information and exit]' \
'(-c --cache)'{-c+,--cache=}'[specify cache file]:cache file:_files' \
'(-o --output)'{-o+,--output=}'[specify output format]:format:(full value device export udev)' \
'--output-uuid[print only UUIDs]' \
'--output-label[print only labels]' \
'--match-token=[search for devices with specific tokens]:token (e.g. UUID= or LABEL=)' \
'--match-tag=[search for devices with a tag name]:tag name' \
'--probe[use low-level probing on devices]' \
'--match-types=[limit probing to specific filesystem types]:filesystem types' \
'(-d --no-encoding)'{-d,--no-encoding}'[do not encode non-printable characters]' \
'--list-one[print only the first device found]' \
'*:device:_files -g /dev'
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

69
src/_cal Normal file
View File

@ -0,0 +1,69 @@
#compdef cal
# ------------------------------------------------------------------------------
# Copyright (c) 2016 Github zsh-users - https://github.com/zsh-users
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the zsh-users nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Description
# -----------
#
# Completion for cal (calendar display) from util-linux
# https://man7.org/linux/man-pages/man1/cal.1.html
# ------------------------------------------------------------------------------
# Authors
# -------
# * Aditi Sharma (https://github.com/Aditi76117)
# ------------------------------------------------------------------------------
_arguments \
'(-h --help)'{-h,--help}'[display help message and exit]' \
'(-V --version)'{-V,--version}'[display version information and exit]' \
'(-j --julian)'{-j,--julian}'[display Julian days (days numbered from Jan 1)]' \
'(-m --monday)'{-m,--monday}'[weeks start on Monday]' \
'(-s --sunday)'{-s,--sunday}'[weeks start on Sunday]' \
'(-y --year)'{-y,--year}'[display the whole year]' \
'(-3 --three)'{-3,--three}'[display previous, current and next month]' \
'(-1 --one)'{-1,--one}'[display only current month (default)]' \
'(-A --after)'{-A+,--after=}'[months to display after current]:months after' \
'(-B --before)'{-B+,--before=}'[months to display before current]:months before' \
'(-C --center)'{-C+,--center=}'[months to display before and after current]:months around' \
'*::arguments:->args'
case $state in
args)
# Allow optional [month] [year] arguments
if (( CURRENT == 2 )); then
_message 'optional month (1-12)'
elif (( CURRENT == 3 )); then
_message 'optional year (e.g. 2025)'
fi
;;
esac
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

58
src/_fallocate Normal file
View File

@ -0,0 +1,58 @@
#compdef fallocate
# ------------------------------------------------------------------------------
# Copyright (c) 2016 Github zsh-users - https://github.com/zsh-users
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the zsh-users nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion for fallocate (preallocate space to a file) from util-linux
# https://man7.org/linux/man-pages/man1/fallocate.1.html
# ------------------------------------------------------------------------------
# Authors
# -------
# * Aditi Sharma (https://github.com/Aditi76117)
# ------------------------------------------------------------------------------
_arguments \
'(-h --help)'{-h,--help}'[display help message and exit]' \
'(-V --version)'{-V,--version}'[display version information and exit]' \
'(-l --length)'{-l+,--length=}'[specify length of the allocation]:length (e.g. 1G, 512M)' \
'(-o --offset)'{-o+,--offset=}'[start offset for allocation]:offset (e.g. 0, 1K)' \
'--dig-holes[detect and punch holes in the range]' \
'--punch-hole[punch holes (deallocate space)]' \
'--collapse-range[remove a range of bytes and move later bytes forward]' \
'--zero-range[zero and optionally deallocate space]' \
'--keep-size[do not extend file size beyond current size]' \
'--insert-range[insert space into file shifting existing data]' \
'*:filename:_files'
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

89
src/_lsblk Normal file
View File

@ -0,0 +1,89 @@
#compdef lsblk
# ------------------------------------------------------------------------------
# Copyright (c) 2016 Github zsh-users - https://github.com/zsh-users
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the zsh-users nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Description
# -----------
#
# Completion for lsblk (list block devices) from util-linux
#
# https://man7.org/linux/man-pages/man8/lsblk.8.html
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Aditi Sharma (https://github.com/Aditi76117)
#
# ------------------------------------------------------------------------------
_arguments \
'(-h --help)'{-h,--help}'[display help message and exit]' \
'(-V --version)'{-V,--version}'[display version information and exit]' \
'--noheadings[do not print headings]' \
'--raw[use raw output format]' \
'--pairs[use key="value" output format]' \
'--json[use JSON output format]' \
'--inverse[use inverse dependencies tree]' \
'--ascii[use ASCII characters only for tree formatting]' \
'--scsi[output SCSI information]' \
'--fs[output info about filesystems]' \
'--topology[output topology information]' \
'--perms[output permission information]' \
'--paths[print full device paths]' \
'--list[use list format output]' \
'(-b --bytes)'{-b,--bytes}'[print sizes in bytes]' \
'(-d --nodeps)'{-d,--nodeps}'[dont print slaves or holders]' \
'(-D --discard)'{-D,--discard}'[print discard capabilities]' \
'(-E --dedup)'{-E,--dedup}'[deduplicate output by major:minor]' \
'(-e --exclude)'{-e+,--exclude=}'[exclude devices by name]:device names' \
'(-f --fs)'{-f,--fs}'[output info about filesystems]' \
'(-i --ascii)'{-i,--ascii}'[use ASCII characters only for tree formatting]' \
'(-J --json)'{-J,--json}'[use JSON output format]' \
'(-l --list)'{-l,--list}'[use list format output]' \
'(-m --perms)'{-m,--perms}'[output permission information]' \
'(-n --noheadings)'{-n,--noheadings}'[dont print headings]' \
'(-o --output)'{-o+,--output=}'[specify columns to output]:columns:_lsblk_columns' \
'(-O --output-all)'{-O,--output-all}'[output all available columns]' \
'(-P --pairs)'{-P,--pairs}'[use key="value" output format]' \
'(-r --raw)'{-r,--raw}'[use raw output format]' \
'(-s --inverse)'{-s,--inverse}'[use inverse dependencies tree]' \
'(-S --scsi)'{-S,--scsi}'[output SCSI information]' \
'(-t --topology)'{-t,--topology}'[output topology information]' \
'(-x --sort)'{-x+,--sort=}'[sort output by column]:column:_lsblk_columns' \
'*:device:_files -g /dev'
# Helper function for --output and --sort columns
_lsblk_columns() {
_values 'columns' \
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT UUID LABEL MODEL SERIAL
}
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et