b698177860
Wrappers Bash sobre pass (password-store) para CRUD de secretos, generación de contraseñas y sincronización con git. Incluye script de test. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
41 lines
1.1 KiB
Bash
41 lines
1.1 KiB
Bash
# pass_list
|
|
# ---------
|
|
# Lista entradas del password store como JSON array.
|
|
# Opcionalmente filtra por prefijo.
|
|
# Sale con exit code 1 si pass falla.
|
|
#
|
|
# USO (sourced):
|
|
# source pass_list.sh
|
|
# pass_list # todas las entradas
|
|
# pass_list agentes # solo bajo agentes/
|
|
|
|
pass_list() {
|
|
local prefix="${1:-}"
|
|
|
|
local raw
|
|
raw=$(pass ls "$prefix" 2>/dev/null)
|
|
if [ $? -ne 0 ]; then
|
|
echo "pass_list: fallo al listar entradas" >&2
|
|
return 1
|
|
fi
|
|
|
|
# Parsear output de pass: extraer nombres limpios (sin tree chars)
|
|
local entries
|
|
entries=$(echo "$raw" | sed 's/[│├└──── ]//g' | sed '/^$/d' | grep -v '^Password' | grep -v '^[[:space:]]*$')
|
|
|
|
# Construir JSON array
|
|
printf '['
|
|
local first=true
|
|
while IFS= read -r line; do
|
|
line=$(echo "$line" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$//')
|
|
[ -z "$line" ] && continue
|
|
if [ "$first" = true ]; then
|
|
first=false
|
|
else
|
|
printf ','
|
|
fi
|
|
printf '"%s"' "$line"
|
|
done <<< "$entries"
|
|
printf ']'
|
|
}
|