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) - [Lol laucher y debug](#rito-pls)
> **NOTA:** Funciones ejecutadas con ***alias*** > **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 ```txt
/ruta/a/directorio /ruta/a/directorio
/ruta/a/otro/directorio /ruta/a/otro/directorio
/ruta/a/otro/directorio/mas /ruta/a otro/directorio con espacios
``` ```
> - Los nombres de directorios terminan en `\n`
> nombres de directorios sin espacios ej `/ruta/a/dir/deLogs`
> nombres de directorios terminan en `\n`
Lista los log disponibles en los directorios mencionados. Lista los log disponibles en los directorios mencionados.
> extension `.log` > - archivos con extension `.log`
> logs con permiso de lectura > - archivos con permiso de lectura
`./buscalog.sh listLog` `./buscalog.sh listLog`
```txt ```txt
@ -92,7 +90,7 @@ UsuarioGit2 user2@git.org keyUser2
UsuarioGit3 user3@git.org keyUser3 UsuarioGit3 user3@git.org keyUser3
UsuarioGit4 user4@git.org keyUser4 UsuarioGit4 user4@git.org keyUser4
``` ```
> llaves ssh en `~/.ssh/keys/` > - llaves ssh en `~/.ssh/keys/`
### Listar usuarios agregados ### Listar usuarios agregados
`./gitfun.sh gitUser` `./gitfun.sh gitUser`

View File

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