improve next-in-path handling, fix line endings

This commit is contained in:
Alexander Gehrke 2026-01-11 15:33:53 +01:00
parent f546b49599
commit 31a59f0207
14 changed files with 62 additions and 48 deletions

View file

@ -2,6 +2,7 @@
#dep:g8
source ${$(realpath "$0"):h:h}/lib/next-in-path.zsh
G8=$(next-in-path g8 $0)
if (( $? != 0 )); then exit 1; fi
args=()
zparseopts -D -E \

View file

@ -2,12 +2,19 @@
# Usage: next-in-path <program name> <current $0>
typeset -U path
next-in-path() {
entries=( $(which -a $1) )
index=${entries[(ie)$2]}
local entries=( $(which -a $1) )
local index=${entries[(ie)$2]}
local result
if [[ $index -le ${#entries} ]]; then
# found $0, use next entry
echo $entries[$((index + 1))]
result=$entries[$((index + 1))]
else
echo $entries[1]
result=$entries[1]
fi
if [[ -n $result ]]; then
echo $result
else
return 1
fi
}

View file

@ -9,4 +9,6 @@ fi
envwrapconf=${XDG_CONFIG_HOME:-$HOME/.config}/envwrap/$program
[[ -e $envwrapconf ]] && source $envwrapconf
$(next-in-path "$program" $0) "$@"
next=$(next-in-path "$program" $0)
if (( $? != 0 )); then exit 1; fi
$next "$@"

View file

@ -1,4 +1,6 @@
#!/bin/zsh
source ${$(realpath "$0"):h:h}/lib/next-in-path.zsh
export PASSWORD_STORE_ENABLE_EXTENSIONS=true
$(next-in-path pass $0) $@
next=$(next-in-path pass $0)
if (( $? != 0 )); then exit 1; fi
$next $@

View file

@ -1,5 +1,5 @@
#!/bin/zsh
#dep:xi xbps-checkvers ag
#dep:xi xbps-checkvers rg
source ${$(realpath "$0"):h:h}/lib/common.zsh
@ -62,7 +62,7 @@ else
succeed "on $branch"
fi
packages=( $(ag -G 'template' restricted=yes srcpkgs/ | cut -d/ -f 2 | sort -u) )
packages=( $(rg -g 'template' restricted=yes srcpkgs/ | cut -d/ -f 2 | sort -u) )
version() { grep -Poe '(?<=^version=).*$' srcpkgs/$1/template }
install_restricted() {

View file

@ -1,4 +1,6 @@
#!/bin/zsh
#dep:abcde
source ${$(realpath "$0"):h:h}/lib/next-in-path.zsh
$(next-in-path abcde $0) -c ${XDG_CONFIG_HOME:-$HOME/.config}/abcde/abcde.conf $@
next=$(next-in-path abcde $0)
if (( $? != 0 )); then exit 1; fi
$next -c ${XDG_CONFIG_HOME:-$HOME/.config}/abcde/abcde.conf $@

View file

@ -1,4 +1,6 @@
#!/bin/zsh
#dep:mbsync
source ${$(realpath "$0"):h:h}/lib/next-in-path.zsh
$(next-in-path mbsync $0) -c ${XDG_CONFIG_HOME:-$HOME/.config}/mbsyncrc $@
next=$(next-in-path mbsync $0)
if (( $? != 0 )); then exit 1; fi
$next -c ${XDG_CONFIG_HOME:-$HOME/.config}/mbsyncrc $@

View file

@ -1,4 +1,6 @@
#!/bin/zsh
#dep:mvn
source ${$(realpath "$0"):h:h}/lib/next-in-path.zsh
$(next-in-path mvn $0) -gs $XDG_CONFIG_HOME/maven/settings.xml $@
next=$(next-in-path mvn $0)
if (( $? != 0 )); then exit 1; fi
$next -gs $XDG_CONFIG_HOME/maven/settings.xml $@

View file

@ -1,5 +1,12 @@
#!/bin/zsh
#dep:node
local SELF=$(realpath "$0")
source ${$(realpath "$0"):h:h}/lib/next-in-path.zsh
export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
$(next-in-path node $0) $@
NEXT=$(next-in-path node $0)
if (( $? != 0 )); then exit 1; fi
if [[ $NEXT == $SELF ]]; then
exec /usr/bin/node $@
else
exec $NEXT $@
fi

View file

@ -2,4 +2,6 @@
#dep:npm
source ${$(realpath "$0"):h:h}/lib/next-in-path.zsh
export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc
$(next-in-path npm $0) $@
next=$(next-in-path npm $0)
if (( $? != 0 )); then exit 1; fi
$next $@

View file

@ -5,4 +5,6 @@ RIPGREP_CONFIG_PATH=${XDG_CONFIG_HOME:-$HOME/.config}/ripgreprc
if [[ -e $RIPGREP_CONFIG_PATH ]]; then
export RIPGREP_CONFIG_PATH
fi
$(next-in-path rg $0) $@
next=$(next-in-path rg $0)
if (( $? != 0 )); then exit 1; fi
$next $@

View file

@ -15,4 +15,6 @@ opts=(
"-Dsbt.override.build.repos=true"
)
export SBT_OPTS=${(j: :)opts}
$(next-in-path sbt $0) $@
next=$(next-in-path sbt $0)
if (( $? != 0 )); then exit 1; fi
$next $@

View file

@ -1,32 +1,13 @@
#!/usr/bin/env bash
#dep:steam
FAKEHOME=${XDG_DATA_HOME:-$HOME/.local/share}/steam
echo "Starting Steam in faked home $FAKEHOME" >&2
# Symlink a file to the fake home
link_dir() {
# Replace HOME with FAKEHOME in the link name
link_name=$(echo $1 | sed "s|^$HOME|$FAKEHOME|")
# Creates the link's parent directory and symlinks it
mkdir -p $(dirname $link_name)
if [ ! -d $link_name ]; then
echo "Linking $link_name" >&2
ln -s $1 $link_name
fi
}
mkdir -p $FAKEHOME
link_dir $XDG_DATA_HOME # ~/.local/share
link_dir $XDG_CACHE_HOME # ~/.cache
link_dir $XDG_CONFIG_HOME # ~/.config
# If .steam exists in ~/ and not in the fake home, move it to the fake home
if [ -d $HOME/.steam ] && [ ! -d $FAKEHOME/.steam ]; then
echo "migrating $HOME/.steam to $FAKEHOME" >&2
mv $HOME/.steam $FAKEHOME/
fi
export HOME=$FAKEHOME
#FAKEHOME=${XDG_DATA_HOME:-$HOME/.local/share}/steam
#echo "Starting Steam in faked home $FAKEHOME" >&2
#
## If .steam exists in ~/ and not in the fake home, move it to the fake home
#if [ -d $HOME/.steam ] && [ ! -d $FAKEHOME/.steam ]; then
# echo "migrating $HOME/.steam to $FAKEHOME" >&2
# mv $HOME/.steam $FAKEHOME/
#fi
#export HOME=$FAKEHOME
exec /usr/bin/steam $@

View file

@ -1,4 +1,6 @@
#!/bin/zsh
#dep:wget
source ${$(realpath "$0"):h:h}/lib/next-in-path.zsh
$(next-in-path wget $0) --hsts-file="${XDG_DATA_HOME:-$HOME/.local/share}/wget-hsts" "$@"
next=$(next-in-path wget $0)
if (( $? != 0 )); then exit 1; fi
$next --hsts-file="${XDG_DATA_HOME:-$HOME/.local/share}/wget-hsts" "$@"