aboutsummaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-09-14 15:16:55 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-09-14 15:16:55 +0200
commit0b5d0eb92c5be2f0ddb2fa73990f31e5654e57fe (patch)
tree358e331945b8206ed4a72703e3aedfe8ea7cdcdb /man
parent1d3f2d1e4c59867024470d3444e12698b7ebb22e (diff)
downloadkrino-0b5d0eb92c5be2f0ddb2fa73990f31e5654e57fe.tar.gz
krino-0b5d0eb92c5be2f0ddb2fa73990f31e5654e57fe.zip
krino: 0.0.5 — keyword cache, t and d in reviewv0.0.5
Diffstat (limited to 'man')
-rw-r--r--man/krino.134
-rw-r--r--man/krino.conf.522
2 files changed, 55 insertions, 1 deletions
diff --git a/man/krino.1 b/man/krino.1
index 458bd56..cc4c2e1 100644
--- a/man/krino.1
+++ b/man/krino.1
@@ -244,11 +244,25 @@ each step, then the rule and the reason it matched:
copy \(-> ~/backup/invoices/2026/
rule backup
because content "invoice"
- [y] yes [n] no [a] yes to this and all remaining [d] done, apply chosen so far [q] quit, apply nothing
+ [y] yes [n] no [a] yes to this and all remaining [t] trash [d] delete permanently [w] write, apply chosen so far [q] quit, apply nothing
.Ed
.Pp
Approval is per file: a file's whole chain runs, or none of it.
+.Ic t
+and
+.Ic d
+set aside what the rules planned for the file and approve one step on the
+file itself instead: to the Trash, or deleted permanently, logged under the
+rule name
+.Sy (review) .
.Ic d
+first asks
+.Dq delete Ar name No permanently? [y/N] ;
+any key but
+.Ic y
+deletes nothing and asks about the file again.
+A permanent delete cannot be undone.
+.Ic w
stops asking and applies whatever was already chosen, declining the rest.
.Ic q
here aborts the review for this directory entirely, discarding even a file
@@ -272,6 +286,13 @@ both apply nothing:
[a] apply all [c] choose per file [s] skip [q] quit
.Ed
.Pp
+Its per-file prompt is the one in
+.Sx REVIEW
+without
+.Ic t
+and
+.Ic d .
+.Pp
An undo run cannot itself be undone: naming it to
.Ic undo
is refused.
@@ -320,6 +341,11 @@ step uses
.Pq Pa $XDG_DATA_HOME/Trash ;
default
.Pa ~/.local/share .
+.It Ev XDG_CACHE_HOME
+Base of the keyword cache
+.Pq Pa $XDG_CACHE_HOME/krino ;
+default
+.Pa ~/.cache .
.It Ev PAGER
Used to show a plan taller than the terminal; default
.Dq less -FRX .
@@ -355,6 +381,12 @@ against the same directory waits, or fails immediately with
The freedesktop.org trash a
.Sy (delete)
step moves files into.
+.It Pa $XDG_CACHE_HOME/krino/ Ns Ar name Ns Pa .cache
+Which content keywords each extracted file of directory
+.Ar name
+contains, so an unchanged file is not extracted again; see
+.Xr krino.conf 5 , Sx CONTENT EXTRACTION .
+Safe to delete at any time.
.El
.Sh EXIT STATUS
.Bl -tag -width Ds
diff --git a/man/krino.conf.5 b/man/krino.conf.5
index 769bd51..c89fbd9 100644
--- a/man/krino.conf.5
+++ b/man/krino.conf.5
@@ -521,6 +521,28 @@ Matching is substring:
matches
.Ql \&"acmeco\&" .
Words hyphenated across lines in a PDF are not rejoined.
+.Ss Keyword cache
+For each file it extracts,
+.Nm krino
+records in
+.Pa $XDG_CACHE_HOME/krino/ Ns Ar name Ns Pa .cache
+which of the directory's content keywords the text contains, and answers
+later content tests from it while the file is unchanged.
+No text and no file names are stored; a file is known by device, inode,
+size and modification time, which a move or rename within one filesystem
+keeps.
+The keywords are stored as written in the configuration.
+.Pp
+A file is extracted again when it changes, or when a test asks about a
+keyword its entry was never checked against.
+Failures are never cached, and a file above
+.Ic max-read
+is refused before the cache is read.
+The whole cache is discarded when an extraction tool is installed, removed
+or replaced.
+Each run keeps entries only for files still in the directory.
+A file edited in place with its size and modification time preserved keeps
+its old answers; deleting the cache resets everything.
.Sh ACTIONS
.Ss Chains
A file's chain is the actions of every matching rule, in rule order, and