remote/bash_profile @ e0e09fa5bb68

More
author Steve Losh <steve@stevelosh.com>
date Wed, 10 May 2023 22:51:54 -0400
parents b038c1a8cdd8
children bf8002ba462c
#!/usr/bin/env bash

# Similar to my normal bash_profile, but stripped down for running on servers.

if test -e /etc/profile; then
    source /etc/profile
fi

shopt -s expand_aliases
shopt -s histappend

# Save multiline commands as a single history entry.
shopt -s cmdhist

HISTFILESIZE=100000
HISTSIZE=100000
HISTCONTROL=ignoreboth

# Flush commands to history immediately instead of waiting for logout.
PROMPT_COMMAND='history -a'

if test -e ~/.dircolors; then
    eval "$(dircolors -b ~/.dircolors)"
fi

D=$'\e[37m'
RED=$'\e[31m'
GREEN=$'\e[32m'
ORANGE=$'\e[33m'
BLUE=$'\e[34m'
PINK=$'\e[35m'
# CYAN=$'\e[36m'

function last_return_value() {
    x="$?"
    if test "$x" -ne 0; then
        echo -n "${RED}[$x] ${D}"
    fi
}

function histgrep {
    history | grep "$@" | tac | f 2-
}

if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
  HOST_COLOR="$BLUE"
else
  HOST_COLOR="$ORANGE"
fi

export PS1='\n${PINK}\u ${D}at ${HOST_COLOR}\h ${D}in ${GREEN}\w${D} $(last_return_value)$ '

alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
alias ......="cd ../../../../.."

alias js='cd ~/scratch'

alias :q=exit
alias :qa=exit
alias :wqa=exit

if command -v ag >/dev/null; then
    AG_BIN="$(command -v ag)"
    function ag() {
        if test -f '.agignore' && grep -q 'pragma: skipvcs' '.agignore'; then
            $AG_BIN --search-files -U "$@"
        else
            $AG_BIN --search-files "$@"
        fi
    }
fi

function prepend_to_path {
    if test -d "$1"; then
        PATH="$1":"$PATH"
    fi
}

prepend_to_path "$HOME/src/dotfiles/lisp/bin"
prepend_to_path "$HOME/src/dotfiles/bin"
prepend_to_path "$HOME/bin"
export PATH

export LESS_TERMCAP_mb=$(printf '\e[01;31m')       # begin blinking
export LESS_TERMCAP_md=$(printf '\e[01;38;5;74m')  # begin bold
export LESS_TERMCAP_me=$(printf '\e[0m')           # end mode
export LESS_TERMCAP_se=$(printf '\e[0m')           # end standout-mode
export LESS_TERMCAP_so=$(printf '\e[38;5;246m')    # begin standout-mode - info box
export LESS_TERMCAP_ue=$(printf '\e[0m')           # end underline
export LESS_TERMCAP_us=$(printf '\e[04;38;5;146m') # begin underline
export PAGER='less -iX'

function psg() {
    ps auxww | grep --color=always "$@" | grep -v grep | collapse | cuts -f 2,11-
}

GPG_TTY=$(tty)
export GPG_TTY

export EDITOR=vim