diff --git a/devel/g8 b/devel/g8 index 27f5a07..0385ef9 100755 --- a/devel/g8 +++ b/devel/g8 @@ -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 \ diff --git a/lib/next-in-path.zsh b/lib/next-in-path.zsh index 4fb2c95..d5f646d 100644 --- a/lib/next-in-path.zsh +++ b/lib/next-in-path.zsh @@ -2,12 +2,19 @@ # Usage: next-in-path 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 } diff --git a/misc/envwrap b/misc/envwrap index e95cbb4..af0cf6f 100755 --- a/misc/envwrap +++ b/misc/envwrap @@ -7,6 +7,8 @@ if [[ $program == "envwrap" ]]; then exit 0 fi -envwrapconf=${XDG_CONFIG_HOME:-$HOME/.config}/envwrap/$program +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 "$@" diff --git a/misc/pass b/misc/pass index e175943..d25c831 100755 --- a/misc/pass +++ b/misc/pass @@ -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 $@ diff --git a/void/xrestricted b/void/xrestricted index 6197f51..9b2aee8 100755 --- a/void/xrestricted +++ b/void/xrestricted @@ -1,5 +1,5 @@ #!/bin/zsh -#dep:xi xbps-checkvers ag +#dep:xi xbps-checkvers rg source ${$(realpath "$0"):h:h}/lib/common.zsh @@ -12,7 +12,7 @@ if [[ ! -d $PACKAGES_DIR ]]; then fi if [[ ! -d $PACKAGES_DIR ]]; then <<-ERR - void-packages repo not found. Either set VOID_PACKAGES_DIR or place it at one of the + void-packages repo not found. Either set VOID_PACKAGES_DIR or place it at one of the following locations: - ${XDG_DATA_HOME:-$HOME/.local/share}/void-packages - $HOME/void-packages @@ -29,10 +29,10 @@ if [[ $help ]]; then Usage: xrestricted list xrestricted update xrestricted install - + Install restricted packages from a void source repo. Detected repo at: $VOID_PACKAGES_DIR - + Common options: -j, --jobs N Number of jobs to use -b, --branch B Use given branch instead of master @@ -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() { diff --git a/xdg-wrappers/abcde b/xdg-wrappers/abcde index f99b0ae..37c8a2f 100755 --- a/xdg-wrappers/abcde +++ b/xdg-wrappers/abcde @@ -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 $@ diff --git a/xdg-wrappers/mbsync b/xdg-wrappers/mbsync index 8bf5def..938f66f 100755 --- a/xdg-wrappers/mbsync +++ b/xdg-wrappers/mbsync @@ -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 $@ diff --git a/xdg-wrappers/mvn b/xdg-wrappers/mvn index 44b8caf..1a37edb 100755 --- a/xdg-wrappers/mvn +++ b/xdg-wrappers/mvn @@ -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 $@ diff --git a/xdg-wrappers/node b/xdg-wrappers/node index 3355108..d4f07d7 100755 --- a/xdg-wrappers/node +++ b/xdg-wrappers/node @@ -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 diff --git a/xdg-wrappers/npm b/xdg-wrappers/npm index 3d5012b..9bdd5a6 100755 --- a/xdg-wrappers/npm +++ b/xdg-wrappers/npm @@ -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 $@ diff --git a/xdg-wrappers/rg b/xdg-wrappers/rg index 09f1c3e..edf56c2 100755 --- a/xdg-wrappers/rg +++ b/xdg-wrappers/rg @@ -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 $@ diff --git a/xdg-wrappers/sbt b/xdg-wrappers/sbt index 15b31ba..1e120fd 100755 --- a/xdg-wrappers/sbt +++ b/xdg-wrappers/sbt @@ -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 $@ diff --git a/xdg-wrappers/steam b/xdg-wrappers/steam index 42c65cb..9481a81 100755 --- a/xdg-wrappers/steam +++ b/xdg-wrappers/steam @@ -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 $@ diff --git a/xdg-wrappers/wget b/xdg-wrappers/wget index 4c45eda..0f10895 100755 --- a/xdg-wrappers/wget +++ b/xdg-wrappers/wget @@ -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" "$@"