💾 Archived View for it.omarpolo.com › articoli › plass-0.1.gmi captured on 2023-01-29 at 15:37:38. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-01-29)

-=-=-=-=-=-=-

Annunciando plass(1)

Molto, molto tempo fa, così tanto che la memoria inizia a tradirmi, mi sono arrabbiato con pass(1). Nonostante mi piaccia molto l’idea, trovo che sia poco comodo da “scriptare”: se uso uno strumento da riga di comando *pretendo* che abbia un output strutturato in modo da poter essere ulteriormente manipolato.

Non è il caso di pass(1).

Quindi, forse anche un po’ in preda a una ricaduta della sindrome NIQ (non inventato qui), ho scritto un rimpiazzo: perl + pass = plass!

Per chi non lo conoscesse, pass è un password manager. Ha un design piuttosto carino: le password sono salvate separatamente, criptate con GPG e organizzate in un albero di file.

Il problema nel mio caso era che, dato che l’output dello strumento non è facilmente scriptabile (ad esempio la ricerca delle password usa tree(1) per mostrarle...) ho finito per accumulare qualche pezzettino di codice qui e lì per fare le cose manualmente, bypassando pass(1).

Alla fine ho raggruppato tutto in un unico script, ho convertito git(1) in got(1) e ho scritto plass!

Quello di cui sono particolarmente felice è il livello di minimalismo che ho raggiunto: sono partito con un set di comandi che pensavo essere “minimale” e sono riuscito a ridurlo strada facendo. Il set di comandi offerti da plass(1) al momento è

plass(1) in fondo è un sistema per gestire un albero di file criptati! In quest’ottica ‘plass gen’ è un po’ un pesce fuor d’acqua quasi, e infatti sto pensando di ridurre ancora il set di comandi togliendolo. ‘plass tee’ permette di inserire una password, e quindi è facilmente possibile usarlo in combo con altri strumenti

$ generatore-di-password | plass tee www/foo | clip

ma per il momento almeno è comodo avere un comando dedicato per la generazione di password.

La maggior parte delle operazioni di plass(1) usano got(1) implicitamente per registrare i cambiamenti all’archivio. Sapere che le password sono mantenute in un repository è piuttosto tranquillizzante: tutto lo storico è (più o meno) disponibile per sempre!

Al momento plass è compatibile con pass: per migrare basta (ri)fare il checkout di ~/.password-store con got(1); per tornare indietro a pass(1) basta ri-rifare il checkout con git(1) e pass(1) continuerà a lavorare come nulla fosse successo.

In futuro però vorrei esplorare altre soluzioni per criptare le password: gpg mi sta un po’ antipatico!

pagina web

plass(1) manpage

$BlogIt: plass-0.1.gmi,v 1.1 2022/10/02 14:26:44 op Exp $