man page
This commit is contained in:
+155
@@ -0,0 +1,155 @@
|
||||
.TH DRAWER 1 "2026-05-15" "drawer" "User Commands"
|
||||
.SH NAME
|
||||
drawer \- encrypt and decrypt project directories
|
||||
.SH SYNOPSIS
|
||||
.B drawer open
|
||||
.RB [ \-i
|
||||
.IR key ]
|
||||
.RB [ \-f ]
|
||||
.I drawer_file
|
||||
.RI [ target_path ]
|
||||
.br
|
||||
.B drawer close
|
||||
.RB [ \-i
|
||||
.IR key ]
|
||||
.I target_path
|
||||
.RI [ drawer_file ]
|
||||
.br
|
||||
.B drawer info
|
||||
.RB [ \-i
|
||||
.IR key ]
|
||||
.I drawer_file
|
||||
.br
|
||||
.B drawer key
|
||||
.I filename
|
||||
.SH DESCRIPTION
|
||||
.B drawer
|
||||
stores project directories as encrypted archive files called drawers.
|
||||
Each drawer file is a gzip-compressed tar archive encrypted with an
|
||||
SSH public key using the age encryption format.
|
||||
Only the corresponding SSH private key can open it.
|
||||
.PP
|
||||
Drawer files must use the
|
||||
.B .drawer
|
||||
extension.
|
||||
The SSH key to use is specified with
|
||||
.B \-i
|
||||
or the environment variable
|
||||
.BR DRAWER_KEY .
|
||||
.SH SUBCOMMANDS
|
||||
.SS open
|
||||
Decrypt
|
||||
.I drawer_file
|
||||
and expand its contents into
|
||||
.IR target_path .
|
||||
.PP
|
||||
If
|
||||
.I target_path
|
||||
is omitted it is inferred: a single-file drawer extracts to a file
|
||||
named after the stored entry; a directory drawer extracts to a
|
||||
directory named after the drawer file stem.
|
||||
The inferred path is printed to standard output.
|
||||
.PP
|
||||
Fails if
|
||||
.I target_path
|
||||
already exists and is non-empty unless
|
||||
.B \-f
|
||||
is given.
|
||||
.TP
|
||||
.BI \-i " key"
|
||||
Path to the SSH private key. Overrides
|
||||
.BR DRAWER_KEY .
|
||||
.TP
|
||||
.B \-f
|
||||
Force extraction even if
|
||||
.I target_path
|
||||
is non-empty.
|
||||
.SS close
|
||||
Compress and encrypt
|
||||
.I target_path
|
||||
and write the result to
|
||||
.IR drawer_file .
|
||||
.I target_path
|
||||
may be a file or a directory.
|
||||
.PP
|
||||
If
|
||||
.I drawer_file
|
||||
is omitted it defaults to
|
||||
.I target_path
|
||||
with a
|
||||
.B .drawer
|
||||
extension appended.
|
||||
The inferred drawer file path is printed to standard output.
|
||||
.PP
|
||||
Fails if
|
||||
.I drawer_file
|
||||
would be written inside
|
||||
.IR target_path .
|
||||
.TP
|
||||
.BI \-i " key"
|
||||
Path to the SSH private key. Overrides
|
||||
.BR DRAWER_KEY .
|
||||
.SS info
|
||||
Decrypt
|
||||
.I drawer_file
|
||||
and print a one-line summary: whether it contains a single file or a
|
||||
directory, and the size or file count.
|
||||
.TP
|
||||
.BI \-i " key"
|
||||
Path to the SSH private key. Overrides
|
||||
.BR DRAWER_KEY .
|
||||
.SS key
|
||||
Generate a new Ed25519 SSH key and write it to
|
||||
.IR filename .
|
||||
Fails if
|
||||
.I filename
|
||||
already exists or its parent directory does not exist.
|
||||
.SH ENVIRONMENT
|
||||
.TP
|
||||
.B DRAWER_KEY
|
||||
Path to the SSH private key used for encryption and decryption.
|
||||
Overridden by
|
||||
.BR \-i .
|
||||
.SH EXAMPLES
|
||||
Generate a new key:
|
||||
.PP
|
||||
.RS
|
||||
.B drawer key ~/.keys/mykey
|
||||
.RE
|
||||
.PP
|
||||
Close a directory into a drawer (drawer file inferred):
|
||||
.PP
|
||||
.RS
|
||||
.B drawer close ~/projects/myproject
|
||||
.RE
|
||||
.PP
|
||||
Close with an explicit drawer file path:
|
||||
.PP
|
||||
.RS
|
||||
.B drawer close ~/projects/myproject ~/archive/myproject.drawer
|
||||
.RE
|
||||
.PP
|
||||
Open a drawer (target directory inferred):
|
||||
.PP
|
||||
.RS
|
||||
.B drawer open ~/archive/myproject.drawer
|
||||
.RE
|
||||
.PP
|
||||
Open a drawer into an explicit directory:
|
||||
.PP
|
||||
.RS
|
||||
.B drawer open -i ~/.keys/mykey ~/archive/myproject.drawer ~/projects/myproject
|
||||
.RE
|
||||
.PP
|
||||
Show what is inside a drawer:
|
||||
.PP
|
||||
.RS
|
||||
.B drawer info -i ~/.keys/mykey ~/archive/myproject.drawer
|
||||
.RE
|
||||
.SH EXIT STATUS
|
||||
.B drawer
|
||||
exits 0 on success and 1 on any error, printing a diagnostic message
|
||||
to standard error.
|
||||
.SH SEE ALSO
|
||||
.BR ssh-keygen (1),
|
||||
.BR age (1)
|
||||
Reference in New Issue
Block a user