dotfiles/zsh-xdg-setup

39 lines
1.1 KiB
Bash
Executable file

#!/bin/sh
[ "${EUID:-$(id -u)}" -eq 0 ] || { >&2 echo "Please run this as root."; exit 1; }
ZSHENV_PATH="/etc/zshenv"
case "$(realpath $ZSHENV_PATH)" in
*"/nix/"* )
ZSHENV_PATH="/etc/zshenv.local"
;;
esac
case "$OSTYPE" in
"darwin"* ) # We can't access ZI_IS_DARWIN just yet, so we'll do it manually
# REF: https://github.com/null2264/ThinkPad-L460-OpenCore/blob/d7b92805f14947c14359b53bd8ff6af199883c36/README.md#bluetooth-workaround
BT_ADDRESS="$(system_profiler SPBluetoothDataType | grep "Address:" | head -1 | sed "s/ *Address: \(.*\)/\1/g")"
[ "$BT_ADDRESS" = "" ] && \
__EXTRA="" || \
__EXTRA="export BT_DEVICE_ADDRESS=\"$BT_ADDRESS\""
;;
* )
__EXTRA=""
;;
esac
echo_config() {
echo "#!/bin/zsh"
[ "$__EXTRA" = "" ] || echo ""
echo "$__EXTRA"
echo "export ZDOTDIR=\"\${XDG_CONFIG_HOME:-\$HOME/.config}/zsh\""
echo "[ -d \$ZDOTDIR ] || mkdir -p \$ZDOTDIR"
}
echo_config > /tmp/__zshenv || exit 1
echo "========/etc/zshenv========="
cat /tmp/__zshenv
echo "============================"
mv -i /tmp/__zshenv $ZSHENV_PATH
ln -si $ZSHENV_PATH /etc/zsh/zshenv