━━━━━━━━━ LEO Andinus ━━━━━━━━━ Table of Contents ───────────────── 1 Documentation .. 1.1 encrypt/sign .. 1.2 delete .. 1.3 help 2 Example 3 History Leo is my archival program. It creates tar(1) files from a pre-defined list. It can encrypt/sign files with gpg2(1). • Web-site: [https://andinus.nand.sh/leo] • Source: [https://git.tilde.institute/andinus/leo] • Source (mirror): [https://github.com/andinus/leo] 1 Documentation ═══════════════ `%dispatch' has the pre-defined list. Learn the list directly from `leo.pl', it's self-explanatory. Or check the sub `HelpMessage', it explains what each command does. For example, `documents' will archive `$ENV{HOME}/documents' to `/tmp/archive/documents_$ymd.tar' where `$ymd' is current date in `YYYY-MM-DD' format. ┌──── │ my %dispatch = ( │ "documents" => sub { │ tar_create("/tmp/archive/documents_$ymd.tar", │ "-C", "$ENV{HOME}/documents", "."); │ }, │ ... │ ) └──── I use this to quickly archive some of my files & copy them to another computer as a backup. Some options can also be passed through environment variables. That allows for configuration in shell rc file & the user can run leo directly without looking at options. ━━━━━━━━━━━━━━━━━━━━━━ encrypt LEO_ENCRYPT sign LEO_SIGN delete LEO_DELETE ━━━━━━━━━━━━━━━━━━━━━━ 1.1 encrypt/sign ──────────────── `encrypt_sign' handles `gpg2' related functions. It passes `--yes' by default. *Note*: `gpg2' might compress the archives depending on your config. Default is to enable compression, if you don't want this then add `-z 0' to `@options'. `-z' specifies the compression level & 0 means no compression. *Note*: My journal is encrypted so to prevent re-encryption `encrypt' option is not passed to gpg2. This only affects journal profile. So `leo --encrypt journal pass' will still encrypt pass. 1.2 delete ────────── Removes the archive file after running gpg2(1). This means that either `encrypt' or `sign' option must be passed. 1.3 help ──────── Running just `leo' will print help. 2 Example ═════════ ┌──── │ # This will encrypt, sign & also delete the tar file for documents, │ # journal, pass & ssh profile. │ leo --encrypt --sign --delete documents journal pass ssh │ │ # This will do the same. You can add these environment variables to │ # your shell rc & then just run ``leo documents journal ssh pass'' to │ # do the same. │ LEO_ENCRYPT=1 LEO_SIGN=1 LEO_DELETE=1 leo documents journal ssh pass └──── 3 History ═════════ This was Leo's initial description: Leo is a program to run my personal scripts. You might not find them useful, these were previously shell scripts that I rewrote in Perl. I had created a sync function initially & was going to expand it. Then I decided to remove those sync functions because it was too complex, I replaced then with simple `sh' scripts. I added a simple `archive' function later & decided to turn Leo into that function. So, it's not a meta-program anymore. I was thinking of creating something that does all the things for me but that'll be too complex.