DAMNIT(8)
π DAMNIT π (that's section 8 of the System Manager's Manual, bestie)
okay so real talk, the tool is literally called damnit, and no it's not me being dramatic, that's the actual name π
β¨ NAME β¨
damnit β DAtabase MaNagement InTerface
yes it's an acronym. yes it spells a swear. the devs knew exactly what they were doing and honestly? iconic π
πΈ SYNOPSIS πΈ
damnit [-h] [-d <file> <value>] [-a <file> <value>] [-f <string>]
[-l <file>]
π¦ DESCRIPTION π¦
so damnit is the database management tool for gnarwl(8). that's its whole job. it lets system administrators list and/or manipulate gnarwl's database files π
and listen β this is not intended to be employed by the average user. average users should use LDAP as the only interface to gnarwl(8). so if that's you, respectfully, back away from the terminal, this one's not for you π
π OPTIONS π
-hβ print usage information. the classic "help me pls" flag, we love her β¨-f <string>β select the output format for the database listing (only meaningful with-l, like she only shows up when there's a list to format, main character energy fr).<string>is the template for what the output should look like. these macros are recognized:%entryβ the entry itself%timeβ the entrytime, in human readable form%tstampβ the entrytime, as a timestamp\enβ a newline character\etβ a tab character
the default format is: "%time -> %entry\en". and bestie, don't forget the trailing newline π (yes that's a warning, no I'm not being extra, it's literally in the manpage)
-d <file> [<value>]β delete<value>from<file>. if<value>is omitted,damnitwill read<value>fromstdin, one per line, until eitherEOFor an empty line is detected ποΈ-a <file> [<value>]β add<value>to<file>. and here's the cute part: if<value>is already stored in<file>,damnitwill only update the timestamp. lowkey efficient π if<value>is omitted,damnitwill read<value>fromstdin, one per line, until eitherEOFor an empty line is detected-l <file>β list the database file specified by<file>. that's it, that's the whole vibe π
π DATABASE FILES π
okay so gnarwl uses hashfiles for storing information on disk. meaning: all datasets consist of key and value pairs π
- the key is always a NULL terminated character string
- the value contains the timestamp, when the key was entered (last time) into the file
that timestamp is of type time_t (as returned by time(2)), and therefore β and this is the important bit β gnarwl's database files are not copyable between different system architectures. no cap. don't try it. it will not go how you want it to go π
π AUTHOR π
Patrick Ahlbrecht <p.ahlbrecht@billiton.de>
π«Ά SEE ALSO π«Ά
π FILES π
/var/lib/gnarwl/block/*β every file in this directory represents an email addressgnarwl(already) received a mail for. every timegnarwlsends out an autoreply for an address, the recipient of that mail is locked into the according file.gnarwlwill not send any further autoreplies for this sender/receiver combo until the timeout specified ingnarwl.cfgexpires β³/var/lib/gnarwl/blacklist.dbβ email addresses listed as keys in this file are not subject to autoresponding (the addresses ofroot,postmaster,webmasterand the like should be put herein). note: the complete mailaddress, as it would appear in an email, must be specified here, becausegnarwlchecks these "as-is" π«π§/var/lib/gnarwl/badheaders.dbβ each entry in this file represents a line that may not occur in the header of a received email. that is,gnarwlwon't reply to any mail it is able to match a headerline with an entry in this file π βοΈ
okay that's the whole page bestie, mwah π this was the DAMNIT(8) page out of the System Manager's Manual β that's section 8, and shoutout to the page itself for carrying the name DAMNIT(8) all the way to the end, consistent queen πβ¨
π¦ where this page comes from
- debian bookworm: gnarwl 3.6.dfsg-13+b1
- debian trixie: gnarwl 3.6.dfsg-14
- ubuntu jammy: gnarwl 3.6.dfsg-13build1
- ubuntu noble: gnarwl 3.6.dfsg-13build4
- ubuntu questing: gnarwl 3.6.dfsg-14
- ubuntu resolute: gnarwl 3.6.dfsg-14build1
- ubuntu stonking: gnarwl 3.6.dfsg-14build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms