#!/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"
# Personal scripts and wrappers
PATH="${PATH}:${HOME}/.scripts/generic"
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}/.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="$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
#. "$HOME/.config/shell/functions"
# 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