aboutsummaryrefslogtreecommitdiff
path: root/.config/shell/sources
blob: 4b7c90a23238235dccca587c3fc5ded111762204 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#!/bin/usr/env sh
# Author:  Patrick Spek <p.spek@tyil.nl>
# 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 "/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

# 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