Bash is run either in interactive mode (e.g. in a terminal) or non-interactive mode (e.g. on an SSH server handling an SCP request). In the latter example, any output performed by bash-it's actions will be interpreted as SCP reply on the client side, typically leading to failed transfers. This is a well-known limitation of the SCP: https://bugzilla.redhat.com/show_bug.cgi?id=20527. In bash's own bashrc example, the first lines of code query for the mode and return early if it's non-interactive: http://git.savannah.gnu.org/cgit/bash.git/tree/examples/startup-files/bashrc?h=bash-5.0#n1. This practice is adopted by Linux distributions (e.g. Ubuntu) and probably other systems. Current mode can be queried as described here: https://www.gnu.org/software/bash/manual/html_node/Is-this-Shell-Interactive_003f.html. Copy the according lines from Debian stretch's default .bashrc (as found in https://packages.debian.org/stretch/bash under /etc/skel/.bashrc) to the bash-it profile template to disable bash-it for non-interactive shells. As a side effect, this change makes SCP faster since the server doesn't need to run any bash-it code in context of SCP handling.
63 lines
1.9 KiB
Bash
Executable File
63 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# If not running interactively, don't do anything
|
|
case $- in
|
|
*i*) ;;
|
|
*) return;;
|
|
esac
|
|
|
|
# Path to the bash it configuration
|
|
export BASH_IT="{{BASH_IT}}"
|
|
|
|
# Lock and Load a custom theme file.
|
|
# Leave empty to disable theming.
|
|
# location /.bash_it/themes/
|
|
export BASH_IT_THEME='bobby'
|
|
|
|
# (Advanced): Change this to the name of your remote repo if you
|
|
# cloned bash-it with a remote other than origin such as `bash-it`.
|
|
# export BASH_IT_REMOTE='bash-it'
|
|
|
|
# Your place for hosting Git repos. I use this for private repos.
|
|
export GIT_HOSTING='git@git.domain.com'
|
|
|
|
# Don't check mail when opening terminal.
|
|
unset MAILCHECK
|
|
|
|
# Change this to your console based IRC client of choice.
|
|
export IRC_CLIENT='irssi'
|
|
|
|
# Set this to the command you use for todo.txt-cli
|
|
export TODO="t"
|
|
|
|
# Set this to false to turn off version control status checking within the prompt for all themes
|
|
export SCM_CHECK=true
|
|
|
|
# Set Xterm/screen/Tmux title with only a short hostname.
|
|
# Uncomment this (or set SHORT_HOSTNAME to something else),
|
|
# Will otherwise fall back on $HOSTNAME.
|
|
#export SHORT_HOSTNAME=$(hostname -s)
|
|
|
|
# Set Xterm/screen/Tmux title with only a short username.
|
|
# Uncomment this (or set SHORT_USER to something else),
|
|
# Will otherwise fall back on $USER.
|
|
#export SHORT_USER=${USER:0:8}
|
|
|
|
# Set Xterm/screen/Tmux title with shortened command and directory.
|
|
# Uncomment this to set.
|
|
#export SHORT_TERM_LINE=true
|
|
|
|
# Set vcprompt executable path for scm advance info in prompt (demula theme)
|
|
# https://github.com/djl/vcprompt
|
|
#export VCPROMPT_EXECUTABLE=~/.vcprompt/bin/vcprompt
|
|
|
|
# (Advanced): Uncomment this to make Bash-it reload itself automatically
|
|
# after enabling or disabling aliases, plugins, and completions.
|
|
# export BASH_IT_AUTOMATIC_RELOAD_AFTER_CONFIG_CHANGE=1
|
|
|
|
# Uncomment this to make Bash-it create alias reload.
|
|
# export BASH_IT_RELOAD_LEGACY=1
|
|
|
|
# Load Bash It
|
|
source "$BASH_IT"/bash_it.sh
|