From 20bd2dcec10fa9668b4da7814e221b86adfa1780 Mon Sep 17 00:00:00 2001 From: piecka Date: Fri, 28 Feb 2025 11:50:59 +0100 Subject: [PATCH] addet bash aliases --- .bash_aliases | 415 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 415 insertions(+) create mode 100644 .bash_aliases diff --git a/.bash_aliases b/.bash_aliases new file mode 100644 index 0000000..3f532b2 --- /dev/null +++ b/.bash_aliases @@ -0,0 +1,415 @@ +# ─< ANSI color codes >─────────────────────────────────────────────────────────────────── +RED='\033[0;31m' +CYAN='\033[0;36m' +YELLOW='\033[0;33m' +LIGHT_GREEN='\033[0;92m' +BOLD='\033[1m' +NC='\033[0m' # No Color + +echo_error() { + printf "${BOLD}${RED}ERROR: ${NC}${RED}%s${NC}\n" "$1" >&2 +} + +echo_info() { + printf "${BOLD}${CYAN}INFO: ${NC}${CYAN}%s${NC}\n" "$1" +} + +echo_warning() { + printf "${BOLD}${YELLOW}WARNING: ${NC}${YELLOW}%s${NC}\n" "$1" +} + +echo_note() { + printf "${BOLD}${LIGHT_GREEN}NOTE: ${NC}${LIGHT_GREEN}%s${NC}\n" "$1" +} + +# ─< Check if the given command exists silently >───────────────────────────────────────── +command_exists() { + command -v "$@" >/dev/null 2>&1 +} + +# ─< Check if the given command exists silently >───────────────────────────────────────── +command_exists() { + command -v "$@" >/dev/null 2>&1 +} + +# ─< Check if the user is root and set sudo variable if necessary >─────────────────────── +check_root() { + if [ "$(id -u)" -ne 0 ]; then + if command_exists sudo; then + echo_info "User is not root. Using sudo for privileged operations." + _sudo="sudo" + else + echo_error "No sudo found and you're not root! Can't install packages." + return 1 + fi + else + echo_info "Root access confirmed." + _sudo="" + fi +} +# ─< run the function to get $_sudo >───────────────────────────────────────────────────── +check_root + +getPackager() { + pkg="apt dnf pacman zypper apk" + for pkgmgr in $pkg; do + if command_exists "$pkgmgr"; then + PACKAGER="$pkgmgr" + fi + done + + case "$PACKAGER" in + apt) + if command_exists nala; then + search="nala search" + install="nala install --assume-yes" + refresh="nala update" + upgrade="nala upgrade --full" + remove="nala purge" + alias update="$_sudo $refresh && $_sudo $upgrade" + alias install="$_sudo $refresh && $_sudo $install" + alias remove="$_sudo $remove" + alias search="$search" + elif command_exists apt; then + search="apt-cache search" + install="apt-get install --yes" + refresh="apt-get update" + upgrade="apt-get upgrade" + remove="apt-get purge" + alias update="$_sudo $refresh && $_sudo $upgrade" + alias install="$_sudo $refresh && $_sudo $install" + alias remove="$_sudo $remove" + alias search="$search" + else + echo_error "APT ERROR" + fi + ;; + dnf) + if command_exists dnf; then + alias install="dnf install --yes" + alias update="dnf update" + alias remove="dnf remove" + alias search="dnf search" + else + echo_error "DNF ERROR" + fi + ;; + pacman) + if command_exists yay; then + alias install="yay -S --noconfirm" + alias update="yay -Syu" + alias remove="yay -R" + alias search="yay -Ss" + elif command_exists paru; then + alias install="paru -S --noconfirm" + alias update="paru -Syu" + alias remove="paru -R" + alias search="paru -Ss" + elif command_exists pacman; then + alias install="$_sudo pacman -S --noconfirm" + alias update="$_sudo pacman -Syu" + alias remove="$_sudo pacman -R" + alias search="$_sudo pacman -Ss" + else + echo_error "PACMAN ERROR" + fi + ;; + zypper) + alias install="$_sudo zypper install" + alias update="$_sudo zypper dup" + alias remove="$_sudo zypper remove" + alias search="$_sudo zypper search" + ;; + apk) + install="apk add" + update="apk update" + upgrade="apk upgrade" + remove="apk del" + alias install="$_sudo $install" + alias update="$_sudo $update && $_sudo $upgrade" + alias remove="$_sudo $remove" + ;; + esac +} + +_alias_() { + alias please="sudo" + alias untar="tar -xf" + + # ─< easier dir up >──────────────────────────────────────────────────────────────────────── + alias ..="cd .." + # ─< weather >────────────────────────────────────────────────────────────────────────────── + alias www="curl wttr.in/Ulm" + + # ─< colored ip >─────────────────────────────────────────────────────────────────── + alias ip="ip --color=always" + + # ─< check for rg >───────────────────────────────────────────────────────────────────────── + if command_exists rg; then + alias grep="rg --color=always" + else + alias grep="grep --color=always" + fi + + # ─< linutil >──────────────────────────────────────────────────────────────────────────── + alias linutil="curl -fsSL https://christitus.com/linux | sh" + alias "linutil-dev"="curl -fsSL https://christitus.com/linuxdev | sh" + + # ─< telnet (starwars) >──────────────────────────────────────────────────────────────────── + if command_exists telnet; then + alias starwars="telnet -a telehack.com" + fi + + # ─< rsync >──────────────────────────────────────────────────────────────────────────────── + if command_exists rsync; then + alias scp="rsync -avP" + alias cp="rsync -avP" + fi + + [[ -f "$HOME/go/bin/lazygit" ]] && + alias lazygit="$HOME/go/bin/lazygit" && + alias lg="lazygit" + + function y() { + local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd + yazi "$@" --cwd-file="$tmp" + if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then + builtin cd -- "$cwd" + fi + rm -f -- "$tmp" + } + + # ─< cli explorer >─────────────────────────────────────────────────────────────────────── + if command_exists "$HOME/.cargo/bin/yazi"; then + echo_info "yazi is the explorer of choice" + alias lf="yazi || ya pack -i" + elif command_exists ranger; then + echo_info "ranger is the explorer of choice" + alias lf="ranger" + elif command_exists lf; then + echo_info "lf is the explorer of choice" + fi + + # ─< colorized ls >───────────────────────────────────────────────────────────────────────── + if command_exists exa; then + alias ls="exa --icons -l --git" + alias l="exa --long --no-filesize --no-permissions --no-time --git --colour-scale --icons" + alias ll="exa --all --long --no-filesize --no-permissions --no-time --git --colour-scale --icons" + alias tree="exa --icons -l --tree" + elif command_exists lsd; then + alias ls="lsd -l -1 -h1 --almost-all --git" + alias l="lsd -1" + alias ll="lsd -1 --almost-all" + alias clearl="command clear && l" + alias tree="lsd --tree" + elif command_exists eza; then + alias ls="eza --icons --long --git" + alias l="eza --icons -l" + alias ll="eza --icons -laa" + alias tree="eza --icons -l --tree" + else + alias ls="ls --color=always -lAph" + alias l="ls --color=always -lph -w1" + alias ll="ls --color=always -lph" + fi + + # ─< t stands for tmux >──────────────────────────────────────────────────────────────────── + if command_exists tmux; then + local tmux_y="-- tmux-session active! | connecting to active session --" + local tmux_n="-- no tmux-session found! | creating one --" + ta() { + command tmux list-sessions >/dev/null 2>&1 + if [ $? -eq 0 ]; then + if command_exists notify-send; then + notify-send "TMUX" "$tmux_y" + sleep 0.5 + tmux attach + else + echo_info "$tmux_y" + sleep 0.5 + tmux attach + fi + else + if command_exists notify-send; then + notify-send "TMUX" "$tmux_n" + sleep 0.5 + tmux + else + echo_info "$tmux_n" + sleep 0.5 + tmux + fi + fi + } + alias ts="tmux source $HOME/.tmux.conf" + fi + + # ─< t stands for trash(-cli) >─────────────────────────────────────────────────────────────── + if command_exists trash; then + alias rm="trash" + alias t="trash" + elif command_exists trash-cli; then + alias rm="trash-cli" + alias t="trash-cli" + else + echo_error "-- You do not have trash or trash-cli installed! Your 'rm' will be permanent! --" + fi + + # ─< bat alias >──────────────────────────────────────────────────────────────────────────── + if command_exists batcat; then + alias cat="batcat --color=always -p --paging=never" + alias less="batcat --paging always --color=always" + # alias gd="batcat --diff" + elif command_exists bat; then + alias cat="bat --color=always -p" + alias less="bat --paging always --color=always" + # alias gd="bat --diff" + fi + + # ─< wireshark / termshark alias >──────────────────────────────────────────────────────── + if command_exists termshark; then + alias ws="$_sudo termshark" + fi + + # ─< fastfetch >──────────────────────────────────────────────────────────────────────────── + if command_exists fastfetch; then + alias ff="fastfetch" + alias clearff="command clear & fastfetch" + alias clearf="command clear & fastfetch" + if fastfetch --config os >/dev/null 2>&1; then + alias f="fastfetch --config os" + else + git clone https://git.k4li.de/mirrors/fastfetch.git "$HOME/.local/share/fastfetch" >/dev/null 2>&1 + exec "$SHELL" + fi + fi + + # ─< d stands for docker >────────────────────────────────────────────────────────────────── + if command_exists docker; then + alias up="docker compose up" + alias down="docker compose down" + alias pull="docker compose pull" + alias d="docker" + alias dr="docker run --rm -it" + alias drs="docker compose down && docker compose up -d --remove-orphans --force-recreate" + alias ds="docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}'" + alias dcs="docker compose ps -a --format 'table {{.Name}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}'" + alias dl="docker compose logs -f" + alias dc="docker compose" + alias appupdate="docker compose pull && docker compose up -d --force-recreate" + fi + + # ─< g stands for GIT >───────────────────────────────────────────────────────────────────── + if command_exists git; then + alias g="git" + alias gs="git status -sb" + alias gsl="git status" + alias gm='git checkout main && git merge' + alias gc="git clone --recurse-submodule" + gcl() { + if [ -z "$2" ]; then + git clone --depth=1 "https://github.com/$1" + else + git clone --depth=1 "https://github.com/$1" "$2" + fi + } + gck() { + if [ -z "$2" ]; then + git clone --recurse-submodules --depth=1 "https://git.k4li.de/$1" + else + git clone --recurse-submodules --depth=1 "https://git.k4li.de/$1" "$2" + fi + } + gcs() { + if [ -z "$2" ]; then + git clone --recurse-submodules --depth=1 "git@git.k4li.de:$1" + else + git clone --recurse-submodules --depth=1 "git@git.k4li.de:$1" "$2" + fi + } + alias gd="git diff" + alias ga="gd $1 && git add" + alias gp="git pull --recurse-submodule" + alias gms='git maintenance start' + alias gsu="git submodule foreach git pull && git add . && git commit -m ' updated 📌submodules' && echo '-- Committed changes, pushing now..' && sleep 1 && git push" + alias gcm="git commit -m" + alias gpu="git push --recurse-submodule=on-demand" + if command_exists lazygit; then + alias lg="lazygit" + fi + fi + + alias inst_lazydocker="curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash" +} + +_coding_() { + # ─< h stands for HUGO >────────────────────────────────────────────────────────────────── + if command_exists hugo; then + alias h='hugo' + alias hs='hugo server -D --noHTTPCache --disableFastRender' # --bind "$(get_ip)"' + fi + # ─< c stands for bin/cake >────────────────────────────────────────────────────────────── + # alias cake='bin/cake' + # alias c='cake' + # alias cs='c server -p 1313' + # ─< VSCodium >───────────────────────────────────────────────────────────────────────────── + if command_exists codium; then + alias code="codium" + export EDITOR="codium" + fi + + cursor_exe="/mnt/c/Users/piecka/AppData/Local/Programs/cursor/Cursor.exe" + if [ -e "$cursor_exe" ]; then + alias code="$cursor_exe" + fi + + # ─< neovide, the best frontend for any neovim-config >─────────────────────────────────── + if command_exists nvim; then + if command_exists neovide; then + if [ -n "$TMUX" ]; then + alias nvim="command nvim" + else + alias nvim="neovide --fork" + fi + fi + fi + + # Function to get the IP address + get_ip() { + ip a | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d/ -f1 | head -n 1 + } + + if command_exists composer; then + alias laravel_new="composer create-project laravel/laravel" + fi + + # Check if php is available, then create the alias + if command_exists php; then + alias phprun="php artisan serve --host=$(get_ip) --port=8000" + fi + + # Check if npm is available, then create the alias + if command_exists npm; then + npmrun() { + npmrun_help() { + echo "Usage: npmrun [environment] [optional:port]" + echo " environment: The npm environment you want to run (e.g. dev)" + echo " port: Port to use (default: 8000)" + return + } + if [[ "$1" == "--help" || "$1" == "-h" ]]; then + npmrun_help + return + fi + + local env="$1" + local port="${2:-8080}" + + npm run "$env" -- --host="$(get_ip)" --port="$port" + } + fi +} + +getPackager +_alias_ +_coding_