proclint(1)

πŸ’– proclint(1) β€” the vibe check for your procmail rc files πŸ’–

okay so bestie, listen. you know how your procmail rc files can be a whole mess and you have no idea why your mail is going to the void? yeah. that's what proclint is for. it's a lint tool, manual section 1, and it is literally here to read your rc files and tell you what's giving syntax error energy. no cap.


✨ SYNOPSIS ✨

proclint [options] <procmail *.rc files>

that's it. that's the whole summoning ritual. you give it options (optional, queen) and then one or more procmail *.rc files. periodt. πŸŽ€


🌸 OPTIONS 🌸

  • -h, --help β€” show a lil short help text. short. brief. a snack, not a meal. πŸ’…
  • -i, --includerc β€” go scan the files that get pulled in by INCLUDERC statements, and possibly list them too. it's giving "yes, follow the chain, i wanna see everything." πŸ¦‹
  • -I, --noinclude β€” do not scan INCLUDERC references. this is the default, so if you don't say anything, this is the energy you get. πŸ™ˆ
  • -l, --list β€” list the lines in the procmail recipe files. all of them. out loud. main character behavior. πŸ‘‘
  • -L, --nolist β€” don't list lines, except for errors. this is the default too. quiet luxury. ✨
  • -p, --procmailrc β€” check $HOME/.procmailrca
side note: yes, that path is literally written as $HOME/.procmailrca in the original. we are NOT fixing it. we are simply reporting it. πŸ’€

πŸ’œ DESCRIPTION πŸ’œ

so what does it actually do? it checks your procmail rc files for proper syntax, recipe nesting, all of that. your rc file walks in, proclint looks it up and down, and goes "hmm. i see it." 😌

the output is built like this:

LINE-NUMBER:FLAG:DEPTH: text

and the FLAG part? it's one of these lil guys:

  • R β€” recipe
  • C β€” condition
  • A β€” action (redirect, !, or pipe, |)
  • F β€” folder
  • = β€” assignment
  • + β€” continuation
  • E β€” line may be erroneous ⚠️ (this is the one you screenshot and send to the group chat)

and DEPTH? that's how deep your recipe nesting goes. it only shows up when it's greater than zero, because zero is humble and doesn't need the attention. 🌈


πŸ’€ BUGS πŸ’€

okay so. there are many bugs. like, many. the manpage says so, we're not gonna sugarcoat it. for example: multiline handling is not done (continued strings). so if your strings are continued across lines, bestie, it's not gonna catch that. 😭

also, please regard the output as advisory only.x

and yes β€” there is a stray x at the end of that sentence in the original. we are keeping it. it's iconic. it's part of the lore now. πŸŽ€

⭐ STATUS CODES ⭐

the program returns non-zero if a problem is found. so zero = slay, non-zero = something's off. simple as that. πŸ’…


🧚 ENVIRONMENT 🧚

None.

nothing. no environment variables. zero. the void. 🫢


πŸ“ FILES πŸ“

None.

again: nothing. none. no files. she's self-contained. πŸ’–


πŸ”₯ SEE ALSO πŸ”₯

go read that one too, iykyk. πŸ‘‘


πŸ‘‘ AUTHORS πŸ‘‘

the program was written by Alan K. Stebbens <aks@sgi.com>. absolute legend behavior. 🫢

this manual page was written by Jari Aalto <jari.aalto@cante.net>. also a legend.

released under license GNU GPL v2 or (at your option) any later version. for more info about the license, go visit <http://www.gnu.org/copyleft/gpl.html>. ✨


πŸ’– and that's the whole page, bestie! this was proclint(1), dated 2008-12-09, brought to you by the proclint source itself. now go lint those rc files before your mail ends up somewhere it should not be. mwah! πŸ’…πŸŒΈπŸ¦‹