Once: el CLI que evita aprobar con tu huella cada lectura de secretos
Once: Cache CLI Commands
Once ejecuta un comando en tu directorio, imprime su salida y la guarda en memoria en un pequeño daemon por usuario. Las llamadas repetidas con el mismo comando, directorio y tenant key se responden desde la memoria hasta que la entrada expira. El daemon se detiene solo cuando expira su última entrada. El caso típico: leer secretos de 1Password sin aprobar cada lectura con tu huella. Solo se cachea stdout; los comandos que fallan nunca se guardan.
El daemon se detiene por sí solo una vez que su última entrada ha expirado.
- aktau
Este tipo de herramientas son muy útiles. Yo tengo la mía propia llamada memo (que no es más que un shell script: https://github.com/aktau/dotfiles/blob/master/bin/memo).
Se habló de ella en https://news.ycombinator.com/item?id=45670052 y otros aportaron las suyas (como bkt(1) y up(1)).
Las principales diferencias que veo:
- memo no necesita compilarse (es un shell script)
- once mantiene la caché de salida en un daemon en ejecución. En cambio, memo almacena el contenido bajo /tmp con la mejor compresión disponible (prefiere zstd). Hay ventajas y desventajas en eso. Más óptimo de Pareto desde el punto de vista de la seguridad podría ser tener una especie de clave de sesión y comprimir y luego cifrar los archivos en disco.
- __MatrixMan__
Sueño con aplicaciones que expongan suficientes metadatos sobre sus salidas como para que el sistema operativo pueda saber si es necesario volver a ejecutarlas sin que yo tenga que especificarlo.
Nixos hace esto para las compilaciones, pero no lo he visto generalizado a procesos arbitrarios.
- xuhu
Ojalá esto funcionara sin tener que prefijar los comandos con "once". Sobre todo si ejecuté un comando con salida verbosa y después decidí que quería hacer un grep de algo. Las terminales tienen la salida en su búfer de scrollback y quizá solo sea cuestión de escribir un comando "output" que me permita ejecutar:
$ cmake ..
$ output | grep "libssl version"
- deadbunny
Siempre he querido lidiar con la invalidación de caché en mi terminal.
- giancarlostoro
> El caso de uso típico: leer secretos de 1Password sin aprobar cada lectura con tu huella.
Eh, no sé yo sobre esa, jefe.