include .bashrc in shell config
This commit is contained in:
@@ -6,6 +6,11 @@
|
|||||||
|
|
||||||
GPG_SSH_SOCKET=$(gpgconf --list-dirs agent-ssh-socket)
|
GPG_SSH_SOCKET=$(gpgconf --list-dirs agent-ssh-socket)
|
||||||
|
|
||||||
|
if [ -z "$GPG_SSH_SOCKET" ]; then
|
||||||
|
echo "Error: gpgconf did not return a valid SSH socket path." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "$SSH_AUTH_SOCK" ] || [ "$SSH_AUTH_SOCK" != "$GPG_SSH_SOCKET" ]; then
|
if [ -z "$SSH_AUTH_SOCK" ] || [ "$SSH_AUTH_SOCK" != "$GPG_SSH_SOCKET" ]; then
|
||||||
echo "export SSH_AUTH_SOCK='$GPG_SSH_SOCKET';"
|
echo "export SSH_AUTH_SOCK='$GPG_SSH_SOCKET';"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ if [ -z "$SSH_AUTH_SOCK" ]; then
|
|||||||
. "$agent_file" > /dev/null 2>&1
|
. "$agent_file" > /dev/null 2>&1
|
||||||
# check if the socket is actually working
|
# check if the socket is actually working
|
||||||
if [ "$(ssh-add -l > /dev/null 2>&1; echo $?)" -eq 2 ]; then
|
if [ "$(ssh-add -l > /dev/null 2>&1; echo $?)" -eq 2 ]; then
|
||||||
|
# if not, unset it to create a new one
|
||||||
unset SSH_AUTH_SOCK
|
unset SSH_AUTH_SOCK
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
+13
-61
@@ -50,73 +50,25 @@ if type fnm &>/dev/null; then
|
|||||||
eval "$(fnm env --shell bash)"
|
eval "$(fnm env --shell bash)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# export ENABLE_GPG_AGENT_SSH=1 in .profile to enable GPG agent for SSH
|
# export UY_ENABLE_GPG_AGENT_SSH=1 in .profile to enable GPG agent for SSH
|
||||||
if [ -x "$HOME/.local/scripts/gpg-init" ] && \
|
if type gpgconf &>/dev/null && type gpg-connect-agent &>/dev/null &&
|
||||||
[ -n "$ENABLE_GPG_AGENT_SSH" ] && [ "$ENABLE_GPG_AGENT_SSH" = "1" ] && \
|
[ -x "$HOME/.local/scripts/gpg-init" ] &&
|
||||||
type gpgconf &>/dev/null; then
|
[ "${UY_ENABLE_GPG_AGENT_SSH:-0}" = "1" ]; then
|
||||||
# GPG agent for SSH
|
# GPG agent for SSH
|
||||||
eval "$($HOME/.local/scripts/gpg-init 2>/dev/null)" &>/dev/null
|
eval "$($HOME/.local/scripts/gpg-init 2>/dev/null)" &>/dev/null
|
||||||
elif [ -x "$HOME/.local/scripts/ssh-init" ] && type ssh-agent &>/dev/null; then
|
fi
|
||||||
|
|
||||||
|
if type ssh-add &>/dev/null && type ssh-agent &>/dev/null &&
|
||||||
|
{ [ -z "$SSH_AUTH_SOCK" ] ||
|
||||||
|
[ "$(ssh-add -l &>/dev/null; echo $?)" -eq 2 ]; } &&
|
||||||
|
[ -x "$HOME/.local/scripts/ssh-init" ]; then
|
||||||
|
unset SSH_AUTH_SOCK
|
||||||
# SSH with cross-session ssh-agent
|
# SSH with cross-session ssh-agent
|
||||||
eval "$($HOME/.local/scripts/ssh-init 2>/dev/null)" &>/dev/null
|
eval "$($HOME/.local/scripts/ssh-init 2>/dev/null)" &>/dev/null
|
||||||
|
export UY_USING_SSH_AGENT=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Triggered in interactive shells (e.g. ssh)
|
[ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc"
|
||||||
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
|
|
||||||
|
|
||||||
# Create shortcut alias for helix
|
|
||||||
if type helix &>/dev/null && ! type hx &>/dev/null; then
|
|
||||||
alias hx="helix"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For gpg
|
|
||||||
if type gpgconf &>/dev/null; then
|
|
||||||
GPG_TTY=$(tty)
|
|
||||||
export GPG_TTY
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -x "$HOME/.local/scripts/gpg-init" ] && \
|
|
||||||
[ -n "$ENABLE_GPG_AGENT_SSH" ] && [ "$ENABLE_GPG_AGENT_SSH" = "1" ] && \
|
|
||||||
type gpgconf &>/dev/null; then
|
|
||||||
true
|
|
||||||
elif [ -x "$HOME/.local/scripts/ssh-init" ] && type ssh-add &>/dev/null; then
|
|
||||||
function sshs() {
|
|
||||||
# test if keys are added to ssh-agent
|
|
||||||
if ! ssh-add -l &>/dev/null; then
|
|
||||||
if [ -n "$ssh_keys" ]; then
|
|
||||||
ssh-add "${ssh_keys[@]}"
|
|
||||||
else
|
|
||||||
ssh-add
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
ssh "$@"
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 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 append_path
|
||||||
unset prepend_path
|
unset prepend_path
|
||||||
|
|||||||
@@ -0,0 +1,150 @@
|
|||||||
|
#!/hint/bash
|
||||||
|
|
||||||
|
# If not running interactively, don't do anything
|
||||||
|
case $- in
|
||||||
|
*i*) ;;
|
||||||
|
*) return ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# don't put duplicate lines or lines starting with space in the history.
|
||||||
|
# See bash(1) for more options
|
||||||
|
HISTCONTROL=ignoreboth
|
||||||
|
|
||||||
|
# append to the history file, don't overwrite it
|
||||||
|
shopt -s histappend
|
||||||
|
|
||||||
|
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||||
|
HISTSIZE=16384
|
||||||
|
HISTFILESIZE=32768
|
||||||
|
|
||||||
|
# check the window size after each command and, if necessary,
|
||||||
|
# update the values of LINES and COLUMNS.
|
||||||
|
shopt -s checkwinsize
|
||||||
|
|
||||||
|
# If set, the pattern "**" used in a pathname expansion context will
|
||||||
|
# match all files and zero or more directories and subdirectories.
|
||||||
|
#shopt -s globstar
|
||||||
|
|
||||||
|
# make less more friendly for non-text input files, see lesspipe(1)
|
||||||
|
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||||
|
|
||||||
|
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||||
|
case "$TERM" in
|
||||||
|
xterm-color | *-256color) color_prompt=yes ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||||
|
# off by default to not distract the user: the focus in a terminal window
|
||||||
|
# should be on the output of commands, not on the prompt
|
||||||
|
#force_color_prompt=yes
|
||||||
|
|
||||||
|
if [ -n "$force_color_prompt" ]; then
|
||||||
|
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||||
|
# We have color support; assume it's compliant with Ecma-48
|
||||||
|
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||||
|
# a case would tend to support setf rather than setaf.)
|
||||||
|
color_prompt=yes
|
||||||
|
else
|
||||||
|
color_prompt=
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$color_prompt" = yes ]; then
|
||||||
|
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
||||||
|
else
|
||||||
|
PS1='\u@\h:\w\$ '
|
||||||
|
fi
|
||||||
|
unset color_prompt force_color_prompt
|
||||||
|
|
||||||
|
# If this is an xterm set the title to user@host:dir
|
||||||
|
case "$TERM" in
|
||||||
|
xterm* | rxvt*)
|
||||||
|
PS1="\[\e]0;\u@\h: \w\a\]$PS1"
|
||||||
|
;;
|
||||||
|
*) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# enable color support of ls and also add handy aliases
|
||||||
|
if [ -x /usr/bin/dircolors ]; then
|
||||||
|
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
#alias dir='dir --color=auto'
|
||||||
|
#alias vdir='vdir --color=auto'
|
||||||
|
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
#alias fgrep='fgrep --color=auto'
|
||||||
|
#alias egrep='egrep --color=auto'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# colored GCC warnings and errors
|
||||||
|
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
||||||
|
|
||||||
|
# some more ls aliases
|
||||||
|
alias ll='ls -l'
|
||||||
|
alias la='ls -A'
|
||||||
|
alias l='ls -CF'
|
||||||
|
|
||||||
|
# Alias definitions.
|
||||||
|
# You may want to put all your additions into a separate file like
|
||||||
|
# ~/.bash_aliases, instead of adding them here directly.
|
||||||
|
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
||||||
|
|
||||||
|
if [ -f ~/.bash_aliases ]; then
|
||||||
|
. ~/.bash_aliases
|
||||||
|
fi
|
||||||
|
|
||||||
|
# enable programmable completion features (you don't need to enable
|
||||||
|
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||||
|
# sources /etc/bash.bashrc).
|
||||||
|
if ! shopt -oq posix; then
|
||||||
|
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||||
|
. /usr/share/bash-completion/bash_completion
|
||||||
|
elif [ -f /etc/bash_completion ]; then
|
||||||
|
. /etc/bash_completion
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Create shortcut alias for helix
|
||||||
|
if type helix &>/dev/null && ! type hx &>/dev/null; then
|
||||||
|
alias hx="helix"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# For gpg
|
||||||
|
if type gpg &>/dev/null; then
|
||||||
|
GPG_TTY=$(tty)
|
||||||
|
export GPG_TTY
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${UY_USING_SSH_AGENT:-0} == 1 ]]; then
|
||||||
|
function sshs() {
|
||||||
|
# test if keys are added to ssh-agent
|
||||||
|
if ! ssh-add -l &>/dev/null; then
|
||||||
|
if [ -n "$ssh_keys" ]; then
|
||||||
|
ssh-add "${ssh_keys[@]}"
|
||||||
|
else
|
||||||
|
ssh-add
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
ssh "$@"
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Auto-login to fish if UY_ENABLE_FISH_AUTO_LOGIN=1 is set in .profile
|
||||||
|
if type fish &>/dev/null && [[ ${UY_ENABLE_FISH_AUTO_LOGIN:-0} == 1 ]]; then
|
||||||
|
alias f="exec fish"
|
||||||
|
|
||||||
|
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
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user