GENDARME(1)

πŸ’– GENDARME πŸ’–

okay bestie, so this is the manpage for Gendarme β€” version Gendarme 4.2.0.0 if you're keeping score πŸŽ€ β€” and it's literally a rule-based code analysis tool for Mono. sit down, get comfy, we're gonna go through this together and you're gonna understand it. no cap.


✨ SYNOPSIS ✨

gendarme [--config configfile] [--set ruleset] [--log file | --xml file
| --html file] [options] assemblies ...

that's the whole vibe right there. πŸ’…


🌸 DESCRIPTION 🌸

so. Gendarme is an extensible, rule-based tool that goes looking for problems in .NET applications and libraries. it's giving detective energy πŸ” but for code.

the way it works is: Gendarme inspects programs and libraries that contain code in ECMA CIL format β€” that's Mono and .NET, both of them β€” and it hunts for common problems in the code. and here's the thing, these are problems that compilers do not typically check, or historically have not checked. so like, your compiler said "looks good bestie 🫢" and then Gendarme shows up like "actually…" 😭


✨ OPTIONS ✨

  • --config configfile β€” tell it which config file to use for the rule sets and rule settings. default is 'rules.xml', that's the one it reaches for if you don't say anything.
  • --set ruleset β€” pick a specific rule set out of the configfile. defaults to 'default', because of course it does.
  • --log file β€” save the report as a text file into the file you name.
  • --xml file β€” save the report, all formatted as XML, into the file you name.
  • --html file β€” save the report, all formatted as HTML, into the file you name.
  • --console β€” write the defects on stdout. this is the default (implicit) behavior if none of --log, --xml, or --html are specified. but if you specify it explicitly, then the defects show up on both stdout and inside the text/xml/html report(s). double the chaos, double the fun ✨
  • --ignore ignore-file β€” do NOT report defects that are listed in the file you specify. like a blocklist, but for problems.
  • --limit N β€” stop reporting after N defects are found. that's it. that's the whole thing.
  • --severity [all | audit[+] | low[+|-] | medium[+|-] | high[+|-] | critical[-]],... β€” filter the reported defects so only the severity levels you listed get through. default is 'medium+' β€” meaning low and audit levels are ignored, sorry babes.
  • --confidence [all | low[+] | normal[+|-] | high[+|-] | total[-]],... β€” filter the reported defects to include the confidence levels you specify. default is 'normal+' β€” so the low level gets ignored.
  • --quiet β€” disables progress and other info that would normally get written to stdout. shhh 🀫
  • --v|verbose β€” when it's present, extra progress information gets written to stdout. and you can use it more than once to write even more info. stack it, bestie πŸ“š
  • --version β€” display Gendarme's version number. this will match the Mono version number that this copy of Gendarme was released with. iconic.
  • assemblies ... β€” specify the assemblies to verify. you can drop multiple filenames in there, including masks (? and *). you can also hand it a file that lists several assemblies β€” one per line β€” by prefixing that filename with @ on the command line. multitasking queen πŸ‘‘

πŸŽ€ FILES πŸŽ€

  • ignore-file β€” this file is used to filter out defects from gendarme reports.
  • rules.xml β€” this file gets used together with the --set option to control and configure the rules Gendarme uses. it contains a set of named rules (rule sets), and each rule set contains a list of rules. very structured of it.
  • gendarme.exe.config β€” used by debug versions of Gendarme to enable logging for rules. it's useful for Gendarme's developers, i.e. it is not meant for end-users. so if you're not a dev, this one's not your business πŸ™ˆ

🌈 ENVIRONMENT VARIABLES 🌈

  • GENDARME_COLOR β€” the runner will use colors when displaying defects on the console. by default the colors are dark so they display correctly on any background. you can change this default to "light" β€” lighter colors look nice on a dark background β€” or "none" so no colors get used at all. e.g.
GENDARME_COLOR=none gendarme ...

πŸ’œ EXIT STATUS πŸ’œ

  • 0 β€” the runner returns 0 when no error has occurred. and if some code was analyzed, then this also means that no defects were found and reported. a clean slate, we love to see it ✨
  • 1 β€” the runner execution was successful, but either some defects were found, or no assembly was specified.
  • 2 β€” the runner execution was interrupted by I/O errors (e.g. missing files). 😭
  • 3 β€” the runner found errors in the (default or user supplied) configuration files. specific error messages should be printed on the console.
  • 4 β€” the runner execution was interrupted by a non-handled exception. this is likely a bug inside Gendarme and should be reported on Novell's bugzilla (http://bugzilla.novell.com) or on the mailing-list. not me reporting bugs πŸ’€

Copyright (C) 2005-2010 Novell, Inc (http://www.novell.com)


🌸 MAILING LISTS 🌸

mailing lists are listed at http://groups.google.com/group/gendarme


πŸ¦‹ WEB SITE πŸ¦‹

http://www.mono-project.com/Gendarme


⭐ SEE ALSO ⭐

gendarme(5), gd2i(1), mono(1)


okay that's the whole page, you made it 🫢 go analyze some assemblies, bestie. this was Gendarme 4.2.0.0 β€” the version number matching the Mono release it shipped with, and yeah the copyright has been holding it down since 2005-2010 β€” slay. periodt. πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from