2022-12-31 14:57:37 -06:00
|
|
|
# Aliases
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
## Variables de ambiente
|
|
|
|
|
2024-01-25 15:34:16 -06:00
|
|
|
export EDITOR=vim
|
2024-02-14 12:04:53 -06:00
|
|
|
export PATH=$HOME/.local/bin:$PATH
|
|
|
|
export PATH=$HOME/.cargo/bin:$PATH
|
2023-09-18 17:13:11 -06:00
|
|
|
export VENV=.venv
|
|
|
|
export LENGTH=79
|
|
|
|
export FONT_DIR=$HOME/.fonts
|
|
|
|
export BASH_ALIAS=$HOME/.bash_aliases
|
|
|
|
export RLOC_ALIAS=$HOME/Repositorios/aliases/aliases.sh
|
|
|
|
export REPO_ALIAS=https://gitlab.com/perritotuerto/codigo/aliases/-/raw/no-masters/aliases.sh
|
2024-01-23 12:41:26 -06:00
|
|
|
export FLINSTALL=/usr
|
|
|
|
export FREELINGDIR=$FLINSTALL
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
## Eliminación de alias previos
|
|
|
|
|
|
|
|
unalias -a
|
|
|
|
|
|
|
|
## Atajos
|
|
|
|
|
|
|
|
alias .1='cd ..'
|
|
|
|
alias .2='cd ../..'
|
|
|
|
alias .3='cd ../../..'
|
2023-01-04 16:00:45 -06:00
|
|
|
alias e='v'
|
2022-12-07 13:00:42 -06:00
|
|
|
alias g='geany'
|
2022-12-28 18:02:23 -06:00
|
|
|
alias l='lsd -al --permission octal'
|
2022-12-07 13:00:42 -06:00
|
|
|
alias o='okular'
|
|
|
|
alias s='scribus'
|
|
|
|
alias t='tree'
|
|
|
|
alias v='vim'
|
|
|
|
alias cpd='docker cp'
|
2023-01-04 16:00:45 -06:00
|
|
|
alias cdr='cd ~/Repositori*'
|
|
|
|
alias docs='cd ~/Document*'
|
|
|
|
alias repos='cdr'
|
2023-05-19 10:41:03 -06:00
|
|
|
alias cloud='nube'
|
2023-01-04 16:00:45 -06:00
|
|
|
alias descargas='cdd'
|
|
|
|
alias documentos='docs'
|
2022-12-07 13:00:42 -06:00
|
|
|
alias permisos='stat -c "Permiso %a | Creación %w | Modificación %y | %n" *'
|
2022-12-07 16:36:26 -06:00
|
|
|
alias stats='zsh_stats'
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
## Atajos SSH
|
|
|
|
|
2023-06-20 15:37:31 -06:00
|
|
|
alias adjetiva='ssh adjetiva'
|
2022-12-07 13:00:42 -06:00
|
|
|
alias agroteso='ssh agroteso'
|
|
|
|
alias aml='ssh aml'
|
2022-12-07 17:37:29 -06:00
|
|
|
alias aml-stats='ssh aml "docker stats -a"'
|
2022-12-28 18:52:58 -06:00
|
|
|
alias cel='ssh cel'
|
2023-06-12 10:26:07 -06:00
|
|
|
alias clientes='ssh clientes'
|
2023-06-26 11:45:59 -06:00
|
|
|
alias colimapress='ssh colimapress'
|
2022-12-07 13:00:42 -06:00
|
|
|
alias cuates='ssh cuates'
|
2023-01-04 16:42:02 -06:00
|
|
|
alias de='ssh -X de'
|
|
|
|
alias pc='ssh -X pc'
|
|
|
|
alias perro='ssh -X perro'
|
2023-02-25 11:33:37 -06:00
|
|
|
alias ppp='ssh ppp'
|
2022-12-07 13:00:42 -06:00
|
|
|
alias prolibreros='ssh prolibreros'
|
2022-12-07 15:55:29 -06:00
|
|
|
alias vpn='ssh vpn'
|
2022-12-07 22:00:43 -06:00
|
|
|
alias vpn-stats='ssh vpn "docker stats -a"'
|
2023-09-18 17:13:11 -06:00
|
|
|
alias zearn='ssh zearn'
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
## Personalizaciones
|
|
|
|
|
|
|
|
alias mv='mv -v'
|
|
|
|
alias rm='rm -v'
|
|
|
|
alias cp='cp -rv'
|
2022-12-15 12:58:41 -06:00
|
|
|
alias df='df -hT'
|
2022-12-07 13:00:42 -06:00
|
|
|
alias du='du -sh'
|
|
|
|
alias sed='sed -zr'
|
|
|
|
alias ssh='ssh -o ServerAliveInterval=30'
|
2023-06-26 11:45:59 -06:00
|
|
|
alias bat='bat --paging never'
|
2023-08-17 22:31:14 -06:00
|
|
|
alias batcat='batcat --paging never'
|
2022-12-07 13:00:42 -06:00
|
|
|
alias free='free -h'
|
|
|
|
alias diff='diff --color'
|
|
|
|
alias mkdir='mkdir -p'
|
2023-05-29 11:16:58 -06:00
|
|
|
alias rsync='rsync -varuchz --progress'
|
2023-05-29 14:00:52 -06:00
|
|
|
alias rdiff-backup='rdiff-backup -v 5'
|
2022-12-07 13:00:42 -06:00
|
|
|
alias perl-rename='perl-rename -v'
|
|
|
|
alias pip='pip3'
|
|
|
|
alias python='python3'
|
|
|
|
alias ipython='ipython3'
|
2023-06-16 19:15:19 -06:00
|
|
|
alias selene="selene --config $HOME/.config/selene/config.toml"
|
2023-07-01 11:15:29 -06:00
|
|
|
alias stylua="stylua --config-path $HOME/.config/stylua/config.toml"
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
## Acciones
|
|
|
|
|
2024-02-14 14:14:04 -06:00
|
|
|
alias buscar="grep -REin --color=always --exclude-dir={.git,.venv,.pytest_cache,__pycache__,\*egg-info} --exclude=\*.min\*"
|
2022-12-07 13:00:42 -06:00
|
|
|
alias search="buscar"
|
2024-04-05 11:05:45 -06:00
|
|
|
alias pdfbuscar="pdfgrep --color=always --page-number=label -PRe"
|
|
|
|
alias pdfsearch="pdfbuscar"
|
2023-07-30 09:34:11 -06:00
|
|
|
alias rastrear='find . -iname'
|
2022-12-07 13:00:42 -06:00
|
|
|
alias trace='rastrear'
|
|
|
|
alias rastrear-todo='find / -iname'
|
|
|
|
alias trace-all='rastrear-todo'
|
|
|
|
alias copiar='xclip -selection clipboard <'
|
|
|
|
alias copy='copiar'
|
|
|
|
alias refresh='recargar'
|
|
|
|
alias install='instalar'
|
|
|
|
alias uninstall='desinstalar'
|
|
|
|
alias remove='desinstalar'
|
|
|
|
alias update='actualizar'
|
|
|
|
alias upgrade='actualizar'
|
2023-07-30 10:09:12 -06:00
|
|
|
alias enlistar='find . -type f'
|
|
|
|
alias list='enlistar'
|
2023-11-15 09:53:02 -06:00
|
|
|
alias comparar='compare'
|
2023-07-30 10:09:12 -06:00
|
|
|
|
2022-12-07 13:00:42 -06:00
|
|
|
## A modo de programitas
|
|
|
|
|
|
|
|
alias alv='rm -rf'
|
|
|
|
alias doc2md='pandoc --markdown-headings=atx -V lang=es'
|
|
|
|
alias mi-ip='curl https://ipapi.co/json'
|
|
|
|
alias my-ip='mi-ip'
|
|
|
|
alias pecas-legacy="sudo docker start pecas && sudo docker exec -it pecas /bin/zsh -l"
|
|
|
|
alias pacman-limpiar='echo "Limpiando caché…" && sudo pacman -Scc && echo "\nEliminando paquetes huérfanos…" && sudo pacman -Rs $(pacman -Qqdt)'
|
|
|
|
alias pacman-clean='pacman-limpiar'
|
|
|
|
alias docker-limpiar='sudo docker system prune -a'
|
|
|
|
alias docker-clean='docker-limpiar'
|
|
|
|
alias añadir-fuentes='font-add'
|
|
|
|
alias tiempo='/usr/bin/t'
|
2023-03-13 10:50:29 -06:00
|
|
|
alias untar='tar -xvf'
|
|
|
|
alias untargz='tar -xvzf'
|
2024-01-16 13:49:53 -06:00
|
|
|
alias timestamp='date +%s'
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
## Monerías
|
|
|
|
|
|
|
|
alias arcoiris='journalctl --no-pager | dotacat'
|
|
|
|
alias matrix='tmatrix --mode=dense -f 0,5 -C magenta'
|
|
|
|
alias acuario='asciiquarium'
|
|
|
|
alias tren='sl'
|
|
|
|
alias fantasma='oneko &'
|
|
|
|
|
2022-12-31 14:57:37 -06:00
|
|
|
## Funciones
|
|
|
|
|
|
|
|
### Detecta tipo de distribución
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
distro-name () {
|
2022-12-31 14:57:37 -06:00
|
|
|
echo $(awk -F= '/^NAME/{print $2}' /etc/os-release) | sed 's/"//g'
|
|
|
|
}
|
|
|
|
|
|
|
|
### Imprime errores
|
|
|
|
|
|
|
|
echo-error () {
|
|
|
|
echo "ERROR: $1"
|
|
|
|
return 1
|
2022-12-07 13:00:42 -06:00
|
|
|
}
|
|
|
|
|
2022-12-31 14:57:37 -06:00
|
|
|
### Actualizador
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
actualizar () {
|
|
|
|
case $1 in
|
|
|
|
alias | aliases)
|
|
|
|
echo "Actualizando alias"
|
2023-06-23 16:35:52 -06:00
|
|
|
aliases actualizar
|
2022-12-07 13:00:42 -06:00
|
|
|
;;
|
|
|
|
paquetes | packages)
|
|
|
|
echo "Actualizando paquetes"
|
2022-12-31 14:57:37 -06:00
|
|
|
if [[ $(distro-name) = "Arch Linux" ]]; then
|
2022-12-07 13:00:42 -06:00
|
|
|
sudo pacman -Syy
|
|
|
|
sudo pacman -S archlinux-keyring
|
|
|
|
else
|
|
|
|
sudo apt update
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
todo | sistema | all | system)
|
|
|
|
echo "Actualizando sistema"
|
2022-12-31 14:57:37 -06:00
|
|
|
if [[ $(distro-name) = "Arch Linux" ]]; then
|
2022-12-07 13:00:42 -06:00
|
|
|
yay -Su
|
|
|
|
else
|
|
|
|
sudo apt upgrade
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
-h | --help | help | ayuda)
|
2022-12-31 14:57:37 -06:00
|
|
|
actualizar-help ;;
|
|
|
|
*)
|
|
|
|
actualizar alias
|
|
|
|
actualizar paquetes
|
|
|
|
actualizar sistema
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
}
|
|
|
|
|
|
|
|
actualizar-help () {
|
2023-06-18 11:21:50 -06:00
|
|
|
echo "actualizar: utilidad para hacer actualizaciones.
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
Uso:
|
|
|
|
actualizar [OPT]
|
|
|
|
|
|
|
|
Opciones:
|
|
|
|
alias | aliases Actualiza alias.
|
|
|
|
paquetes | packages Actualiza repositorio de paquetes.
|
|
|
|
-h | --help | help | ayuda Despliega esta ayuda.
|
|
|
|
todo | sistema | all | system Actualiza el sistema.
|
|
|
|
vacío Actualiza el sistema con actualización previa de paquetes.
|
|
|
|
|
|
|
|
Ejemplos:
|
|
|
|
actualizar alias
|
|
|
|
actualizar paquetes
|
|
|
|
actualizar -h
|
|
|
|
actualizar todo
|
|
|
|
actualizar"
|
|
|
|
}
|
|
|
|
|
2022-12-31 14:57:37 -06:00
|
|
|
### Instalador
|
2022-12-07 13:00:42 -06:00
|
|
|
|
2023-05-29 13:06:34 -06:00
|
|
|
instalar () {
|
2022-12-31 14:57:37 -06:00
|
|
|
if [[ $(distro-name) = "Arch Linux" ]]; then
|
2022-12-07 13:00:42 -06:00
|
|
|
yay -Syy $@
|
|
|
|
else
|
|
|
|
sudo apt install $@
|
2023-06-18 09:59:04 -06:00
|
|
|
fi
|
2022-12-07 13:00:42 -06:00
|
|
|
}
|
|
|
|
|
2022-12-31 14:57:37 -06:00
|
|
|
### Desinstalador
|
2022-12-07 13:00:42 -06:00
|
|
|
|
2023-05-29 13:06:34 -06:00
|
|
|
desinstalar () {
|
2022-12-31 14:57:37 -06:00
|
|
|
if [[ $(distro-name) = "Arch Linux" ]]; then
|
2022-12-07 13:00:42 -06:00
|
|
|
yay -Rss $@
|
|
|
|
else
|
|
|
|
sudo apt purge $@
|
|
|
|
sudo apt clean
|
|
|
|
sudo apt autoremove
|
2023-06-18 09:59:04 -06:00
|
|
|
fi
|
2022-12-07 13:00:42 -06:00
|
|
|
}
|
|
|
|
|
2023-06-18 11:21:50 -06:00
|
|
|
### Gestión del home
|
|
|
|
|
|
|
|
home () {
|
|
|
|
if [ -d "$HOME/.git" ]; then
|
|
|
|
case $1 in
|
|
|
|
estado | status)
|
|
|
|
git -C $HOME status
|
|
|
|
;;
|
|
|
|
editar | edit)
|
|
|
|
e $HOME/.gitignore
|
|
|
|
;;
|
|
|
|
guardar | save)
|
|
|
|
git -C $HOME add .
|
|
|
|
git -C $HOME commit -m "Actualización"
|
|
|
|
;;
|
|
|
|
empujar | push)
|
|
|
|
if output=$(git -C $HOME status --porcelain) && [ ! -z "$output" ]; then
|
|
|
|
home guardar
|
|
|
|
fi
|
|
|
|
unset output
|
|
|
|
git -C $HOME pushall
|
|
|
|
;;
|
|
|
|
-h | --help | help | ayuda)
|
|
|
|
home-help ;;
|
|
|
|
*)
|
|
|
|
if [ -z "$1" ]; then
|
|
|
|
echo-error "al menos un argumento es necesario; por ejemplo 'home -h'"
|
|
|
|
else
|
|
|
|
echo-error "comando '$1' inválido"
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
else
|
|
|
|
echo-error "el home '$HOME' no es un directorio git"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
home-help () {
|
|
|
|
echo "home: utilidad para gestionar el home.
|
|
|
|
|
|
|
|
Home: $HOME
|
|
|
|
Estado: $(if [ -d "$HOME/.git" ]; then echo "OK"; else echo "requiere ser un repositorio git"; fi)
|
|
|
|
|
|
|
|
Uso:
|
|
|
|
home [OPT]
|
|
|
|
|
|
|
|
Opciones:
|
|
|
|
estado | status Muestra el estado del home.
|
|
|
|
editar | edit Edita el archivo .gitignore del home.
|
|
|
|
guardar | save Guarda el estado del home.
|
|
|
|
empujar | push Empuja el estado del home al repositorio.
|
|
|
|
-h | --help | help | ayuda Despliega esta ayuda.
|
|
|
|
|
|
|
|
Ejemplos:
|
|
|
|
home estado
|
|
|
|
home editar
|
|
|
|
home guardar
|
|
|
|
home empujar
|
|
|
|
home -h"
|
|
|
|
}
|
|
|
|
|
2022-12-31 14:57:37 -06:00
|
|
|
### Gestión de alias
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
aliases () {
|
|
|
|
case $1 in
|
2022-12-31 14:57:37 -06:00
|
|
|
actualizar | update)
|
2023-06-23 16:35:52 -06:00
|
|
|
if [ -f "$RLOC_ALIAS" ]; then
|
|
|
|
aliases link
|
|
|
|
else
|
|
|
|
curl -o $BASH_ALIAS $REPO_ALIAS
|
|
|
|
fi
|
|
|
|
recargar
|
2022-12-31 14:57:37 -06:00
|
|
|
;;
|
2022-12-07 13:00:42 -06:00
|
|
|
ver | see)
|
2024-01-23 12:41:26 -06:00
|
|
|
echo $BASH_ALIAS
|
|
|
|
c $BASH_ALIAS
|
2022-12-07 13:00:42 -06:00
|
|
|
;;
|
|
|
|
editar | edit)
|
2024-01-23 12:41:26 -06:00
|
|
|
e $BASH_ALIAS
|
2022-12-31 14:57:37 -06:00
|
|
|
;;
|
2023-06-18 09:59:04 -06:00
|
|
|
empujar | push)
|
2023-06-18 11:32:58 -06:00
|
|
|
repo=$(parent $RLOC_ALIAS)
|
2023-06-18 10:06:17 -06:00
|
|
|
if [ -f "$RLOC_ALIAS" ]; then
|
2024-01-23 12:41:26 -06:00
|
|
|
if [ -f "$BASH_ALIAS" ] && [ ! -L "$BASH_ALIAS" ]; then
|
2023-06-12 10:47:49 -06:00
|
|
|
cp -u $BASH_ALIAS $RLOC_ALIAS
|
|
|
|
fi
|
2023-06-18 11:32:58 -06:00
|
|
|
if output=$(git -C $repo status --porcelain) && [ ! -z "$output" ]; then
|
|
|
|
git -C $repo add .
|
|
|
|
git -C $repo commit -m "Actualización"
|
|
|
|
fi
|
|
|
|
git -C $repo pushall
|
2024-04-22 12:26:31 -06:00
|
|
|
unset output repo
|
2023-06-18 10:06:17 -06:00
|
|
|
recargar
|
|
|
|
else
|
2023-06-18 11:21:50 -06:00
|
|
|
echo-error "no se pudo empujar al repositorio; no existe el archivo '$RLOC_ALIAS'"
|
2023-06-12 10:26:07 -06:00
|
|
|
fi
|
|
|
|
;;
|
2022-12-31 14:57:37 -06:00
|
|
|
enlazar | link)
|
|
|
|
if [ -f "$RLOC_ALIAS" ]; then
|
2023-06-18 11:36:08 -06:00
|
|
|
if [ -f "$BASH_ALIAS" ]; then
|
2022-12-31 14:57:37 -06:00
|
|
|
ln -fs $RLOC_ALIAS $BASH_ALIAS
|
|
|
|
fi
|
|
|
|
recargar
|
|
|
|
else
|
|
|
|
echo-error "no se encontró archivo '$RLOC_ALIAS' para copia."
|
|
|
|
fi
|
2022-12-07 13:00:42 -06:00
|
|
|
;;
|
|
|
|
-h | --help | help | ayuda)
|
2022-12-31 14:57:37 -06:00
|
|
|
aliases-help ;;
|
|
|
|
*)
|
|
|
|
alias
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
}
|
|
|
|
|
|
|
|
aliases-help () {
|
2023-06-18 11:21:50 -06:00
|
|
|
echo "aliases: utilidad para hacer gestionar alias.
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
Uso:
|
|
|
|
aliases [OPT]
|
|
|
|
|
|
|
|
Opciones:
|
2022-12-31 14:57:37 -06:00
|
|
|
actualizar | update Actualiza aliases.
|
|
|
|
ver | see Muestra contenido de archivo de aliases.
|
|
|
|
editar | edit Edita aliases.
|
2023-06-18 09:59:04 -06:00
|
|
|
empujar | push Empuja los cambios locales al repositorio.
|
2022-12-31 14:57:37 -06:00
|
|
|
enlazar | link Genera enlace simbólico entre repo 'aliases' y archivo de aliases.
|
2022-12-07 13:00:42 -06:00
|
|
|
-h | --help | help | ayuda Despliega esta ayuda.
|
|
|
|
vacío Uso regular de 'alias'.
|
|
|
|
|
|
|
|
Ejemplos:
|
|
|
|
aliases ver
|
|
|
|
aliases editar
|
|
|
|
aliases -h
|
|
|
|
aliases"
|
|
|
|
}
|
|
|
|
|
2022-12-31 14:57:37 -06:00
|
|
|
### Recarga aliases
|
2022-12-07 13:00:42 -06:00
|
|
|
|
2022-12-31 14:57:37 -06:00
|
|
|
recargar () {
|
2024-01-23 12:53:43 -06:00
|
|
|
if [ -f "$HOME/.zshrc" ]; then
|
|
|
|
source $HOME/.zshrc
|
|
|
|
else
|
|
|
|
source $HOME/.bashrc
|
|
|
|
fi
|
2022-12-07 13:00:42 -06:00
|
|
|
}
|
|
|
|
|
2023-06-04 11:16:53 -06:00
|
|
|
### Respalda discos
|
|
|
|
|
|
|
|
bak () {
|
|
|
|
echo -n "¿Respaldar $1 en $2? [y/N] "
|
|
|
|
read REPLY
|
|
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
|
|
sudo dd if=$1 of=$2 bs=64K conv=noerror,sync status=progress
|
|
|
|
else
|
|
|
|
echo "No se realizó respaldo"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2023-07-30 09:34:11 -06:00
|
|
|
### Descarga información de sitios web
|
|
|
|
|
|
|
|
dump () {
|
|
|
|
dump_domain=${@: -1}
|
|
|
|
if [ "$1" = "mirror" ] || [ "$1" = "--mirror" ]; then
|
|
|
|
wget --no-clobber --timestamping --continue --page-requisites --html-extension --convert-links \
|
|
|
|
--mirror $dump_domain
|
|
|
|
else
|
|
|
|
wget --no-clobber --timestamping --continue --page-requisites --html-extension --convert-links \
|
|
|
|
--recursive --follow-tags=a --domains=$dump_domain \
|
2023-07-30 10:09:12 -06:00
|
|
|
--reject '*.js,*.css,*.ico,*.txt,*.gif,*.jpg,*.jpeg,*.png,*.mp3,*.pdf,*.tgz,*.flv,*.avi,*.mpeg,*.iso,*.epub' \
|
2023-07-30 09:34:11 -06:00
|
|
|
$dump_domain
|
|
|
|
fi
|
|
|
|
unset dump_domain
|
|
|
|
}
|
|
|
|
|
2023-01-04 16:00:45 -06:00
|
|
|
### Entra a descargas
|
|
|
|
|
|
|
|
cdd () {
|
|
|
|
if [ -d "$HOME/Descargas" ]; then
|
|
|
|
cd $HOME/Descargas
|
|
|
|
else
|
|
|
|
cd $HOME/Downloads
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
### Entra a nubes
|
|
|
|
|
2023-05-19 10:41:03 -06:00
|
|
|
nube () {
|
|
|
|
if [ -d "$HOME/Nube" ]; then
|
|
|
|
cd $HOME/Nube
|
2023-01-04 16:00:45 -06:00
|
|
|
else
|
2023-05-19 10:41:03 -06:00
|
|
|
cd $HOME/Cloud
|
2023-01-04 16:00:45 -06:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2024-04-22 12:46:29 -06:00
|
|
|
### Instalador de fuentes
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
font-add () {
|
|
|
|
if [ ! -d "$FONT_DIR" ]; then
|
|
|
|
mkdir $FONT_DIR
|
|
|
|
fi
|
|
|
|
cp $@ $FONT_DIR
|
2023-06-18 09:59:04 -06:00
|
|
|
fc-cache -fv
|
2022-12-07 13:00:42 -06:00
|
|
|
}
|
|
|
|
|
2024-04-22 12:46:29 -06:00
|
|
|
### Conversor de imágenes o documentos con ImageMagick o Pandoc
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
convertir () {
|
|
|
|
echo "convertir FORMATO1 a FORMATO2 [con pandoc]"
|
|
|
|
for file in *.$1; do
|
|
|
|
echo "$file => $file.$3"
|
|
|
|
if [ "$#" -eq 5 ]; then
|
|
|
|
doc2md $file -o $file.$3
|
|
|
|
else
|
|
|
|
convert -flatten $file $file.$3
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2024-04-22 12:46:29 -06:00
|
|
|
### Gestiona archivos MD
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
md () {
|
2023-09-18 17:13:11 -06:00
|
|
|
format () {
|
|
|
|
pandoc --reference-links --reference-location=document \
|
|
|
|
--columns=$LENGTH -o $1 $1
|
|
|
|
}
|
|
|
|
|
2022-12-07 13:00:42 -06:00
|
|
|
case $1 in
|
|
|
|
formatear | format | f)
|
2023-09-18 17:13:11 -06:00
|
|
|
for arg in "${@:2}"; do
|
|
|
|
if [ -d "$arg" ]; then
|
|
|
|
for file in $arg/*.md; do format $file; done
|
|
|
|
else
|
|
|
|
format $arg
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
;;
|
2022-12-07 13:00:42 -06:00
|
|
|
convertir | convert)
|
2023-10-01 13:55:45 -06:00
|
|
|
pandoc --standalone -V lang=es -o $4 $2 ;;
|
2022-12-07 13:00:42 -06:00
|
|
|
leer | read | ver | cat | c)
|
2023-01-10 14:39:38 -06:00
|
|
|
glow -w $LENGTH -p $2 ;;
|
2023-01-09 18:15:05 -06:00
|
|
|
editar | edit | e)
|
|
|
|
$EDITOR $2 ;;
|
2022-12-07 13:00:42 -06:00
|
|
|
-h | --help | help | ayuda)
|
2022-12-31 14:57:37 -06:00
|
|
|
md-help ;;
|
|
|
|
esac
|
|
|
|
}
|
|
|
|
|
|
|
|
md-help () {
|
2023-06-18 11:21:50 -06:00
|
|
|
echo "md: utilidad para hacer gestionar archivos Markdown.
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
Uso:
|
2023-09-18 17:13:11 -06:00
|
|
|
md [OPT] MD
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
Opciones:
|
2023-09-18 17:13:11 -06:00
|
|
|
formatear | format | f Da formato a uno o más archivos.
|
2022-12-07 13:00:42 -06:00
|
|
|
convertir | convert Convierte el archivo.
|
2023-01-09 18:15:05 -06:00
|
|
|
leer | read | ver | cat | c Muestra el archivo.
|
|
|
|
editar | edit | e Edita el archivo con $EDITOR.
|
2022-12-07 13:00:42 -06:00
|
|
|
-h | --help | help | ayuda Despliega esta ayuda.
|
|
|
|
|
|
|
|
Ejemplos:
|
|
|
|
md formatear archivo.md
|
|
|
|
md convertir archivo.md a archivo.html
|
2023-01-09 18:15:05 -06:00
|
|
|
md leer archivo.md
|
|
|
|
md editar archivo.md
|
2023-06-18 09:59:04 -06:00
|
|
|
md ayuda"
|
2022-12-07 13:00:42 -06:00
|
|
|
}
|
|
|
|
|
2024-04-22 12:46:29 -06:00
|
|
|
### Obtiene directorio padre
|
2023-03-13 10:50:29 -06:00
|
|
|
|
|
|
|
parent () {
|
2023-05-29 13:06:34 -06:00
|
|
|
if [ $# -eq 0 ]; then curr="$PWD"; else curr=$1; fi
|
2023-03-13 10:50:29 -06:00
|
|
|
echo $(python3 -c """
|
|
|
|
from pathlib import Path
|
|
|
|
print(Path('$curr').resolve().parent)
|
|
|
|
""")
|
|
|
|
unset curr
|
|
|
|
}
|
|
|
|
|
2024-04-22 12:46:29 -06:00
|
|
|
### Desactiva o activa virtualenv
|
2022-12-07 13:00:42 -06:00
|
|
|
|
2022-12-31 14:57:37 -06:00
|
|
|
check-venv () {
|
2023-05-29 13:06:34 -06:00
|
|
|
if [ $# -eq 0 ]; then curr="$PWD"; else curr=$1; fi
|
2023-03-13 10:50:29 -06:00
|
|
|
if [ -f "$curr/$VENV/bin/activate" ]; then
|
|
|
|
source $curr/$VENV/bin/activate
|
|
|
|
elif [[ $(parent $1) != "/" ]]; then
|
2023-06-18 11:21:50 -06:00
|
|
|
check-venv $(parent $1)
|
2023-03-13 10:50:29 -06:00
|
|
|
else
|
|
|
|
type deactivate &>/dev/null && deactivate
|
2022-12-07 13:00:42 -06:00
|
|
|
fi
|
2023-03-13 10:50:29 -06:00
|
|
|
unset curr
|
2022-12-07 13:00:42 -06:00
|
|
|
}
|
|
|
|
|
2022-12-31 14:57:37 -06:00
|
|
|
check-venv # Ejecuta cuando se carga
|
2022-12-07 13:00:42 -06:00
|
|
|
|
2024-04-22 12:46:29 -06:00
|
|
|
### Agrega y arranca virtualenv
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
venv () {
|
|
|
|
virtualenv $VENV
|
2022-12-31 14:57:37 -06:00
|
|
|
check-venv
|
2022-12-07 13:00:42 -06:00
|
|
|
}
|
|
|
|
|
2024-04-22 12:46:29 -06:00
|
|
|
### Modifica comportamiento de cd
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
cd () {
|
|
|
|
builtin cd $1
|
2022-12-31 14:57:37 -06:00
|
|
|
check-venv
|
2022-12-07 13:00:42 -06:00
|
|
|
}
|
|
|
|
|
2024-04-22 12:46:29 -06:00
|
|
|
### Modifica comportamiento de git
|
2023-06-18 11:21:50 -06:00
|
|
|
|
|
|
|
git () {
|
|
|
|
if [ "$#" -lt 3 ] && [ "$1" = "push" ] && ( [ -z "$2" ] || [ "$2" = "--tags" ] ); then
|
|
|
|
/usr/bin/git pushall
|
|
|
|
if [ "$2" = "--tags" ]; then
|
|
|
|
/usr/bin/git pushtags
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
/usr/bin/git $@
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2024-04-22 12:46:29 -06:00
|
|
|
### Embellece y verifica código
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
pymp () {
|
2024-04-19 12:28:37 -06:00
|
|
|
if [ ! -d "${@:$#}" ] && [ ! -f "${@:$#}" ]; then
|
|
|
|
pympath=$(pwd)
|
|
|
|
else
|
|
|
|
pympath=${@:$#}
|
|
|
|
fi
|
2022-12-07 13:00:42 -06:00
|
|
|
case $1 in
|
|
|
|
-f | formatear | format)
|
2024-04-19 13:50:13 -06:00
|
|
|
ruff format --config $HOME/.config/ruff/config.toml ;;
|
2022-12-07 13:00:42 -06:00
|
|
|
-h | --help | help | ayuda)
|
2022-12-31 14:57:37 -06:00
|
|
|
pymp-help ;;
|
|
|
|
esac
|
2024-04-19 13:50:13 -06:00
|
|
|
ruff check --config $HOME/.config/ruff/config.toml
|
2024-04-19 12:28:37 -06:00
|
|
|
unset pympath
|
2022-12-31 14:57:37 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
pymp-help () {
|
2023-06-18 11:21:50 -06:00
|
|
|
echo "pymp: utilidad para enchular código de Python.
|
2022-12-07 13:00:42 -06:00
|
|
|
|
|
|
|
Uso:
|
|
|
|
pymp [OPT] [FILE|DIR]
|
|
|
|
|
|
|
|
Opciones:
|
|
|
|
-f | formatear | format Da formato a los archivos.
|
|
|
|
-h | --help | help | ayuda Despliega esta ayuda.
|
|
|
|
|
|
|
|
Ejemplos:
|
|
|
|
pymp archivo.py
|
|
|
|
pymp formatear .
|
2022-12-31 14:57:37 -06:00
|
|
|
pymp ayuda"
|
|
|
|
return 0
|
2022-12-07 13:04:07 -06:00
|
|
|
}
|
2023-06-26 11:45:59 -06:00
|
|
|
|
2024-04-22 12:46:29 -06:00
|
|
|
### Muesta contenido de archivo embellecido
|
2023-06-26 11:45:59 -06:00
|
|
|
|
|
|
|
c () {
|
|
|
|
if [[ $1 == *.json ]]; then
|
2023-08-17 22:31:14 -06:00
|
|
|
if [[ $(distro-name) = "Arch Linux" ]]; then
|
|
|
|
cat $@ | jq | bat --file-name $1 --language json
|
|
|
|
else
|
|
|
|
cat $@ | jq | batcat --file-name $1 --language json
|
|
|
|
fi
|
2024-01-18 20:27:26 -06:00
|
|
|
else
|
2023-08-17 22:31:14 -06:00
|
|
|
if [[ $(distro-name) = "Arch Linux" ]]; then
|
|
|
|
bat $@
|
|
|
|
else
|
|
|
|
batcat $@
|
|
|
|
fi
|
2023-06-26 11:45:59 -06:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2024-04-22 12:46:29 -06:00
|
|
|
### Da formato a archivos
|
|
|
|
|
2023-07-01 11:15:29 -06:00
|
|
|
format () {
|
|
|
|
if [[ $1 == *.md ]]; then
|
|
|
|
md format $1
|
|
|
|
elif [[ $1 == *.py ]]; then
|
|
|
|
pymp format $1
|
|
|
|
elif [[ $1 == *.lua ]]; then
|
|
|
|
stylua $1
|
|
|
|
elif [[ $1 == *.rs ]]; then
|
|
|
|
rustfmt $1
|
|
|
|
fi
|
|
|
|
}
|
2023-11-15 09:53:02 -06:00
|
|
|
|
2024-04-22 12:46:29 -06:00
|
|
|
### Compara archivos
|
|
|
|
|
2023-11-15 09:53:02 -06:00
|
|
|
compare () {
|
|
|
|
if [[ $(md5sum "$1" | cut -d " " -f1) == $(md5sum "$2" | cut -d " " -f1) ]]
|
|
|
|
then
|
|
|
|
echo "true" && true
|
|
|
|
else
|
|
|
|
echo "false" && false
|
|
|
|
fi
|
|
|
|
}
|
2024-01-18 20:27:26 -06:00
|
|
|
|
2024-04-22 12:46:29 -06:00
|
|
|
### Emula gitlab-runner sobre docker; cfr. https://stackoverflow.com/a/65920577
|
|
|
|
|
2024-01-18 20:27:26 -06:00
|
|
|
runner () {
|
|
|
|
runner=gitlab-runner
|
|
|
|
case $1 in
|
|
|
|
-h | --help)
|
|
|
|
runner-help ;;
|
|
|
|
-i | --init)
|
|
|
|
sudo docker run -d --name $runner -w $PWD -v $PWD:$PWD \
|
|
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
|
|
gitlab/gitlab-runner:latest 1>/dev/null
|
|
|
|
;;
|
|
|
|
-rm | --remove)
|
|
|
|
sudo docker rm -f $runner
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
sudo docker exec -it -e STAGE=$1 -w $PWD $runner \
|
|
|
|
bash -c 'git config --global --add safe.directory "*" ; gitlab-runner exec docker $STAGE'
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
unset runner
|
|
|
|
}
|
|
|
|
|
|
|
|
runner-help () {
|
|
|
|
echo "runner: utilidad para usar gitlab-runner en un contenedor.
|
|
|
|
|
|
|
|
Uso:
|
|
|
|
runner [OPT]
|
|
|
|
|
|
|
|
Opciones:
|
|
|
|
-h | --help Despliega esta ayuda.
|
|
|
|
-i | --init Inicializa contenedor $runner en $PWD
|
|
|
|
-rm | --remove Elimina contenedor $runner
|
|
|
|
* Stage de $runner a probar
|
|
|
|
|
|
|
|
Ejemplos:
|
|
|
|
runner --init
|
|
|
|
runner build
|
|
|
|
runner test
|
|
|
|
runner deploy
|
|
|
|
runner -h
|
|
|
|
runner -rm"
|
|
|
|
}
|
2024-04-22 12:26:31 -06:00
|
|
|
|
2024-04-22 12:46:29 -06:00
|
|
|
### Convierte STDOUT a TSV al reemplazar todos los códigos ANSI por tabuladores
|
|
|
|
|
2024-04-22 12:26:31 -06:00
|
|
|
totsv () {
|
|
|
|
rgx_ansi_codes="\(\x1b\[[0-9;]*[mGKHF]\)\+"
|
|
|
|
rgx_trim="s/^\s*//g;s/\s*$//g"
|
|
|
|
if command -v gsed > /dev/null; then cmd=gsed; else cmd=sed; fi
|
|
|
|
$cmd -u -e 's/\t/\\t/g' -e "s/$rgx_ansi_codes/\t/g" -e $rgx_trim
|
|
|
|
unset cmd rgx_ansi_codes rgx_trim
|
|
|
|
}
|