Soporte para bash

This commit is contained in:
perro tuerto 2022-12-31 12:57:37 -08:00
parent 5b1d745621
commit f45c514794
1 changed files with 101 additions and 79 deletions

View File

@ -1,8 +1,13 @@
# Alias # Aliases
## Variables de ambiente ## Variables de ambiente
VENV=.venv VENV=.venv
FONT_DIR=$HOME/.fonts
OZSH_ALIAS=$HOME/.oh-my-zsh/custom/aliases.zsh
BASH_ALIAS=$HOME/.bash_aliases
RLOC_ALIAS=$HOME/Repositorios/aliases/aliases.sh
REPO_ALIAS=https://gitlab.com/perrotuerto_personal/codigo/aliases/-/raw/no-masters/aliases.sh
## Eliminación de alias previos ## Eliminación de alias previos
@ -78,7 +83,6 @@ alias rastrear-todo='find / -iname'
alias trace-all='rastrear-todo' alias trace-all='rastrear-todo'
alias copiar='xclip -selection clipboard <' alias copiar='xclip -selection clipboard <'
alias copy='copiar' alias copy='copiar'
alias recargar='source $HOME/.zshrc'
alias refresh='recargar' alias refresh='recargar'
alias install='instalar' alias install='instalar'
alias uninstall='desinstalar' alias uninstall='desinstalar'
@ -108,27 +112,36 @@ alias acuario='asciiquarium'
alias tren='sl' alias tren='sl'
alias fantasma='oneko &' alias fantasma='oneko &'
## Detecta tipo de distribución ## Funciones
### Detecta tipo de distribución
distro-name () { distro-name () {
DIST_NAME=$(awk -F= '/^NAME/{print $2}' /etc/os-release) echo $(awk -F= '/^NAME/{print $2}' /etc/os-release) | sed 's/"//g'
echo $DIST_NAME | sed 's/"//g'
} }
## Actualizador ### Imprime errores
echo-error () {
echo "ERROR: $1"
return 1
}
### Actualizador
actualizar () { actualizar () {
DIST=$(distro-name)
case $1 in case $1 in
alias | aliases) alias | aliases)
echo "Actualizando alias" echo "Actualizando alias"
curl -o $HOME/.oh-my-zsh/custom/aliases.zsh \ curl -o $BASH_ALIAS $REPO_ALIAS
https://gitlab.com/perrotuerto_personal/codigo/aliases/-/raw/no-masters/aliases.sh if [ -f "$OZSH_ALIAS" ]; then
cp $BASH_ALIAS $OZSH_ALIAS
fi
recargar recargar
;; ;;
paquetes | packages) paquetes | packages)
echo "Actualizando paquetes" echo "Actualizando paquetes"
if [[ ${DIST} = "Arch Linux" ]]; then if [[ $(distro-name) = "Arch Linux" ]]; then
sudo pacman -Syy sudo pacman -Syy
sudo pacman -S archlinux-keyring sudo pacman -S archlinux-keyring
else else
@ -137,13 +150,23 @@ actualizar () {
;; ;;
todo | sistema | all | system) todo | sistema | all | system)
echo "Actualizando sistema" echo "Actualizando sistema"
if [[ ${DIST} = "Arch Linux" ]]; then if [[ $(distro-name) = "Arch Linux" ]]; then
yay -Su yay -Su
else else
sudo apt upgrade sudo apt upgrade
fi fi
;; ;;
-h | --help | help | ayuda) -h | --help | help | ayuda)
actualizar-help ;;
*)
actualizar alias
actualizar paquetes
actualizar sistema
;;
esac
}
actualizar-help () {
echo "actualizar: utilidad para hacer actualizaciones. echo "actualizar: utilidad para hacer actualizaciones.
Uso: Uso:
@ -162,31 +185,22 @@ Ejemplos:
actualizar -h actualizar -h
actualizar todo actualizar todo
actualizar" actualizar"
;;
*)
actualizar alias
actualizar paquetes
actualizar sistema
;;
esac
} }
## Instalador ### Instalador
instalar (){ instalar (){
DIST=$(distro-name) if [[ $(distro-name) = "Arch Linux" ]]; then
if [[ ${DIST} = "Arch Linux" ]]; then
yay -Syy $@ yay -Syy $@
else else
sudo apt install $@ sudo apt install $@
fi fi
} }
## Desinstalador ### Desinstalador
desinstalar (){ desinstalar (){
DIST=$(distro-name) if [[ $(distro-name) = "Arch Linux" ]]; then
if [[ ${DIST} = "Arch Linux" ]]; then
yay -Rss $@ yay -Rss $@
else else
sudo apt purge $@ sudo apt purge $@
@ -195,26 +209,51 @@ desinstalar (){
fi fi
} }
## Gestión de alias ### Gestión de alias
aliases () { aliases () {
ALIAS_FILE=~/.oh-my-zsh/custom/aliases.zsh
case $1 in case $1 in
actualizar | update)
actualizar aliases
;;
ver | see) ver | see)
c $ALIAS_FILE echo $OZSH_ALIAS
c $OZSH_ALIAS
;; ;;
editar | edit) editar | edit)
v $ALIAS_FILE v $OZSH_ALIAS
;;
enlazar | link)
if [ -f "$RLOC_ALIAS" ]; then
if [ -f "$OZSH_ALIAS" ]; then
ln -fs $RLOC_ALIAS $OZSH_ALIAS
else
ln -fs $RLOC_ALIAS $BASH_ALIAS
fi
recargar
else
echo-error "no se encontró archivo '$RLOC_ALIAS' para copia."
fi
;; ;;
-h | --help | help | ayuda) -h | --help | help | ayuda)
aliases-help ;;
*)
alias
;;
esac
}
aliases-help () {
echo "aliases: utilidad para hacer gestionar alias. echo "aliases: utilidad para hacer gestionar alias.
Uso: Uso:
aliases [OPT] aliases [OPT]
Opciones: Opciones:
ver | see Muestra contenido de archivo de alias. actualizar | update Actualiza aliases.
editar | edit Edita alias. ver | see Muestra contenido de archivo de aliases.
editar | edit Edita aliases.
enlazar | link Genera enlace simbólico entre repo 'aliases' y archivo de aliases.
-h | --help | help | ayuda Despliega esta ayuda. -h | --help | help | ayuda Despliega esta ayuda.
vacío Uso regular de 'alias'. vacío Uso regular de 'alias'.
@ -223,36 +262,21 @@ Ejemplos:
aliases editar aliases editar
aliases -h aliases -h
aliases" aliases"
;;
*)
alias
;;
esac
} }
### Un árbol que es a tree lo que lsd es a ls ### Recarga aliases
tre () { recargar () {
DEPTH=1000 if [ -f "$OZSH_ALIAS" ]; then
DIR="." source $HOME/.zshrc
if [ -d "${@:$#}" ]; then else
DIR="${@:$#}" source $HOME/.bashrc
fi fi
while getopts ":L:" opt; do
case $opt in
L) DEPTH=$OPTARG
;;
\?) echo "Opción inválida -$OPTARG" >&2
;;
esac
done
lsd -l --tree --size=short --blocks=size,name --depth=$DEPTH $DIR
} }
## Instalador de fuentes ## Instalador de fuentes
font-add () { font-add () {
FONT_DIR=$HOME/.fonts
if [ ! -d "$FONT_DIR" ]; then if [ ! -d "$FONT_DIR" ]; then
mkdir $FONT_DIR mkdir $FONT_DIR
fi fi
@ -287,8 +311,12 @@ md () {
leer | read | ver | cat | c) leer | read | ver | cat | c)
glow -w 80 -p $2 ;; glow -w 80 -p $2 ;;
-h | --help | help | ayuda) -h | --help | help | ayuda)
echo " md-help ;;
md: utilidad para hacer gestionar archivos Markdown. esac
}
md-help () {
echo "md: utilidad para hacer gestionar archivos Markdown.
Uso: Uso:
md [OPT] md [OPT]
@ -302,49 +330,52 @@ Opciones:
Ejemplos: Ejemplos:
md formatear archivo.md md formatear archivo.md
md convertir archivo.md a archivo.html md convertir archivo.md a archivo.html
md ayuda md ayuda"
" ;;
esac
} }
## Desactiva o activa virtualenv ## Desactiva o activa virtualenv
check_venv () { check-venv () {
VENV_ACT=$VENV/bin/activate
type deactivate &>/dev/null && deactivate type deactivate &>/dev/null && deactivate
if [ -f "$VENV_ACT" ]; then if [ -f "$VENV/bin/activate" ]; then
source $VENV_ACT source $VENV/bin/activate
fi fi
} }
check_venv # Ejecuta cuando se carga check-venv # Ejecuta cuando se carga
## Agrega y arranca virtualenv ## Agrega y arranca virtualenv
venv () { venv () {
virtualenv $VENV virtualenv $VENV
check_venv check-venv
} }
## Modifica comportamiento de cd ## Modifica comportamiento de cd
cd () { cd () {
builtin cd $1 builtin cd $1
check_venv check-venv
} }
## Embellece y verifica código ## Embellece y verifica código
pymp () { pymp () {
FORMAT=false
CHECK=true
case $1 in case $1 in
-f | formatear | format) -f | formatear | format)
black --line-length 80 ${@:$#} ;; black --line-length 80 ${@:$#} ;;
-h | --help | help | ayuda) -h | --help | help | ayuda)
CHECK=false pymp-help ;;
echo " esac
pymp: utilidad para enchular código de Python. if [ ! -d "${@:$#}" ] && [ ! -f "${@:$#}" ]; then
echo-error "último argumento debe ser un fichero existente."
fi
flake8 --max-line-length 80 ${@:$#}
vulture ${@:$#}
}
pymp-help () {
echo "pymp: utilidad para enchular código de Python.
Uso: Uso:
pymp [OPT] [FILE|DIR] pymp [OPT] [FILE|DIR]
@ -356,15 +387,6 @@ Opciones:
Ejemplos: Ejemplos:
pymp archivo.py pymp archivo.py
pymp formatear . pymp formatear .
pymp ayuda pymp ayuda"
" ;; return 0
esac
if [ ! -d "${@:$#}" ] && [ ! -f "${@:$#}" ]; then
echo "ERROR: último argumento debe ser un fichero, ¿lo escribiste correctamente?"
return 1
fi
if [ "$CHECK" = true ]; then
flake8 --max-line-length 80 ${@:$#}
vulture ${@:$#}
fi
} }