Repository navigation
v0.8.4
Release Notes - Version 0.8.4
Install
Homebrew (macOS or Linux)
brew install as-foss/mandible/mandibleFedora / EPEL (COPR repository)
sudo dnf copr enable as-foss/mandible
sudo dnf install mandibleNix
nix run github:AS-FOSS/mandibleCargo
cargo binstall mandible
cargo install mandibleDebian and Ubuntu: the signed apt repository carries every released version for amd64 and arm64, with setup instructions.
Or download a binary below. Verify with the accompanying .sha256.
Fixed
- A heading word such as
Options:is no longer a tool's description:mandible gcc,g++,cpp,ld,thin_checkand more than 100 other tools show no description line where the help prints only a heading (a heading likeManagement Optionsstays the label of its flags). pnpmand its subcommand pages now show the page's own description first and theVersion 11.22.0line after it, instead of opening with the version.snap getnow shows its description with the three$ snap getexample blocks and their output, which were dropped.mandible jarsignershows-providerArg <arg>as its own flag, withconfigure argument for -addproviderand... for -providerClass, instead of text inside those two flags' descriptions.mandible cargo-generate-rpm --auto-reqlists its values (auto,disabled,builtin,find-requires,/path/to/find-requires) as choices with their descriptions, from thePossible values:dash bullets.mandible speedtestlists the formats printed in itsValid output formats:line (human-readable (default),csv,tsv,json,jsonl,json-pretty) as the values of-f, --format((default)kept as printed) and theMachine readable formats ...line after it is part of its description.- A value placeholder keeps the text printed right after it:
mandible pnpm installshows--filter <pattern>...and<pattern>^...,snap getshows--with=<param>=<constraint>,dpkgshows-L <package>.... mandible ethtoolshows each operation's description and its setting rows (-s|--changelists[ speed %d ] [ duplex half|full ] ...), keeps the 15 operations after-Q(--cable-test,--set-pse,--monitor, ...), and no longer listsEEPROM,RSS,EEE,PHY,FECandFUNCas operands;--groupsofferseth-phy,eth-mac,eth-ctrl,rmon.mandible ssh-keygenshows-hand-Uas two flags, not-hwith a valueU; the same for the two-letter groups ofiscsiadm,nfsidmap,preconvandssh-agent: a glued two-letter group is two switches when the help writes every flag value after a space.mandible linux-versionshowscomparewithVERSION1 OP VERSION2andsortwith optional repeatableVERSION1 VERSION2: numbered upper-case operands of a command's own usage form are read when the same stem recurs with another number.mandible linux-versionlistscompare,sortandlistas commands, with--reverseundersortand--pathsunderlist: usage forms that print the program as/usr/bin/linux-versionare read like the bare name.mandible linux-version,fragisoandgit worktreeno longer repeat their commands' operands and flags on the parent page when every usage form names a command.mandible jfrlistsprintas a command with its own flags (--xml,--json,--stack-depth), not as the root usage whose flags sat onjfritself.mandible git logshows its second usage form as printed (git show [<options>] <object>...), not aslog git show ....mandible corepack disableandcorepack enableshow their--install-directoryflag: theGeneral commandsheading now attests its rows, so their own help pages are read.- Prose after the usage line and a blank line is part of the description:
mandible automakeopens withGenerate Makefile.in for configure from Makefile.am.,jqandfindshow their intro paragraphs (Default path is the current directory; default expression is -print.). mandible cdkeeps the paragraph after its options (The default is to follow symbolic links ...) and showsExit Status:as its own paragraph.mandible jfr configureshows theoption=valueandevent-setting=valuerows and theOptions for default.jfc:keys as description text, not as operands and flags, with the paragraph after them and the wizard and example blocks.- A heading word is never the description:
mandible xdg-openreadsxdg-open - opens a file or URL in the user's preferred application, notSynopsis(pingandtracepathno longer showUsage). - Probes run in a scratch directory under
~/.cache/mandibleinstead of/tmp, so a tool that searches upward for project files (pnpm start --helpruns the nearestpackage.json) can no longer be handed a file another local user planted in/tmp. - An existing
~/.cache/mandibleis tightened to mode 0700, and probes are refused when it is a symlink, not a directory, or owned by another user, so no other local user can plant files above a probe. - When
~/.cache/mandiblecannot be created (for example an unwritableHOME),mandible <tool>exits with a one-line reason instead of opening an empty page. - A subcommand whose help answer is only the tool's own error is no longer shown as its page (
mandible pnpm start,testandexecno longer print[ERR_PNPM_NO_IMPORTER_MANIFEST_FOUND] No package.json ... was found);tstill shows it. - A root help that says
'git help -a' ... list available subcommandsis asked that listing, somandible gitgains every command it lists (remote,stash,worktree,bundleopen their own pages) and none of the concept guides. - pnpm's and snap's root help point to
pnpm help -aandsnap help --all, somandible pnpmgains 27 commands its short list omits (patch,licenses,runtime,self-update, ...) andmandible snaplists all 67 commands with their groups;mandible pnpmshowsstoreandcachewith their listed subcommands. - Usage forms that each open with a different verb name that command's subcommands, each with its own usage, flags and operands (
mandible git bisectlistsstart,good,bad,run;git stash,remote,worktree,bundle,reflog,commit-graphlikewise). - A usage flag written
--term-(new|bad)=<term>,(-m | --message) <message>or--update-refs=(branches|head)is read as the flags and value it spells (the value keeps its printed(branches|head)), not as a fabricated--term- (newor a value). - A subcommand whose help answer says the word is not a command (
git citoolwhere git-gui is not installed) is shown as unreadable, not as help listing the did-you-mean suggestion as a child. - Flags in usage synopses keep their own values on git's verb pages:
git worktree add --lockand--reason,-b/-B <new-branch>,git remote set-head -a,--mirror=<fetch|push>,reflog expire --single-worktree, andgit shortlogno longer getsgit log's--pretty. - A flag whose spelling overruns its table's description column keeps its description (
mandible git clone's--[no-]reject-shallow,git rm's--[no-]ignore-unmatch;capsh,clang,gzip,run-parts,tar). - A value spec nested several levels deep is kept as printed (
mandible git diff's--stat[=<width>[,<name-width>[,<count>]]],strace --tips,lspci -s,fzf-tmux -p). -NUMis one option, not-Nwith the valueUM, when its description namesNUM(mandible grep,git grep).- The
(and)rows ofgit grep's option table are flags, and the flags after them leave the group named). - A value written
(+|-)xis shown whole (mandible git add's--chmod). - A punctuation short option beside its long one is one option (
mandible nano's-%, --stateflagsand-_, --minibar). - A value of two plain words keeps both (
mandible jq's--arg name value,--slurpfile name file). - An option table whose rows are wrapped in brackets,
[-keystore <url>] keystore location, shows every option with its value and description (mandible jarsigner,c++filt,krb5-config). -verbose[:suboptions]is one option with an optional value, not-v(mandible jarsigner).- A table headed by a usage operand's name lists the values of the flag that names it, with each description (
mandible krb5-config's--libsand itsLibraries:table). - A list of values grouped by label under a heading that names a flag keeps every value, the label as each one's description (
mandible speedtest's-u, which lostauto-binary-bits). - An llvm
=<empty>choice is listed as a choice named<empty>, and each=valuechoice keeps its description (mandible llc-18's--profile-correlate,llvm-ar-18's--format). - A
Possible values:list of* name: textbullets is the flag's choices with their descriptions (mandible batcat's--styleand--nonprintable-notation). - A flag-led example line under a description's
one can use:stays in that description instead of opening extra rows (mandible rg's--type-add, which lost the text after its examples). - A bare
-NUMrow is the numeric option even when its description does not repeatNUM(mandible git archive's-NUM, which read as-Nwith valueUM). - The
[<options>]after a flag in a usage line is the option-list word, not that flag's value (mandible git diff's--no-index). - A single usage form's bracketed operands are kept:
mandible findshowspath...andexpression,uconvitsfile ...,tcpdumpitsexpression,pod2maninputandoutput. - An operator-precedence block (
find'sOperators (decreasing precedence ...)) is shown in the description instead of being dropped. - A shell builtin's help (
cd: cd [-L|[-P [-e]]] [-@] [dir]) is read as usage, somandible cdshows thediroperand and its description paragraphs. - A flag that opens a paren group takes its value inside it, so
git commitno longer shows atoken...operand besidepathspec.... - Operands named in only one usage form, or in a brace group, are kept (
mandible git rebasegainsupstream,mandible jqgainsjq filter,fileandstrings,mandible xdg-opengainsfile,llvm-argainsrelpos,countandfiles).