# Fig pre block. Keep at the top of this file. [[ -f "$HOME/.fig/shell/bashrc.pre.bash" ]] && . "$HOME/.fig/shell/bashrc.pre.bash" # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples # If not running interactively, don't do anything [ -z "$PS1" ] && return if [ "$(uname -s)" == "Darwin" ] ; then export CURRENT_OS=macos else export CURRENT_OS=linux fi # Add an entry to PATH, iff it's not already there. addpath() { wanted_path=$1 at_end=$2 FOUND=$(echo $PATH | grep $wanted_path) if [ $? -ne 0 ] ; then if [ "$at_end" == "" ] ; then export PATH=$wanted_path:$PATH else export PATH=$PATH:$wanted_path fi fi } # don't put duplicate lines in the history. See bash(1) for more options # don't overwrite GNU Midnight Commander's setting of `ignorespace'. export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups # ... or force ignoredups and ignorespace export HISTCONTROL=ignoreboth # append to the history file, don't overwrite it shopt -s histappend # Don't escape variables when I hit tab shopt -s direxpand # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) # check the window size after each command and, if necessary, # update the values of LINES and COLUMNS. shopt -s checkwinsize # make less more friendly for non-text input files, see lesspipe(1) #[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" # set variable identifying the chroot you work in (used in the prompt below) if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi # set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color) 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='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' else PS1='${debian_chroot:+($debian_chroot)}\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;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" ;; *) ;; esac export PROMPT_DIRTRIM=3 addpath $HOME/bin addpath $HOME/opt/bin end export IPLAYER_OUTDIR="$HOME/downloads/iplayer" # enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then eval "`dircolors -b`" 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 [ -f /etc/bash_completion ]; then . /etc/bash_completion fi # SSH_AGENT_FILE=$HOME/ssh.sh # if [ -f $SSH_AGENT_FILE ] ; then # FILE_PID=$(grep SSH_AGENT_PID $SSH_AGENT_FILE | sed -e 's/^.*=//' | sed -e 's/;.*$//') # RUNNING_PID=$(pgrep -U $USER ssh-agent) # if [ "$RUNNING_PID" == "" ] ; then # # No agent running # echo Starting ssh-agent, you need to load keys though. # ssh-agent > $SSH_AGENT_FILE # . $SSH_AGENT_FILE # elif [ "$RUNNING_PID" != "$FILE_PID" ] ; then # echo Mismatch - file has $FILE_PID, system has $RUNNING_PID # echo 'File is out of date; you might need to kill things and start again.' # else # # PIDs match, let\'s use the file # . $SSH_AGENT_FILE 1>/dev/null # KEYCOUNT=$(ssh-add -l | grep -v "The agent has no identities" | wc -l) # echo Using ssh-agent $RUNNING_PID, $KEYCOUNT keys loaded # fi # else # # Assume no agent running # echo Starting ssh-agent, you need to load keys though. # ssh-agent > $SSH_AGENT_FILE # . $SSH_AGENT_FILE # fi if [ "$HOME2" != "" ] ; then echo "Switched root, merging $HOME2/.Xauthority" xauth merge $HOME2/.Xauthority fi # TODO Do with dropbox now... # Done the longer format so we catch dropbox instance, rather than stuff like # "links http://www.dropbox.com/" # DROPBOX_PID=$(ps -u paul | grep dropbox$ | awk '{print $1}') # if [ "$DROPBOX_PID" == "" ] ; then # echo "Note - Dropbox isn't running!" # fi # Load any supplementary scripts if [ -d "$HOME"/.bashrc.d ] ; then for config in "$HOME"/.bashrc.d/*.bash ; do source "$config" done unset -v config fi if [ -f ${HOME}/.bashrc.d/local/${HOSTNAME}.bash ] ; then echo "Loading ${HOME}/.bashrc.d/local/${HOSTNAME}.bash" source ${HOME}/.bashrc.d/local/${HOSTNAME}.bash fi export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH" # Fig post block. Keep at the bottom of this file. [[ -f "$HOME/.fig/shell/bashrc.post.bash" ]] && . "$HOME/.fig/shell/bashrc.post.bash"