dotfiles2/base/.mkshrc
2022-08-06 19:46:26 -07:00

162 lines
3.6 KiB
Plaintext
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.

# (mk)shrc
if [ -f /etc/shrc ]; then
. /etc/shrc
fi
export EDITOR=nvim
## Extra paths
if [ -f "$HOME/.cargo/env" ] ; then
. $HOME/.cargo/env
fi
# Python packages go here
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
# Homebrew (macOS)
if [ -d "/opt/homebrew" ] ; then
PATH="/opt/homebrew/bin:/opt/homebrew/sbin:/sbin:/usr/sbin:$PATH"
HOMEBREW_CASK_OPTS="--appdir=~/Applications"
export HOMEBREW_CASK_OPTS
# x86 brew hack
if [ -d "$HOME/.x86_64/homebrew" ] ; then
brew86() {
PATH="$HOME/.x86_64/homebrew/bin:$PATH" arch -x86_64 $HOME/.x86_64/homebrew/bin/brew "$@"
}
fi
fi
# Flutter
if [ -d "$HOME/.opt/flutter" ] ; then
PATH="$HOME/.opt/flutter/bin:$PATH"
fi
# Android SDK (for VMs)
if [ -d "$HOME/Library/Android/sdk" ] ; then
export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk
PATH="$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/emulator:$ANDROID_SDK_ROOT/platform-tools:$PATH"
fi
export PATH
# Force 256color term for screen
if [ "$TERM" = "screen" ] ; then
TERM="screen-256color"
export TERM
fi
export LANG=
export LC_ALL=en_US.UTF-8
## Ripped from a custom /etc/shrc, not very useful here
if [ -z "$UID" ] ; then
UID="$(id -u)"
fi
BRL="["
BRR=""
if [ -n "$BASH_VERSION" ] ; then
BRL="\\[\\\\033["
BRR="\\]"
fi
if [ "$UID" -eq "0" ] ; then
PROMPT="#"
USER_COLOR="${BRL}31m${BRR}"
else
PROMPT="$"
USER_COLOR="${BRL}96m${BRR}"
fi
getrv() {
# HACK: Since the if statement in get_ps1 will clobber the old
# return value, KSH passes a cached version of the old val along
# so we can use it here.
rv=${1:-$?}
if [ "$rv" -ne "0" -a "$rv" -ne "130" ] ; then
printf "$rv | "
fi
}
get_ps1() {
# Bash uses a static version of this, so we have to make a couple
# changes for post-processing
rv=$?
if [ -n "$BASH_VERSION" ] ; then
printf '$(getrv)'
else
getrv $rv
fi
if [ -n "$SSH_TTY" ] ; then
printf "${BRL}33m${BRR}[SSH] "
fi
printf "${USER_COLOR}${HOST%%.*}:${BRL}39m${BRR}";
if [ -n "$BASH_VERSION" ] ; then
printf "\w"
elif [[ "${PWD#$HOME}" != "$PWD" ]] ; then
printf "~${PWD#$HOME}"
else
printf "$PWD"
fi
printf "${USER_COLOR} ${PROMPT}${BRL}0m${BRR} "
}
case "$-" in *i*)
# interactive mode settings go here
if /bin/test -z "${HOST}"; then
HOST="$(hostname)"
fi
PS1='$(get_ps1)'
set -o emacs
# This file is used by shells that might not support
# set -o tabcomplete, so check before trying to use it.
( set -o tabcomplete 2>/dev/null ) && set -o tabcomplete
if command -v xclip >/dev/null ; then
alias ctop='xclip -selection clipboard -out | xclip -selection primary -in'
alias ptoc='xclip -selection primary -out | xclip -selection primary -in'
fi
alias define='dict'
if command -v nvim >/dev/null ; then
alias vim='nvim'
fi
# Hack to bubble up profile, see bin/tmux-shim
alias tmux="$HOME/bin/tmux-shim"
# Set bash PS1
if [ -n "$BASH_VERSION" ] ; then
PS1="$(get_ps1)"
export PS1
elif [ "${KSH_VERSION:-notksh}" != "notksh" ] ; then
[[ "${KSH_VERSION}" == *"MIRBSD KSH"* ]] && bind '^L=clear-screen'
else
hn="$(hostname)"
PS1='${hn}:${PWD} \$ '
fi
# Tiny helper functions
calc()
{
echo "$@" | bc
}
nconv()
{
if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ]; then
echo "usage: nconv [from-base] [to-base] [num]" >&2
return 1
fi
echo "obase=$2; ibase=$1; $3" | bc
}
;;
esac