From 7e671b08d148186c60ed311c88e797a60529a31c Mon Sep 17 00:00:00 2001 From: Shohei YOSHIDA Date: Sat, 15 Nov 2025 18:36:42 +0900 Subject: [PATCH] Add augeas tools --- src/_augmatch | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ src/_augparse | 56 ++++++++++++++++++++++++++++++++++++++++++ src/_augprint | 61 +++++++++++++++++++++++++++++++++++++++++++++ src/_augtool | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 251 insertions(+) create mode 100644 src/_augmatch create mode 100644 src/_augparse create mode 100644 src/_augprint create mode 100644 src/_augtool diff --git a/src/_augmatch b/src/_augmatch new file mode 100644 index 0000000..98c6e89 --- /dev/null +++ b/src/_augmatch @@ -0,0 +1,66 @@ +#compdef augmatch +# ------------------------------------------------------------------------------ +# Copyright (c) 2025 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 script for augmatch 1.14.1 (https://augeas.net/) +# +# ------------------------------------------------------------------------------ +# Authors +# ------- +# +# * Shohei Yoshida (https://github.com/syohex) +# +# ------------------------------------------------------------------------------ + +_augmatch_lens() { + local lenses=($(augtool --noload 'match /augeas/load/*/lens' | sed -e 's/.*@//')) + _values lenses $lenses +} + +_arguments \ + '(- *)'{-h,--help}'[show help message]' \ + '(-a --all)'{-a,--all}'[print all tree nodes, even ones without an associated value]' \ + '(-e --extract)'{-e,--extract}'[only print the parts of the tree that are matched with --match]' \ + \*{-I,--include=}'[add directory to the module loadpath]:dir:_files -/' \ + '(-l --lens)'{-l,--lens=}'[use lens for the given file]:lens:_augmatch_lens' \ + '(-L --print-lens)'{-L,--print-lens}'[print the name of lens]' \ + '(-m --match)'{-m,--match=}'[only print the parts of the tree that match]:expr' \ + '(-r --root)'{-r,--root=}'[use directory as the root of the filesystem]:dir:_files -/' \ + '(-S --nostdinc)'{-S,--nostdinc}'[do not search any of the default directories for lenses]' \ + '(-o --only-value)'{-o,--only-value}'[print only the value and not label or the path of nodes]' \ + '(-q --quiet)'{-q,--quiet}'[do not print anything]' \ + '*:: :_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 diff --git a/src/_augparse b/src/_augparse new file mode 100644 index 0000000..9d24102 --- /dev/null +++ b/src/_augparse @@ -0,0 +1,56 @@ +#compdef augparse +# ------------------------------------------------------------------------------ +# Copyright (c) 2025 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 script for augparse 1.14.1 (https://augeas.net/) +# +# ------------------------------------------------------------------------------ +# Authors +# ------- +# +# * Shohei Yoshida (https://github.com/syohex) +# +# ------------------------------------------------------------------------------ + +_arguments \ + '(- *)'{-h,--help}'[show help message]' \ + '(- *)--version[print version information and exit]' \ + \*{-I,--include=}'[add directory to the module loadpath]:dir:_files -/' \ + '(-t --trace)'{-t,--trace}'[print a trace of modules that are being loaded]' \ + '--nostdinc[do not search any of the default directories for modules]' \ + '--notypecheck[do not perform lens type checks]' \ + '*:: :_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 diff --git a/src/_augprint b/src/_augprint new file mode 100644 index 0000000..6e2f436 --- /dev/null +++ b/src/_augprint @@ -0,0 +1,61 @@ +#compdef augprint +# ------------------------------------------------------------------------------ +# Copyright (c) 2025 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 script for augprint 1.14.1 (https://augeas.net/) +# +# ------------------------------------------------------------------------------ +# Authors +# ------- +# +# * Shohei Yoshida (https://github.com/syohex) +# +# ------------------------------------------------------------------------------ + +_augprint_lens() { + local lenses=($(augtool --noload 'match /augeas/load/*/lens' | sed -e 's/.*@//')) + _values lenses $lenses +} + +_arguments \ + '(- *)'{-h,--help}'[show help message]' \ + '(-v --verbose)'{-v,--verbose}'[include the original numbered paths as comments in the output]' \ + '(-r --regexp)'{-r-,--regexp=-}'[generate regular expressions to match values]:num' \ + '(-l --lens)'{-l,--lens=}'[use lens for the given file]:lens:_augprint_lens' \ + '(-t --target)'{-t,--target=}'[generate the script as if its path was really targetfile]:file:_files' \ + '(-s --noseq)'{-s,--noseq}'[do not use "seq::*" in the output]' \ + '*:: :_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 diff --git a/src/_augtool b/src/_augtool new file mode 100644 index 0000000..fb62d2f --- /dev/null +++ b/src/_augtool @@ -0,0 +1,68 @@ +#compdef augtool +# ------------------------------------------------------------------------------ +# Copyright (c) 2025 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 script for augtool 1.14.1 (https://augeas.net/) +# +# ------------------------------------------------------------------------------ +# Authors +# ------- +# +# * Shohei Yoshida (https://github.com/syohex) +# +# ------------------------------------------------------------------------------ + +_arguments \ + '(- *)'{-h,--help}'[show help message]' \ + '(- *)--version[print version information and exit]' \ + '(-c --typecheck)'{-c,--typecheck}'[type check lenses]' \ + '(-b --backup)'{-b,--backup}'[preserve the original files with extension ".augsave"]' \ + '(-n --new)'{-n,--new}'[save changes in file with extension ".augnew"]' \ + '(-r --root)'{-r,--root=}'[use directory as the root of the filesystem]:dir:_files -/' \ + \*{-I,--include=}'[add directory to the module loadpath]:dir:_files -/' \ + '(-t --transform)'{-t,--transform=}'[add a file transform]:xfm' \ + \*{-l,--load-file=}'[load an individual file into the tree]:file:_files' \ + \*{-f,--file=}'[read commands from file]:file:_files' \ + '(-i --interactive)'{-i,--interactive}'[read commands from the terminal]' \ + '(-e --echo)'{-e,--echo}'[echo the commands before printing command file output]' \ + '(-s --autosave)'{-s,--autosave}'[automatically save all changes at the end of the session]' \ + '(-S --nostdinc)'{-S,--nostdinc}'[do not search any of the default directories for lenses]' \ + '(-L --noload)'{-L,--noload}'[do not load any files on startup]' \ + '(-A --noautoload)'{-A,--noautoload}'[do not load any lens modules]' \ + '--span[load span positions for nodes in the tree]' \ + '--timing[print how long executing each command take in milliseconds]'\ + '*:: :_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