Nemám srovnání s HP-UX, ale třeba i současné Open a FreeBSD mi přijde taky fajn a vždycky se mi to líbilo, jak to mají udělané.
Jen si nemyslím, že jde nějak férově porovnávat kompletní systémy (jádro + userland) s typickými distribucemi Linuxu.
To co se řeší ve zprávičce, jsou man. stránky jen od jádra (obsluha linkeru, popis syscallů atp.). V distribuci jsou typicky ještě hromady dalších man. stránek z ostatních balíčků a nezávislých projektů, ať už systemd (freedesktop), coreutils (GNU), plus samozřejmě všechny další aplikace a služby, co má kdo přidané do systému. V porovnání s těmi kompletními systémy je úroveň dokumentace a její aktuálnost do jisté míry neříditelná z pohledu distribuce.
Další věc je, že u spousty projektů se ty klasické man. stránky moc neřeší a pokud už tam něco je, tak je to třeba jen readme nebo nějaký markdown dokument kdesi v /usr/share/doc.
I když zas když to vezmu upřímně za sebe, málokdy jsem dnes offline, aby mě to nějak zásadně omezovalo. Základ systému se určitě hodí mít v man stránkách. Nicméně u stovek balíčků, které se mi tam natáhnou jako závislosti, mě spíš dnes víc než chybějící man. stránky vadí, když jsou u daného balíčku blbě vyplněná metadata. Jako špatné url projektu, nebo tam vůbec není žádný changelog, jak je typické u spousty software z repozitářů třetích stran.
Chápu, že třeba u nějakého proprietárního sw tam úplně nechtějí vyklopit git log, ale aspoň pár odrážek s rozdíly mezi verzemi, by mi přišlo užitečné.
7. 9. 2024, 19:54 editováno autorem komentáře
mám rád man stránky hlavně z důvodu, že v nich mohu hledat najednou a popisují stejnou verzi, která je nasazena, občas si online vyhledat informaci ke konkrétní verzi SW je dost obtížné, každý projekt to má jinak.
Z toho stejného důvodu vítám i -src balíčky, kde mohu rovnou hledat v odpovídajícím zdrojovém kódu.
Jedinej zpusob ktery se mi kdy pro seriozni cli aplikace na dlouhy beh osvedcil je to secko generovat z jedinyho source. tzn:
pgm -h/--help (+ -v/--verhose pro vetsi info) generuje plaintext help. A umi navic generovat i man formatted text, ktery napriklad behem buildu spusti sam sebe (ve sve verzi) a vygeneruje do release tarballu manpage. Pridat generovani reame.md a pouzit hod do release docu/titulnmi stranku projektu je jednoducha tresnicka na dortu. Jednotlive readme se muzo malinko lisit. Vetsinou man page vychazi na ten -h ve verbose mode, a readme.md na -h ve -vvv (very verbose mode).
Jednou to pridam no jcmd a clapu....
man (pro ruzne nastroje) pouzivam pres 20let ;-)
casto v "--help" je jen zlomek informaci (vyjimecne naopak v --help je vice nez v man)
napr. "YAD", srovnej sam, cast pro Form
yad --help-form
Usage:
yad [OPTION…] - Yet another dialoging program
Form options
--form Display form dialog
--field=LABEL[:TYPE] Add field to form (see man page for list of possible types)
--align=TYPE Set alignment of filed labels (left, center or right)
--columns=NUMBER Set number of columns in form
--homogeneous Make form fields height and columns width the same size
--output-by-row Order output fields by rows
--focus-field=NUMBER Set focused field
--cycle-read Cycled reading of stdin data
--align-buttons Align labels on button fields
--changed-action=CMD Set changed action
man yad | grep -A1000 'Form options' | grep -B1000 'HTML options'
Form options
--field=LABEL[!TOOLTIP][:TYPE]
Add field to form. Type may be H, RO, NUM, CHK, CB, CBE, CE, FL, SFL, DIR, CDIR, FN, MFL, MDIR, DT, SCL, SW, APP, ICON, CLR, BTN, FBTN, LINK, LBL or TXT.
H - hidden field type. All characters are displayed as the invisible char.
RO - field is in read-only mode.
NUM - field is a numeric. Initial value format for this field is VALUE[!RANGE[!STEP![PREC]]], where RANGE must be in form MIN..MAX. `!' is a default item separator. PREC is a precision for decimals.
CHK - checkbox field. Initial value is a case insensitive boolean constant (TRUE or FALSE).
CB - combo-box field. Initial value is a list VAL1!VAL2!.... The separator is the same as in NUM field. Value started with `^' threats as default for combo-box.
CBE - editable combo-box field. Initial value same as for combo-box.
CE - entry with completion. Initial value same as for combo-box.
FL - file selection button.
SFL - field for create file.
DIR - directory selection button.
CDIR - field for create folder.
FN - font selection button. Initial value same as in font dialog.
MFL - select multiple files. Value of this field is a list of files separated by item-separator.
MDIR - select multiple folders. Value of this field is a list of folders separated by item-separator.
DT - date field.
SCL - scale field. Value of this field in a range 0..100.
SW - switch field. Initial value is a case insensitive boolean constant (TRUE or FALSE).
APP - application selection button. Input value for this field is mime-type. Output value - executable for selected application.
ICON - icon field. Like average entry field but has two icons. Left shows current icon and right is clickable and calls yad-con-browser for choosing icon.
CLR - color selection button. Output values for this field generates in the same manner as for color dialog.
BTN - button field. Label may be in form text in a form LABEL[!ICON[!TOOLTIP]] where `!' is an item separator. LABEL is a text of button label or yad stock id. ICON is a buttons icon (stock id or file name). TOOLTIP is
an optional text for popup help string. Initial value is a command which is running when button is clicked. A special sympols %N in command are replaced by value of field N. If command starts with @, the output of com‐
mand will be parsed and lines started with number and colon will be treats as a new field values. A quoting style for value when sh -c is used - a single quotes around command and double quotes around -c argument
FBTN - same as button field, but with full relief of a button.
LINK - link button field.
LBL - text label. If field name is empty, horizontal separator line will be shown.
TXT - multiline text entry. This field is always occupy all of form width.
Without type field will be a simple text entry.
--align=TYPE
Set alignment of field labels. Possible types are left, center or right. Default is left.
--columns=NUMBER
Set number of columns in form. Fields will be placed from top to bottom.
--separator=STRING
Set output separator character. Default is `|'.
--focus-field=NUMBER
Set focused field.
--cycle-read
Cycled reading of stdin data. Sending FormFeed character clears the form. This symbol may be sent as echo -e '\f'.
--align-buttons
Align label on button fields according to --align settings.
--item-separator=STRING
Set separator character for combo-box or scale values. Default is `!'.
--date-format=PATTERN
Set the format for the date fields (same as in calendar dialog).
--float-precision=NUMBER
Set precision of floating point numbers. By default precision is three digits after point.
--complete=TYPE
Use specific type for extended completion. TYPE can be any for match any of typed words, all for match all of typed words or regex when typed text treats as regular expression.
--scroll
Make form scrollable.
--homogeneous
Makes form fields height ans columns width the same size.
--changed-action=CMD
Run CMD when CHK, CB, or SW field value is changed. Command runs with two arguments - number of changed field and its current value. Output of a command parsing in a same manner as in BTN fields with @ prefix. Atten‐
tion - this option may slow down your dialog.
--quoted-output
Output values will be in shell-style quotes.
--output-by-row
Output field values row by row if several columns is specified.
--num-output
Output index of active element instead of text for combo-box fields.
Additional data in command line interprets as a default values for form fields. A special value @disabled@ makes corresponding field inactive. If no extra arguments specified in a command line, data will be readed from stdin,
one value per line. Cycled reading means that for N fields N+1 value will replace the first field. Empty values are skipped when reading from stdin.
Já poslední dobou hodně zlěnivěl a dělám spíš už jen věci jako
man ffmpeg | sgpt -s "convert all video files in this directory to h265 and opus in mkv with appropriate settings for each video size"
backend mi během sekund napíše skript (který různými ffmpeg nástroji určí encoding parametry a pomocí nich každé video zpracuje), já ho projedu očima, a nechám vykonat.
Je to dané historicky. texinfo je Stallmanův projekt z osmdesátých let, man je původem z druhé edice Research Unixu ze sedmdesátých let. "Štěpením sil" se to moc nazvat fakt nedá protože obojí vzniklo v různých projektech zaměřených na úplně něco jiného. Krom toho se tedy domnívám, že man je o dost známější i používanější.