-
Notifications
You must be signed in to change notification settings - Fork 4
/
environment.sh
executable file
·154 lines (122 loc) · 5.54 KB
/
environment.sh
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/usr/bin/env sh
DOCKERFUNCTIONS_PATH="${HOME}"/.shells/.all/dockerfunctions.sh
export DOCKERFUNCTIONS_PATH
# We don't have the source_file_if_available function yet
# shellcheck source=/dev/null
FILE="${HOME}"/.shells/.all/functions.sh && test -f "$FILE" && . "$FILE"
# From now on, the source_file_if_available function is available
# Set ENV so that if you use a shell as your login shell,
# and then start "sh" as a non-login interactive shell the startup scripts will
# correctly run.
export ENV="$HOME"/.shells/.all/interactive.sh
###############################################################################
# Shell #
###############################################################################
# Set the default shell, in order of preference
if command -v zsh >/dev/null 2>&1; then
DEFAULT_SHELL="$(command -v zsh)"
DEFAULT_SHELL_SHORT="zsh"
elif command -v bash >/dev/null 2>&1; then
DEFAULT_SHELL="$(command -v bash)"
DEFAULT_SHELL_SHORT="bash"
fi
# Set the default editor
export EDITOR=/usr/bin/nano
export TERMINAL="urxvt"
export VISUAL=$EDITOR
# Larger command history
export HISTSIZE=50000000
export HISTFILESIZE=$HISTSIZE
export SAVEHIST=$HISTSIZE
# Omit duplicates and commands that begin with a space from history.
export HISTCONTROL='ignoreboth'
# Prefer US English and use UTF-8
export LANG="en_US.UTF-8"
export LANGUAGE=$LANG
export LC_ALL=$LANG
# Make Python use UTF-8 encoding for output to stdin, stdout, and stderr.
export PYTHONIOENCODING='UTF-8'
###############################################################################
# Path #
###############################################################################
# update path
export PATH="/usr/local/bin:${PATH}:/sbin"
export PATH="${HOME}/bin:${PATH}"
if is_macos; then
# setup homebrew environment
if ! command -v brew >/dev/null 2>&1; then
# brew is not yet in the path because it was (likely) installed manually by setup.sh
# So falling back to a known location.
if is_macos_arm; then
HOMEBREW_PATH=/opt/homebrew
else
HOMEBREW_PATH=/usr/local/brew
fi
else
HOMEBREW_PATH="$(brew --prefix)"
fi
if [ -d "${HOMEBREW_PATH}" ]; then
export HOMEBREW_PATH
export PATH="${HOMEBREW_PATH}"/bin:"${PATH}"
export PATH="${HOMEBREW_PATH}"/sbin:"${PATH}"
export LD_LIBRARY_PATH="${HOMEBREW_PATH}"/lib:"${LD_LIBRARY_PATH-}"
export MANPATH="${HOMEBREW_PATH}"/share/man:"${MANPATH-}"
export HOMEBREW_NO_ANALYTICS=1
ZSH_SITE_FUNCTIONS_PATH="${HOMEBREW_PATH}"/share/zsh/site-functions
ZSH_SYNTAX_HIGHLIGHTING_PATH="${HOMEBREW_PATH}"/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
ZSH_COMPLETIONS_PATH="${HOMEBREW_PATH}"/share/zsh-completions
# On macOS, we install zsh-autosuggestions from brew
ZSH_AUTOSUGGESTIONS_CONFIGURATION_PATH="${HOMEBREW_PATH}"/share/zsh-autosuggestions/zsh-autosuggestions.zsh
fi
# add vs code bins to path
VS_CODE_BIN_DIRECTORY_PATH="/Applications/Visual Studio Code.app/Contents/Resources/app/bin/"
USER_FONTS_DIRECTORY="$HOME/Library/Fonts"
PYTHON_2_BIN_PATH="$HOME/Library/Python/2.7/bin"
PYTHON_3_BIN_PATH="$HOME/Library/Python/3.8/bin"
elif is_linux; then
ZSH_SITE_FUNCTIONS_PATH=/usr/local/share/zsh/site-functions
ZSH_PLUGINS_DIR="$HOME"/.shells/.zsh/plugins
export ZSH_PLUGINS_DIR
ZSH_AUTOSUGGESTIONS_CONFIGURATION_PATH="${ZSH_PLUGINS_DIR}"/zsh-autosuggestions/zsh-autosuggestions.zsh
ZSH_COMPLETIONS_PATH="${ZSH_PLUGINS_DIR}"/zsh-completions/src
ZSH_SYNTAX_HIGHLIGHTING_PATH=/usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
USER_FONTS_DIRECTORY="$HOME/.local/share/fonts"
fi
if is_wsl; then
VAGRANT_WSL_ENABLE_WINDOWS_ACCESS="1"
export VAGRANT_WSL_ENABLE_WINDOWS_ACCESS
fi
[ -d "${VS_CODE_BIN_DIRECTORY_PATH-}" ] && export PATH="${VS_CODE_BIN_DIRECTORY_PATH-}:${PATH}"
unset VS_CODE_BIN_DIRECTORY_PATH
[ -d "${PYTHON_2_BIN_PATH:-}" ] && export PATH="${PYTHON_2_BIN_PATH}:${PATH}"
unset PYTHON_2_BIN_PATH
[ -d "${PYTHON_3_BIN_PATH:-}" ] && export PATH="${PYTHON_3_BIN_PATH}:${PATH}"
unset PYTHON_3_BIN_PATH
PYTHON_3_USER_BIN_PATH="$HOME/.local/bin"
[ -d "${PYTHON_3_USER_BIN_PATH}" ] && export PATH="${PYTHON_3_USER_BIN_PATH}:${PATH}"
unset PYTHON_3_USER_BIN_PATH
# Export default shell
export DEFAULT_SHELL
export DEFAULT_SHELL_SHORT
export USER_FONTS_DIRECTORY
###############################################################################
# Others #
###############################################################################
GCLOUD_CONFIG_DIRECTORY="${HOME}"/.config/gcloud
export GCLOUD_CONFIG_DIRECTORY
DOTFILES_CONFIGURATION_PATH="${HOME}"/.config/ferrarimarco-dotfiles
export DOTFILES_CONFIGURATION_PATH
VS_CODE_EXTENSIONS_LIST_FILE_PATH="${DOTFILES_CONFIGURATION_PATH}"/vs-code/extensions.txt
export VS_CODE_EXTENSIONS_LIST_FILE_PATH
USER_CACHE_DIRECTORY="${HOME}/.cache"
export USER_CACHE_DIRECTORY
###############################################################################
# ZSH variables we might need during setup #
###############################################################################
export ZSH_SITE_FUNCTIONS_PATH
export ZSH_SYNTAX_HIGHLIGHTING_PATH
export ZSH_COMPLETIONS_PATH
export ZSH_AUTOSUGGESTIONS_CONFIGURATION_PATH
export ZSH_CACHE_DIR="${USER_CACHE_DIRECTORY}/zsh"
export ZSH_THEMES_DIR="$HOME"/.shells/.zsh/themes
export ZSH_THEME_PATH="$ZSH_THEMES_DIR"/powerlevel10k/powerlevel10k.zsh-theme