#!/bin/usr/env sh # Author: Patrick Spek # License: BSD 3-clause license # # Apparently tmux likes to unset your PATH variable. As a workaround the PATH # will be unset completely at the start of this script, then reset using this # script. This was the only viable method for me to keep my PATH clean [ "${DEBUG_DOTFILES}" ] && echo "Unsetting PATH" unset PATH [ "${DEBUG_DOTFILES}" ] && echo "Setting PATH" # User-local bin dir PATH="${HOME}/.local/bin" # User-level pkgsrc bin dir PATH="${PATH}:/home/tyil/.pkgsrc/bin" PATH="${PATH}:/home/tyil/.pkgsrc/sbin" # Personal scripts and wrappers PATH="${PATH}:${HOME}/.config/shell/wrappers.d" # Language specific package manager bin dirs PATH="${PATH}:${HOME}/.local/share/perl6/site/bin" PATH="${PATH}:${HOME}/.local/share/perl6/vendor/bin" PATH="${PATH}:${HOME}/.local/share/perl6" PATH="${PATH}:${HOME}/.pkgsrc/share/perl6/site/bin" PATH="${PATH}:${HOME}/.pkgsrc/share/perl6/vendor/bin" PATH="${PATH}:${HOME}/.pkgsrc/share/perl6" PATH="${PATH}:${HOME}/.cabal/bin" # System bin dirs PATH="${PATH}:/bin" PATH="${PATH}:/sbin" PATH="${PATH}:/usr/bin" PATH="${PATH}:/usr/sbin" PATH="${PATH}:/usr/local/bin" PATH="${PATH}:/usr/local/sbin" PATH="${PATH}:/usr/games/bin" PATH="${PATH}:/opt/bin" # Raku stuff if [ -d "$HOME/.raku/bin" ] then PATH="$PATH:$HOME/.raku/bin" fi if [ -d "/usr/local/share/perl6" ] then PATH="$PATH:/usr/local/share/perl6/site/bin" PATH="$PATH:/usr/local/share/perl6/vendor/bin" fi # Load color definitions if they exist if [ -f "$HOME/.config/shell/colors/$SHORTSHELL" ] then [ "$DEBUG_DOTFILES" ] && printf " Loading color definitions\n" . "$HOME/.config/shell/colors/$SHORTSHELL" fi # Nix package manager if [ -f "$HOME/.nix-profile/etc/profile.d/nix.sh" ] then # In case of single-user Nix installation . "$HOME/.nix-profile/etc/profile.d/nix.sh" else if [ -d "/nix/var/nix/profiles/per-user/${USER}" ] then # In case of multi-user Nix installation PATH="${PATH}:/nix/var/nix/profiles/per-user/${USER}/profile/bin" fi fi [ "${DEBUG_DOTFILES}" ] && echo "Setting FPATH" FPATH="${HOME}/.config/shell/completion ${FPATH}" [ "${DEBUG_DOTFILES}" ] && echo "Sourcing ~/.config/shell/env" # shellcheck disable=SC1090 . "${HOME}/.config/shell/env" if [ -f "${HOME}/.local/etc/shell/env" ] then [ "${DEBUG_DOTFILES}" ] && echo "Sourcing ~/.local/etc/shell/env" # shellcheck disable=SC1090 . "${HOME}/.local/etc/shell/env" fi # if ruby is installed and we have a gems folder, include it in the path if ruby -v > /dev/null 2>&1 then GEMDIR="$(ruby -r rubygems -e 'puts Gem.user_dir')/bin" if [ -d "$GEMDIR" ] then [ "$DEBUG_DOTFILES" ] && echo " Extending PATH with $GEMDIR" PATH="$GEMDIR:$PATH" fi fi # Add machine-specific paths from ~/.local/etc/shell/path if [ -f "$HOME/.local/etc/shell/path" ] then for p in $(envsubst < "$HOME/.local/etc/shell/path") do PATH="$PATH:$p" done fi # export the extended PATH export PATH # Extend MANPATH with user directories MANPATH="/home/tyil/.local/share/man/:$MANPATH" # Add aliases . "$HOME/.config/shell/aliases" # Add custom functions [ "${DEBUG_DOTFILES}" ] && echo " Sourcing functions.d" for f in "$HOME/.config/shell/functions.d"/* do [ "${DEBUG_DOTFILES}" ] && echo " $f" . "$f" done # Load profile if [ -f "${HOME}/.config/shell/profile" ] then [ "${DEBUG_DOTFILES}" ] && echo " Loading ~/.config/shell/init" #shellcheck disable=1090 . "${HOME}/.config/shell/profile" fi # show motd if [ -f "${HOME}/.config/shell/motd" ]; then [ "${DEBUG_DOTFILES}" ] && echo "Reading motd" # shellcheck disable=SC1090 . "${HOME}/.config/shell/motd" fi # clear terminal [ "$DEBUG_DOTFILES" ] || clear