feat: funciones pass para gestión de secretos — get, set, list, delete, generate, sync
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>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# 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 ']'
|
||||
}
|
||||
Reference in New Issue
Block a user