1
0

zsh: update

This commit is contained in:
Konstantin Demin 2024-07-05 13:18:16 +03:00
parent 8283b6c752
commit e3ff1bcb69
Signed by: krd
GPG Key ID: 4D56F87A8BA65FD0
14 changed files with 124 additions and 44 deletions

View File

@ -44,6 +44,7 @@
!/.config/zsh/env/ld.so.zsh !/.config/zsh/env/ld.so.zsh
!/.config/zsh/env/pager.zsh !/.config/zsh/env/pager.zsh
!/.config/zsh/env/quilt.zsh !/.config/zsh/env/quilt.zsh
!/.config/zsh/env/sed.zsh
!/.config/zsh/env/xdg.zsh !/.config/zsh/env/xdg.zsh
!/.config/zsh/lib.zsh !/.config/zsh/lib.zsh
!/.config/zsh/lib/alternatives.zsh !/.config/zsh/lib/alternatives.zsh

View File

@ -20,7 +20,7 @@ steps:
} }
if find_fast ./ -type f -name '*.zwc' ; then if find_fast ./ -type f -name '*.zwc' ; then
echo 'found *.zwc' >&2 echo 'found *.zwc' >&2
find ./ -type f -name '*.zwc' find ./ -type f -name '*.zwc' | sort -V
exit 1 exit 1
fi fi
- | - |

View File

@ -1,21 +1,68 @@
#!/bin/zsh #!/bin/zsh
alias bud='buildah bud --isolation chroot --network host --format docker -f '
alias pod-run='podman run -e "TERM=${TERM:-linux}" --rm -it '
alias pod-images='podman images --format "table {{.ID}} {{.Repository}}:{{.Tag}} {{.Size}} {{.Created}} |{{.CreatedAt}}" '
alias pod-inspect='podman inspect '
alias pod-logs='podman logs '
typeset -Uga ZSHU_CNTR_SHELLS=( /bin/bash /bin/sh /bin/ash ) typeset -Uga ZSHU_CNTR_SHELLS=( /bin/bash /bin/sh /bin/ash )
typeset -ga ZSHU_CNTR_FALLBACK_SHELL=( /busybox/busybox sh ) typeset -ga ZSHU_CNTR_FALLBACK_SHELL=( /busybox/busybox sh )
alias bud='buildah bud --network=host -f '
function {
local i
for i ( run images ps inspect logs ) ; do
alias "pod-$i"="podman $i "
done
}
z-pod() { command podman "$@" ; } z-pod() { command podman "$@" ; }
alias podman='z-podman '
z-podman() {
case "${1:-}" in
run ) shift ; z-pod-run "$@" ;;
images ) shift ; z-pod-images "$@" ;;
ps ) shift ; z-pod-ps "$@" ;;
* ) z-pod "$@" ;;
esac
}
z-pod-run() { z-pod-run() {
z-pod run -e "TERM=${TERM:-linux}" --rm -it "$@" z-pod run -e "TERM=${TERM:-linux}" --rm -it "$@"
} }
z-pod-images() {
local have_flags=0
case "$1" in
-* ) have_flags=1 ;;
esac
if [ ${have_flags} = 1 ] ; then
z-pod images "$@"
else
z-pod images --format 'table {{.ID}} {{.Repository}}:{{.Tag}} {{.Size}} {{.Created}} |{{.CreatedAt}}' "$@"
fi
}
z-pod-ps() {
local have_flags=0
case "$1" in
-* ) have_flags=1 ;;
esac
if [ ${have_flags} = 1 ] ; then
z-pod ps "$@"
else
z-pod ps -a --sort names --format 'table {{.ID}} {{.Names}} {{.Image}} {{.CreatedHuman}} {{.Status}}' "$@"
fi
}
pod-images-grep() {
z-pod-images \
| {
if [ -z "$1" ] ; then
head
else
sed -En "1{p;D};\\${ZSHU_XSED}$1${ZSHU_XSED}p"
fi
}
}
## NB: naive. rewrite! ## NB: naive. rewrite!
pod-run-sh() { pod-run-sh() {
local -a cntr_opts=( --network=host --entrypoint='[]' --user=0:0 ) local -a cntr_opts=( --network=host --entrypoint='[]' --user=0:0 )
@ -39,40 +86,30 @@ pod-run-sh() {
z-pod-run ${cntr_opts[@]} "$@" ${shell[@]} z-pod-run ${cntr_opts[@]} "$@" ${shell[@]}
} }
pod-ps() { ## NB: naive. rewrite!
[ $# -ne 0 ] || set -- -a --format 'table {{.ID}} {{.Names}} {{.Image}} {{.CreatedHuman}} {{.Status}}'
command podman ps "$@"
}
sko-inspect() { sko-inspect() {
local i local i
i="${1:?}" ; shift i="${1:?}" ; shift
command skopeo inspect "$@" "docker://$i" command skopeo inspect "$@" "docker://$i"
} }
## NB: naive. rewrite!
sko-list-tags() { sko-list-tags() {
local i local i
i="${1:?}" ; shift i="${1:?}" ; shift
command skopeo list-tags "$@" "docker://$i" command skopeo list-tags "$@" "docker://$i"
} }
## NB: naive. rewrite!
pod-dive() { pod-dive() {
local i local i
i="${1:?}" ; shift i="${1:?}" ; shift
command dive "$@" "podman://$i" command dive "$@" "podman://$i"
} }
jq-visual() { jq-visual() { jq -C | "${PAGER:-cat}" ; }
command jq -C | less jq-config() { jq '.[].Config' ; }
} jq-tags() { jq -r '.Tags[]' ; }
jq-config() {
command jq '.[].Config'
}
jq-tags() {
command jq -r '.Tags[]'
}
alias dkr='docker ' alias dkr='docker '
alias dkr-run='dkr run -e "TERM=${TERM:-linux}" --rm -it ' alias dkr-run='dkr run -e "TERM=${TERM:-linux}" --rm -it '
@ -110,6 +147,7 @@ dkr-run-sh() {
z-dkr-run ${cntr_opts[@]} "$@" ${shell[@]} z-dkr-run ${cntr_opts[@]} "$@" ${shell[@]}
} }
## NB: naive. rewrite!
dkr-dive() { dkr-dive() {
local i local i
i="${1:?}" ; shift i="${1:?}" ; shift

View File

@ -1,20 +1,45 @@
#!/bin/zsh #!/bin/zsh
z-quilt() { command quilt "$@" ; }
quilt-series-strip-comments() { quilt-series-strip-comments() {
sed -E '/^[[:space:]]*(#|$)/d' "$@" sed -E '/^[[:space:]]*(#|$)/d' "$@"
} }
quilt-series-auto() { quilt-series-auto() {
[ -n "${1:?}" ] [ -n "${1:?}" ]
[ -d "$1" ] || return 1
find "$1/" -follow -type f -printf '%P\0' \ find "$1/" -follow -type f -printf '%P\0' \
| sed -zEn '/\.(diff|patch)$/p' \ | sed -zEn '/\.(diff|patch)$/p' \
| sort -zuV | xargs -0r -n1 | sort -zuV \
| xargs -0r printf '%s\n'
} }
krd-quilt() { krd-quilt() {
(( $+commands[quilt] )) || return 127 (( $+commands[quilt] )) || return 127
[ $# -gt 0 ] || return 1
local i
local -i n_opt=0
local -i o_continue=0
for i ; do
case "${i:?}" in
-c | --continue )
o_continue=1
;;
-* )
env printf 'unrecognized option: %q\n' "$1"
return 1
;;
* ) break ;;
esac
n_opt=$[n_opt+1]
done
[ ${n_opt} -eq 0 ] || shift ${n_opt}
[ $# -gt 0 ] || return 1
[ -n "${1:?}" ] [ -n "${1:?}" ]
local patchdir series tmp_series local patchdir series tmp_series
@ -29,17 +54,18 @@ krd-quilt() {
series="${patchdir}/series" series="${patchdir}/series"
if ! [ -f "${series}" ] ; then if ! [ -f "${series}" ] ; then
tmp_series=1 mkdir -p "$1/.pc" || return 1
series=$(mktemp) series="$1/.pc/krd-quilt-series"
touch "${series}" || return 1
quilt-series-auto "${patchdir}" > "${series}" quilt-series-auto "${patchdir}" > "${series}"
fi fi
elif [ -f "$1" ] ; then elif [ -f "$1" ] ; then
[ -s "$1" ] || return 2 [ -s "$1" ] || return 1
series="$1" series="$1"
patchdir=${series:h} patchdir=${series:h}
else else
return 3 return 1
fi fi
local r local r
@ -50,16 +76,19 @@ krd-quilt() {
QUILT_PATCHES="${patchdir}" QUILT_PATCHES="${patchdir}"
set +a set +a
command quilt pop -a ; echo if [ ${o_continue} -eq 0 ] ; then
z-quilt pop -a
echo
fi
r=0 r=0
while read -rs i ; do while read -rs i ; do
[ -n "$i" ] || continue [ -n "$i" ] || continue
k="${patchdir}/$i" k="${patchdir}/$i"
command quilt --fuzz=0 push "$k" z-quilt --fuzz=0 push "$k"
r=$? ; [ $r -eq 0 ] || exit $r r=$? ; [ $r -eq 0 ] || exit $r
command quilt refresh "$k" z-quilt refresh "$k"
r=$? ; [ $r -eq 0 ] || exit $r r=$? ; [ $r -eq 0 ] || exit $r
sed -E -i \ sed -E -i \
@ -68,12 +97,16 @@ krd-quilt() {
"$k" "$k"
rm -f "$k"'~' rm -f "$k"'~'
done <<< $(quilt-series-strip-comments "${series}") done <<< $(
if [ ${o_continue} -eq 1 ] ; then
z-quilt unapplied
else
quilt-series-strip-comments "${series}"
fi
)
exit $r exit $r
) )
r=$? r=$?
[ -z "${tmp_series}" ] || rm -f "${series}"
return $r return $r
} }

View File

@ -1,5 +1,10 @@
#!/bin/zsh #!/bin/zsh
BUILDAH_FORMAT=docker
BUILDAH_ISOLATION=chroot
typeset -x -m 'BUILDAH_*'
BUILD_IMAGE_NETWORK=host BUILD_IMAGE_NETWORK=host
BUILD_IMAGE_PUSH=0 BUILD_IMAGE_PUSH=0

View File

@ -16,7 +16,6 @@ z-gobin-fixup() {
## already in PATH? ## already in PATH?
[ "${path[(I)${gobin}]}" = 0 ] || return 0 [ "${path[(I)${gobin}]}" = 0 ] || return 0
path=( "${gobin}" ${path} ) path=( "${gobin}" ${path} )
hash -f
} }
z-gobin-fixup z-gobin-fixup

3
.config/zsh/env/sed.zsh vendored Normal file
View File

@ -0,0 +1,3 @@
#!/bin/zsh
typeset -r ZSHU_XSED=$'\027'

View File

@ -1,5 +1,5 @@
#!/bin/zsh #!/bin/zsh
chase() { setopt chase_dots chase_links ; } z-chase() { setopt chase_dots chase_links ; }
nochase() { unsetopt chase_dots chase_links ; } z-nochase() { unsetopt chase_dots chase_links ; }
nochase z-nochase

View File

@ -26,6 +26,7 @@ zstyle ':completion:*:kill:*' command 'ps -u ${USER} -o pid,%cpu,tty,cputime,cmd
autoload -Uz +X compinit && \ autoload -Uz +X compinit && \
compinit -i -C -d "${ZSHU[f_compdump]}" compinit -i -C -d "${ZSHU[f_compdump]}"
unset 'ZSHU[compdump_bash]'
if autoload -Uz +X bashcompinit ; then if autoload -Uz +X bashcompinit ; then
bashcompinit && ZSHU[compdump_bash]=1 bashcompinit && ZSHU[compdump_bash]=1
fi fi