view .bashrc @ 254:2bc70f7910fa

Let's set a sane default for the container on ChromeOS
author Steve Huston <huston@srhuston.net>
date Wed, 27 Mar 2024 23:27:48 -0400
parents 7833786173da
children d868be3816bf
line wrap: on
line source

# This file is sourced for shells which are interactive but not a
# login shell; however, since it is also sourced within
# $HOME/.bash_profile, the end result is that this file is sourced for all
# shells.

# macOS 10.15 (Catalina) and further changed the default shell to zsh.  While
# it may be a simple transition, I've seen too many problems with zsh to want
# to change yet.  So this will tell the machine to not bother me about it when
# opening new terminal windows.  It really should be in ~/.bash_profile but
# then existing screen sessions won't get the message, and it doesn't hurt to
# be here anyway.

export BASH_SILENCE_DEPRECATION_WARNING=1

# Source global definitions
if [ -f /etc/bashrc ]; then
  . /etc/bashrc
fi

# User specific aliases and functions
if [ -f $HOME/.bash_aliases ]; then
  . $HOME/.bash_aliases
fi

#
# Environment variables
#
#[[ "$PS1" ]] && export PS1='${debian_chroot:+($debian_chroot)}\e[01;32m\h\e[00m:\e[01;34m\w\e[00m\$ '
[[ "$PS1" ]] && {
  if [ -z "$DARWIN" ] ; then
    export PS1='${debian_chroot:+($debian_chroot)}\[\e[01;`case $EUID in 0) echo -n 31; ;; *) echo -n 32; ;; esac;`m\]\h\[\e[00m\]:\[\e[01;34m\]\w\[\e[00m\]\$ '
  else
    export PS1='${debian_chroot:+($debian_chroot)}\[\e[01;`case $EUID in 0) echo "31\c"; ;; *) echo -n 32; ;; esac;`m\]\h\[\e[00m\]:\[\e[01;34m\]\w\[\e[00m\]\$ '
  fi
}
export PAGER=less
export EDITOR=vim
export RUBYLIB=$HOME/Installs/rubygems/lib
export GEM_HOME=$HOME/Installs/rubygems/gems
export TOMENET_PATH=$HOME/Installs/tomenet/lib/
export HOST=`hostname -s`

if [ -f $HOME/.screen/$HOST ]; then
  export SCREENRC=$HOME/.screen/$HOST
fi

# If this is an xterm set the title to user@host:dir
case $TERM in
  xterm*|rxvt*)
    PROMPT_COMMAND='history -a ; echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
    ;;
  screen.xterm-256color)
    # Specifically, to hell with this one
    export TERM=screen-256color
    # Copied from below because the Mac's bash doesn't grok ;& as a
    # passthrough
    PROMPT_COMMAND="history -a"
    ;;
  screen*)
    # But if it's a screen window, leave it alone please
    PROMPT_COMMAND="history -a"
    ;;
  *)
    ;;
esac

# Set some friendly options for history
# Append to ~/.bash_history, don't overwrite it
shopt -s histappend
# Set the history a bit larger, both on disk and in memory
export HISTFILESIZE=10000
export HISTSIZE=10000
# Ignore lines starting with a space, and duplicates of the previous command;
# also, if a line is a dupe from earlier history, remove the previous line
# entirely
export HISTCONTROL='ignoreboth:erasedups'
# Ignore some commonly used and not noteworthy commands
export HISTIGNORE='bg:fg:jobs:history:ret:rbh:rj:rx:keys:ssh-add*:jobs:proxy*'
# Put a timestamp on history lines
export HISTTIMEFORMAT='%F %T '
# Fold multi-line commands into a single line
# This seems to be 'on' in many places already, but let's make sure
shopt -s cmdhist

#
# Paths
#

# A test for modules, to be implemented in time:
# if [ "`type -t module`" == "function" ]; then
#   module load foo
# fi

# Standard-ish paths; some of these may be in place already, but if
# they're not they should probably go near the front of the pack.
for P in /sbin /usr/sbin /usr/local/bin /usr/local/sbin \
  /opt/local/bin /opt/local/sbin /usr/X11R6/bin; do
  if [ -d $P ]; then
    [[ $PATH =~ (^|:)$P($|:) ]] || \
    export PATH=${P}${PATH:+:$PATH}
  fi
done

for M in /usr/local/share/man /usr/local/man /opt/local/share/man ; do
  if [ -d $M ]; then
    [[ $MANPATH =~ (^|:)$M($|:) ]] || \
    export MANPATH=${M}${MANPATH:+:$MANPATH}
  fi
done

# Local install paths - install things to $HOME/Installs directories, and
# they will automatically get the proper paths added.  Most things
# that use autoconf will do this with
# './configure --prefix=$HOME/Installs'
for D in $HOME/Installs/* ; do
  if [ -d $D/bin ]; then
    [[ $PATH =~ (^|:)$D/bin($|:) ]] || \
    export PATH=$D/bin${PATH:+:$PATH}
  fi

  if [ -d $D/share/man ]; then
    [[ $MANPATH =~ (^|:)$D/share/man($|:) ]] || \
    export MANPATH=$D/share/man:${MANPATH:+$MANPATH}
  fi

  if [ -d $D/man ]; then
    [[ $MANPATH =~ (^|:)$D/man($|:) ]] || \
    export MANPATH=$D/man:${MANPATH:+$MANPATH}
  fi
done

# Now make sure $HOME/bin is top of the list (or at least present)
if [ -d $HOME/bin ]; then
  [[ $PATH =~ (^|:)$HOME/bin($|:) ]] || \
  export PATH=$HOME/bin${PATH:+:$PATH}
fi

# Last, make sure to end MANPATH with a ':' to force include of system paths
# (some versions of man take care of this, but it doesn't hurt to have it
# anyway)
[[ $MANPATH =~ :$ ]] || export MANPATH=$MANPATH:

# Store MIBs in ~/mibs and they'll be added here.  Can nest directories
# (they'll be searched).
if [ -d $HOME/mibs ]; then
  for D in `find $HOME/mibs -type d` ; do
    [[ $MIBDIRS =~ (^\+|:)$D($|:) ]] || \
    export MIBDIRS=${MIBDIRS:+$MIBDIRS:}$D
  done

  [[ $MIBDIRS =~ ^\+ ]] || export MIBDIRS=+$MIBDIRS
  export MIBS=ALL
fi