ed: buscalog.sh *mejora*

ed: buscalog.sh mejora

Reemplazo de 'sustitución de comando' ciclo for por función,
en la carga de 'arrays' de directorios y nombres de logs.
Separación del proceso en 3 funciones, mejora legibilidad.

  ***Admite nombres de rutas que contengan espacios***
This commit is contained in:
jp.av.dev 2022-04-29 17:37:58 -04:00
parent 381f5886ed
commit 06d0b0c950
2 changed files with 29 additions and 20 deletions

View File

@ -10,7 +10,7 @@ Selección de scripts de autoria propia
- [Lol laucher y debug](#rito-pls)
> **NOTA:** Funciones ejecutadas con ***alias***
> ej: `alias mi_alias='/ruta/a/scritps/script funcion <arg(s)>'`
> - ej: `alias mi_alias='/ruta/a/script funcion <arg(s)>'`
----
@ -21,16 +21,14 @@ ej `custom_log_dirs`:
```txt
/ruta/a/directorio
/ruta/a/otro/directorio
/ruta/a/otro/directorio/mas
/ruta/a otro/directorio con espacios
```
> nombres de directorios sin espacios ej `/ruta/a/dir/deLogs`
> nombres de directorios terminan en `\n`
> - Los nombres de directorios terminan en `\n`
Lista los log disponibles en los directorios mencionados.
> extension `.log`
> logs con permiso de lectura
> - archivos con extension `.log`
> - archivos con permiso de lectura
`./buscalog.sh listLog`
```txt
@ -92,7 +90,7 @@ UsuarioGit2 user2@git.org keyUser2
UsuarioGit3 user3@git.org keyUser3
UsuarioGit4 user4@git.org keyUser4
```
> llaves ssh en `~/.ssh/keys/`
> - llaves ssh en `~/.ssh/keys/`
### Listar usuarios agregados
`./gitfun.sh gitUser`

View File

@ -1,27 +1,38 @@
#!/usr/bin/env bash
declare -a LOG_DIRS
declare -a customLogDirs
LOGBASEDIR='/var/log';
CUSTLOGDIRS="$HOME/.config/custom_log_dirs";
ConT=0;
lsLogDirs(){
OIFS="$IFS"
IFS=$'\n'
while read -a LINEA; do
customLogDirs+=($LINEA)
done < $CUSTLOGDIRS
\ls -U ${LOGBASEDIR}/*.log 2>/dev/null
for dir in ${customLogDirs[@]}; do
\ls -U ${dir}/*.log 2>/dev/null
done
IFS="$OIFS"
}
cargaLogDirs(){
ConT=0
OIFS="$IFS"
IFS=$'\n'
while read -a LINEA; do
[[ -r "${LINEA}" ]] && LOG_DIRS[$ConT]="${LINEA}" && ((++ConT))
done <<< $(\ls -U ${LOGBASEDIR}/*.log 2>/dev/null &&
for dir in "${customLogDirs[@]}"; do \ls -U $dir/*.log 2>/dev/null; done; )
done <<< $(lsLogDirs)
IFS="$OIFS"
}
listLog(){
cargaLogDirs
clear
local cont=0
printf '\n \e[1;32mSelección de Logs :\n'
printf ' %s\e[0m\n' "-------------------"
for str in ${LOG_DIRS[@]}; do
for str in "${LOG_DIRS[@]}"; do
printf ' \e[1;34m%s)\e[0m \e[0;32m%s \e[0m\n' "$cont" "${str}" | \
sed 's/\/var\/log\///g ; s/\.log//g'
((++cont))