94 lines
2.3 KiB
Bash
94 lines
2.3 KiB
Bash
#!/bin/bash
|
|
|
|
# From archlinux's /etc/profile
|
|
append_path() {
|
|
case ":$PATH:" in
|
|
*:"$1":*) ;;
|
|
*)
|
|
PATH="${PATH:+$PATH:}$1"
|
|
;;
|
|
esac
|
|
}
|
|
prepend_path() {
|
|
case ":$PATH:" in
|
|
*:"$1":*) ;;
|
|
*)
|
|
PATH="$1${PATH:+:$PATH}"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# .profile is not included in the repo
|
|
[ -f "$HOME/.profile" ] && . "$HOME/.profile"
|
|
|
|
# Better than nothing
|
|
export XDG_CONFIG_HOME="$HOME/.config"
|
|
export XDG_DATA_HOME="$HOME/.local/share"
|
|
export XDG_STATE_HOME="$HOME/.local/state"
|
|
export XDG_CACHE_HOME="$HOME/.cache"
|
|
|
|
# Better than nothing
|
|
if [[ -z "$LANG" ]]; then
|
|
LANG="en_US.UTF-8"
|
|
LC_ALL="en_US.UTF-8"
|
|
export LANG LC_ALL
|
|
fi
|
|
|
|
# Paths
|
|
[ -f "$HOME/.cargo/env" ] && source "$HOME/.cargo/env"
|
|
[ -d "$HOME/go/bin" ] && prepend_path "$HOME/go/bin"
|
|
[ -d "$HOME/.local/bin" ] && prepend_path "$HOME/.local/bin"
|
|
[ -d "$HOME/.local/scripts" ] && prepend_path "$HOME/.local/scripts"
|
|
export PATH
|
|
|
|
# fnm
|
|
if type fnm &>/dev/null; then
|
|
eval $(fnm env --shell bash)
|
|
fi
|
|
|
|
# export ENABLE_GPG_AGENT_SSH=1 in .profile to enable GPG agent for SSH
|
|
if [ -x "$HOME/.local/scripts/gpg-init" ] && \
|
|
[ -n "$ENABLE_GPG_AGENT_SSH" ] && [ "$ENABLE_GPG_AGENT_SSH" != "0" ] && \
|
|
type gpgconf &>/dev/null; then
|
|
# GPG agent for SSH
|
|
eval "$($HOME/.local/scripts/gpg-init 2>/dev/null)" >/dev/null 2>&1
|
|
elif [ -x "$HOME/.local/scripts/ssh-init" ] && type ssh-agent &>/dev/null; then
|
|
# SSH with cross-session ssh-agent
|
|
eval "$($HOME/.local/scripts/ssh-init 2>/dev/null)" >/dev/null 2>&1
|
|
fi
|
|
|
|
# Triggered in SSH sessions
|
|
if [[ $- == *i* ]]; then
|
|
# Set EDITOR and VISUAL, mainly for sudoedit
|
|
for app in nvim helix vim vi nano; do
|
|
if type "$app" &>/dev/null; then
|
|
EDITOR="$app"
|
|
VISUAL="$app"
|
|
break
|
|
fi
|
|
done
|
|
export EDITOR VISUAL
|
|
|
|
# For gpg
|
|
GPG_TTY=$(tty)
|
|
export GPG_TTY
|
|
|
|
# Shortcut alias for launching fish
|
|
if type fish &>/dev/null && ! type f &>/dev/null; then
|
|
alias f="exec fish"
|
|
fi
|
|
# Better do this manually since the automatic approach is kinda buggy.
|
|
# Add this to .bashrc to enable it anyway:
|
|
#
|
|
# if [[ $(ps --no-header --pid=$PPID --format=comm) != "fish" && -z ${BASH_EXECUTION_STRING} && ${SHLVL} == 1 ]]; then
|
|
# shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=''
|
|
# exec fish $LOGIN_OPTION
|
|
# fi
|
|
|
|
# .bashrc is not included in the repo
|
|
[ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc"
|
|
fi
|
|
|
|
unset append_path
|
|
unset prepend_path
|