# 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 ']' }