Files
.dotfiles/.bashrc
2025-03-22 22:07:22 +04:00

75 lines
1.7 KiB
Bash

# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific environment
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]; then
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
export PATH
export PS1="\e[0;34m\u\e[0m:\e[0;31m\h\e[0m \e[0;32m>\W\$ \e[0m"
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
if [ -d ~/.bashrc.d ]; then
for rc in ~/.bashrc.d/*; do
if [ -f "$rc" ]; then
. "$rc"
fi
done
fi
unset rc
# My script
lori() {
local lori_name="${1}"
declare -A lori_list
lori_list=(
[dist_list]="df -h"
)
if [[ -z ${lori_list[$lori_name]} || -z "$lori_name" || "$lori_name" == "-h" ]]; then
echo "COMMANDS:"
printf "%-20s %s\n" "keys" "command"
echo "============================="
for key in "${!lori_list[@]}"; do
printf "%-20s %s\n" "$key" "${lori_list[$key]}"
done | sort
return 0
else
if [[ -n "$BASH" && -t 0 ]]; then
local command_to_insert="${lori_list[$lori_name]}"
bind '"\e[0n": "'"${command_to_insert}"'"'
printf '\e[5n'
else
echo "${lori_list[$lori_name]}"
fi
return 0
fi
}
_lori_completion() {
local curl prev opts
COMPREPLY=()
curl="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts=$(lori -h | awk 'NR>4 {print $1}')
if [[ ${curl} == * ]]; then
COMPREPLY=($(compgen -W "${opts}" -- ${curl}))
return 0
fi
}
complete -F _lori_completion lori
# load bash alias
if [ -f ~/.dotfiles/bash_aliases ]; then
. ~/.dotfiles/.bash_aliases
fi