NixOS-Configs/home/files/bash/bashrc
2023-10-27 03:06:24 +00:00

171 lines
5.4 KiB
Bash
Executable file
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
#===============================================================================
#
# FILE: .bashrc
#
# DESCRIPTION: Main bash init file
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: Don Harper (), duckunix@gmail.com
# COMPANY: Don Harper
# VERSION: 1.0
# CREATED: 06/11/2007 11:30:25 PM CDT
# REVISION: ---
#===============================================================================
# set some global stuff first
# colors
GREEN=''
YELLOW=''
RED=''
NONE=''
export NONE GREEN YELLOW RED
PATH="/run/wrappers/bin:${HOME}/.nix-profile/bin:/etc/profiles/per-user/don/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:${HOME}/bin:${HOME}/go/bin"
export PATH
export GOPATH="${HOME}/go"
export TZ="America/Chicago"
if [ -f ${HOME}/.nix-profile/etc/profile.d/hm-session-vars.sh ]
then
. ${HOME}/.nix-profile/etc/profile.d/hm-session-vars.sh
fi
HOSTNAME_SHORT=$(hostnamectl | awk -F: '$1=/Static hostname/{print $2}' | sed 's/^ //')
while [ "${HOSTNAME_SHORT}" == "localhost" ]
do
echo "${RED}@${GREEN}-,---${NONE}"
sleep 1
HOSTNAME_SHORT=$(hostnamectl | awk -F: '$1=/Static hostname/{print $2}' | sed 's/^ //')
done
export HOSTNAME_SHORT
HISTNAME=$LOGNAME
if [ $EUID == 0 ];then HISTNAME=root;fi
HISTFILE="${HOME}/.bash_history.${HISTNAME}.${HOSTNAME_SHORT}.$(tty|cut -c10-)"
export HISTFILE
test -f "${HOME}/.bash_ssh" && source "${HOME}/.bash_ssh"
# set coredump size to 0
ulimit -c 0
umask 0007
if [ "$LOGNAME" ]; then
USER=$LOGNAME
fi
OS_SYS=$(uname -s)
OS_REL=$(uname -r)
OS_CPU=$(uname -m)
OS_TYPE="$OS_SYS.$OS_REL"
export OS_SYS OS_REL OS_TYPE OS_CPU LESS
# Set up path
test -f "${HOME}/.bash_functions" && source "${HOME}/.bash_functions"
test -d "${HOME}/bin/${HOSTNAME_SHORT}" && PATH="${PATH}:${HOME}/bin/${HOSTNAME_SHORT}"
test -d "${HOME}/bin/${OS_CPU}" && PATH="${PATH}:${HOME}/bin/${OS_CPU}"
test -d "${HOME}/bin" && PATH="${PATH}:${HOME}/bin"
test -d "${HOME}/.local/bin" && PATH="${PATH}:${HOME}/.local/bin"
test -d "${HOME}/.cargo/bin" && PATH="${PATH}:${HOME}/.cargo/bin"
test -d "${HOME}/.local/share/gem" && PATH="${PATH}:${HOME}/.local/share/gem/ruby/latest/bin"
test -d /usr/local/sbin && PATH="${PATH}:/usr/local/sbin"
test -d /usr/local/bin && PATH="${PATH}:/usr/local/bin"
test -d /sbin && PATH="${PATH}:/sbin"
test -d /usr/sbin && PATH="${PATH}:/usr/sbin"
test -d /usr/bin && PATH="${PATH}:/usr/bin"
test -d /bin && PATH="${PATH}:/bin"
export PATH
test -f "${HOME}/.bash_ssh" && . ${HOME}/.bash_ssh
#interactive login ?
#####################################
######### #########
######## Interactive stuff ########
######### #########
#####################################
if [ "${PS1}" ];
then
unset i
set -o noclobber
set -o notify
set bell-style visible
set nobeep
shopt -s autocd
shopt -s cdspell
shopt -s checkjobs
shopt -s checkwinsize
shopt -s dotglob
shopt -s extglob
shopt -s histappend
shopt -s histreedit
PAGER=less
LESS="-s"
EXINIT="set wrapmargin=8 sh=$SHELL sw=4 report=2 tabstop=8"
export EXINIT EDITOR PAGER
EDITOR=vi
if [ -x /usr/bin/vim ]
then
EDITOR=vim
alias vi=/usr/bin/vim
elif [ -x /usr/local/bin/vim ]
then
EDITOR=vim
alias vi=/usr/local/bin/vim
elif [ $(which nvim 2>&1 >> /dev/null) ]
then
EDITOR=nvim
fi
export EDITOR
unset COMPHOSTS
export COMPHOSTS=()
unset pathmunge
# set up man path
MANPATH="${MANPATH}:${HOME}/man:${HOME}/share/man"
export MANPATH
test -f $(ls -1 /nix/store/*bash-completion-*/etc/profile.d/bash_completion.sh | tail -n1) && \
source $(ls -1 /nix/store/*bash-completion-*/etc/profile.d/bash_completion.sh | tail -n1)
export LOCKPRG=${HOME}/bin/myLock
export HISTCONTROL=ignoreboth
export HISTIGNORE='pwd:exit:clear:history'
[ -f /etc/profile.d/bash-completion.sh ] && source /etc/profile.d/bash-completion.sh
[ -f /usr/local/share/bash-completion/bash_completion.sh ] && source/usr/local/share/bash-completion/bash_completion.sh
[ -f /usr/share/bash-completion/bash_completion ] && source /usr/share/bash-completion/bash_completion
[ ! -v ${BASH_COMPLETION_VERSINFO} -a -d ${HOME}/.bash_completion.d ] && for i in $(\ls -1 ${HOME}/.bash_completion.d/*.sh); do source $i; done
export PROMPT_COMMAND='history -a' # Always append history files
PS1='\u@\h:\w> '
test -f "${HOME}/.bash_aliases" && . ${HOME}/.bash_aliases
test -f "${HOME}/.bash_local" && . ${HOME}/.bash_local
test -f "${HOME}/.liquidprompt/liquidprompt" && . ${HOME}/.liquidprompt/liquidprompt
# git completion
if [ ! -v BASH_COMPLETION_VERSINFO -a -f /usr/local/share/git-completion/git-completion.bash ]; then
source /usr/local/share/git-completion/git-completion.bash
fi
export NVM_DIR="/usr/local/share/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ ! -v BASH_COMPLETION_VERSINFO -a -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion
export SASL_PATH=/usr/local/lib/sasl2
#complete -C "${GOPATH}/bin/bitcomplete" bit
test -f "${HOME}/.bash_${HOSTNAME_SHORT}" && . ${HOME}/.bash_$HOSTNAME_SHORT
# BEGIN_KITTY_SHELL_INTEGRATION
if test -n "$KITTY_INSTALLATION_DIR" -a -e "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; then source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; fi
# END_KITTY_SHELL_INTEGRATION
complete -o nospace -F _task t
fi