From 8f389f14382b61d1d0a8d924a09bc77c7185ffba Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Wed, 21 Aug 2024 12:17:53 -0400 Subject: [PATCH 1/9] docs: set up a Hugo site --- docs/site/.gitignore | 7 ++ docs/site/Makefile | 51 ++++++++++ docs/site/content/docs/_index.md | 18 ++++ docs/site/go.mod | 5 + docs/site/go.sum | 4 + docs/site/hugo.yaml | 54 +++++++++++ .../_default/_markup/render-blockquote.html | 47 +++++++++ docs/site/layouts/command/list.html | 25 +++++ docs/site/layouts/command/single.html | 25 +++++ docs/site/layouts/partials/favicons.html | 13 +++ docs/site/layouts/partials/footer.html | 35 +++++++ docs/site/layouts/partials/navbar.html | 89 ++++++++++++++++++ docs/site/layouts/partials/theme-toggle.html | 29 ++++++ docs/site/scripts/format-command-flags | 53 +++++++++++ docs/site/scripts/ingest-command-docs | 58 ++++++++++++ docs/site/static/apple-touch-icon-120x120.png | Bin 0 -> 2668 bytes docs/site/static/apple-touch-icon-152x152.png | Bin 0 -> 3232 bytes docs/site/static/apple-touch-icon-180x180.png | Bin 0 -> 3691 bytes docs/site/static/apple-touch-icon-60x60.png | Bin 0 -> 1719 bytes docs/site/static/apple-touch-icon-76x76.png | Bin 0 -> 1974 bytes docs/site/static/apple-touch-icon.png | Bin 0 -> 3691 bytes docs/site/static/favicon-16x16.png | Bin 0 -> 817 bytes docs/site/static/favicon-32x32.png | Bin 0 -> 1186 bytes docs/site/static/favicon.ico | Bin 0 -> 15086 bytes docs/site/static/logo.png | Bin 0 -> 2673 bytes 25 files changed, 513 insertions(+) create mode 100644 docs/site/.gitignore create mode 100644 docs/site/Makefile create mode 100644 docs/site/content/docs/_index.md create mode 100644 docs/site/go.mod create mode 100644 docs/site/go.sum create mode 100644 docs/site/hugo.yaml create mode 100644 docs/site/layouts/_default/_markup/render-blockquote.html create mode 100644 docs/site/layouts/command/list.html create mode 100644 docs/site/layouts/command/single.html create mode 100644 docs/site/layouts/partials/favicons.html create mode 100644 docs/site/layouts/partials/footer.html create mode 100644 docs/site/layouts/partials/navbar.html create mode 100644 docs/site/layouts/partials/theme-toggle.html create mode 100755 docs/site/scripts/format-command-flags create mode 100755 docs/site/scripts/ingest-command-docs create mode 100644 docs/site/static/apple-touch-icon-120x120.png create mode 100644 docs/site/static/apple-touch-icon-152x152.png create mode 100644 docs/site/static/apple-touch-icon-180x180.png create mode 100644 docs/site/static/apple-touch-icon-60x60.png create mode 100644 docs/site/static/apple-touch-icon-76x76.png create mode 100644 docs/site/static/apple-touch-icon.png create mode 100644 docs/site/static/favicon-16x16.png create mode 100644 docs/site/static/favicon-32x32.png create mode 100644 docs/site/static/favicon.ico create mode 100644 docs/site/static/logo.png diff --git a/docs/site/.gitignore b/docs/site/.gitignore new file mode 100644 index 00000000..d6a86d88 --- /dev/null +++ b/docs/site/.gitignore @@ -0,0 +1,7 @@ +/.hugo_build.lock +/content/**/*.md +!/content/docs/_index.md +/local.mk +/public/ +/resources/ +/static/windows.png diff --git a/docs/site/Makefile b/docs/site/Makefile new file mode 100644 index 00000000..057613a3 --- /dev/null +++ b/docs/site/Makefile @@ -0,0 +1,51 @@ +-include local.mk + +HTTP_PORT ?= 1313 + +version := $(shell git describe --tags --always HEAD) +export HUGO_PARAMS_BBIVERSION ?= $(version) + +.PHONY: help +help: + $(info Primary targets:) + $(info * build: build site under public/) + $(info * serve: build and serve the site locally with 'hugo server') + @: + +.PHONY: build +build: prep + hugo --gc --minify + +.PHONY: serve +serve: prep + hugo server -p '$(HTTP_PORT)' + +copied_files = content/_index.md +copied_files += content/news.md + +.PHONY: prep +prep: commands +prep: $(copied_files) + rm -rf public resources + +command_dir = content/docs/commands + +.PHONY: commands +commands: + rm -rf '$(command_dir)' + ./scripts/ingest-command-docs '$(command_dir)' + +content/_index.md: ../../README.md + grep -vF 'https://goreportcard.com/badge/' '$<' >'$@' + +content/news.md: ../../NEWS.md + printf -- '---\ntitle: "News"\n---\n\n' >'$@' + sed 's/^#/##/' '$<' | \ + sed 's/^## bbi/##/' | \ + sed 's/^## babylon/##/' | \ + >>'$@' + +.PHONY: clean +clean: + rm -rf public resources $(command_dir) + rm -f $(copied_files) diff --git a/docs/site/content/docs/_index.md b/docs/site/content/docs/_index.md new file mode 100644 index 00000000..169af9a8 --- /dev/null +++ b/docs/site/content/docs/_index.md @@ -0,0 +1,18 @@ +--- +title: Documentation +toc: false +--- + +This documentation describes the bbi [command-line interface][commands]. +Below are some of the key commands. + +{{< cards >}} + {{< card link="commands/init" title="bbi init" icon="terminal" + subtitle="Initialize a directory for running bbi" >}} + {{< card link="commands/nonmem_run" title="bbi nonmem run" icon="terminal" + subtitle="Run a NONMEM model" >}} + {{< card link="commands/nonmem_summary" title="bbi nonmem summary" icon="terminal" + subtitle="Summarize the results of a NONMEM model" >}} +{{< /cards >}} + +[commands]: {{< relref "/docs/commands" >}} diff --git a/docs/site/go.mod b/docs/site/go.mod new file mode 100644 index 00000000..5948b8a6 --- /dev/null +++ b/docs/site/go.mod @@ -0,0 +1,5 @@ +module github.com/metrumresearchgroup/bbi/docs/site + +go 1.21.4 + +require github.com/imfing/hextra v0.8.2 // indirect diff --git a/docs/site/go.sum b/docs/site/go.sum new file mode 100644 index 00000000..ed34ce09 --- /dev/null +++ b/docs/site/go.sum @@ -0,0 +1,4 @@ +github.com/imfing/hextra v0.8.1 h1:HPeuyBTxaG7o2PHT9XRgFTVbCVGhJbZ0t7PjApA32F8= +github.com/imfing/hextra v0.8.1/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI= +github.com/imfing/hextra v0.8.2 h1:/IykSIAywgKfhKUBgAW+dCCjrJWJNny4jr9qvdXfch0= +github.com/imfing/hextra v0.8.2/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI= diff --git a/docs/site/hugo.yaml b/docs/site/hugo.yaml new file mode 100644 index 00000000..09063573 --- /dev/null +++ b/docs/site/hugo.yaml @@ -0,0 +1,54 @@ +title: bbi +baseURL: https://metrumresearchgroup.github.io/bbi/ +languageCode: en-us +markup: + highlight: + noClasses: false + goldmark: + extensions: + typographer: + # Prevent --option in command pages from being rendered with an en-dash. + disable: true + parser: + attribute: + block: true +menu: + main: + - name: Docs + pageRef: /docs + weight: 10 + - name: News + pageRef: /news + weight: 20 + - name: Search + weight: 30 + params: + type: search + - name: GitHub + weight: 40 + url: https://github.com/metrumresearchgroup/bbi + params: + icon: github + sidebar: + - identifier: bbr + name: "bbr: R interface to bbi ↗" + url: "https://metrumresearchgroup.github.io/bbr" + weight: 100 + +disableKinds: + - taxonomy + - term + +module: + imports: + - path: github.com/imfing/hextra +params: + navbar: + displayTitle: false + displayLogo: true + logo: + path: logo.png + width: 25 + theme: + default: system + displayToggle: false diff --git a/docs/site/layouts/_default/_markup/render-blockquote.html b/docs/site/layouts/_default/_markup/render-blockquote.html new file mode 100644 index 00000000..5204b6a9 --- /dev/null +++ b/docs/site/layouts/_default/_markup/render-blockquote.html @@ -0,0 +1,47 @@ +{{/* + This is combines the types from the example at + with the + classes from Hextra's layouts/shortcodes/callout.html + (blob: 6b56bcb2fff52b58af2a34da0bd8e5784108bd2b). +*/}} +{{ if eq .Type "alert" }} + {{ $emojis := dict + "caution" ":exclamation:" + "important" ":information_source:" + "note" ":information_source:" + "tip" ":bulb:" + "warning" ":information_source:" + }} + + {{ $orange := "hx-border-orange-100 hx-bg-orange-50 hx-text-orange-800 dark:hx-border-orange-400/30 dark:hx-bg-orange-400/20 dark:hx-text-orange-300" }} + {{ $blue := "hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200" }} + {{ $yellow := "hx-border-yellow-100 hx-bg-yellow-50 hx-text-yellow-900 dark:hx-border-yellow-200/30 dark:hx-bg-yellow-700/30 dark:hx-text-yellow-200" }} + {{ $red := "hx-border-red-200 hx-bg-red-100 hx-text-red-900 dark:hx-border-red-200/30 dark:hx-bg-red-900/30 dark:hx-text-red-200" }} + + {{ $classes := dict + "caution" $red + "important" $orange + "note" $blue + "tip" $blue + "warning" $yellow + }} + + {{ $class := (index $classes .AlertType) }} +
+
+
+ {{ transform.Emojify (index $emojis .AlertType) }} +
+
+ +
+
+ {{ .Text | safeHTML }} +
+
+
+{{ else }} +
+ {{ .Text | safeHTML }} +
+{{ end }} diff --git a/docs/site/layouts/command/list.html b/docs/site/layouts/command/list.html new file mode 100644 index 00000000..74a60b73 --- /dev/null +++ b/docs/site/layouts/command/list.html @@ -0,0 +1,25 @@ +{{/* + This is modified from Hextra's layouts/docs/list.html + (blob: a91882ae16796158309d93c44a3df571b98dfb11) + + Changes: + + * don't insert title as H1 heading +*/}} +{{ define "main" }} +
+ {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
+
+ {{ partial "breadcrumb.html" . }} +
+ {{ .Content }} +
+ {{ partial "components/last-updated.html" . }} + {{ partial "components/pager.html" . }} + {{ partial "components/comments.html" . }} +
+
+
+{{ end }} diff --git a/docs/site/layouts/command/single.html b/docs/site/layouts/command/single.html new file mode 100644 index 00000000..51891e3e --- /dev/null +++ b/docs/site/layouts/command/single.html @@ -0,0 +1,25 @@ +{{/* + This is modified from Hextra's layouts/docs/single.html + (blob: a91882ae16796158309d93c44a3df571b98dfb11) + + Changes: + + * don't insert title as H1 heading +*/}} +{{ define "main" }} +
+ {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
+
+ {{ partial "breadcrumb.html" . }} +
+ {{ .Content }} +
+ {{ partial "components/last-updated.html" . }} + {{ partial "components/pager.html" . }} + {{ partial "components/comments.html" . }} +
+
+
+{{ end }} diff --git a/docs/site/layouts/partials/favicons.html b/docs/site/layouts/partials/favicons.html new file mode 100644 index 00000000..2d659c3b --- /dev/null +++ b/docs/site/layouts/partials/favicons.html @@ -0,0 +1,13 @@ +{{/* + This is modified from Hextra's layouts/partials/favicons.html + (blob: 66a80188e72c094884b37ff9720d669a6e03824f) + + Changes: + + * remove links to favicon.svg and favicon-dark.svg +*/}} + + + + + diff --git a/docs/site/layouts/partials/footer.html b/docs/site/layouts/partials/footer.html new file mode 100644 index 00000000..787c46fe --- /dev/null +++ b/docs/site/layouts/partials/footer.html @@ -0,0 +1,35 @@ +{{/* + This is modified from Hextra's layouts/partials/footer.html + (blob: 61cbb1133d633b0389f9d6ce70cd99b8568a7bad) + + Changes: + + * remove support for toggling (handled in navbar instead) + + * decrease height of footer + + * use custom credit line that 1) credits Hugo in addition to + Hextra and 2) is right aligned +*/}} + +{{- $footerWidth := "hx-max-w-screen-xl" -}} +{{- with .Site.Params.footer.width -}} + {{ if eq . "wide" -}} + {{ $footerWidth = "hx-max-w-[90rem]" -}} + {{ else if eq . "full" -}} + {{ $footerWidth = "max-w-full" -}} + {{ end -}} +{{- end -}} + +
+
+ + Site built with + Hugo + and + Hextra + +
+
diff --git a/docs/site/layouts/partials/navbar.html b/docs/site/layouts/partials/navbar.html new file mode 100644 index 00000000..8c9d7543 --- /dev/null +++ b/docs/site/layouts/partials/navbar.html @@ -0,0 +1,89 @@ +{{/* + This is modified from Hextra's layouts/partials/navbar.html + (blob: 04adb27e4f170601cc82f9d8ecf30baf50ffbe5a) + + Changes: + + * add bbi version + + * don't blur + + * add dark/light theme toggle (but don't guard it with + site.Params.theme.displayToggle so that Hexta's sidebar can be + used without any changes) +*/}} + +{{- $logoPath := .Site.Params.navbar.logo.path | default "images/logo.svg" -}} +{{- $logoLink := .Site.Params.navbar.logo.link | default .Site.Home.RelPermalink -}} +{{- $logoWidth := .Site.Params.navbar.logo.width | default "20" -}} +{{- $logoHeight := .Site.Params.navbar.logo.height | default "20" -}} +{{- $logoDarkPath := .Site.Params.navbar.logo.dark | default $logoPath -}} + +{{- $bbiVersion := .Site.Params.bbiversion | default "" -}} + +{{- $navWidth := "hx-max-w-[90rem]" -}} +{{- with .Site.Params.navbar.width -}} + {{ if eq . "normal" -}} + {{ $navWidth = "hx-max-w-screen-xl" -}} + {{ else if eq . "full" -}} + {{ $navWidth = "max-w-full" -}} + {{ end -}} +{{- end -}} + + diff --git a/docs/site/layouts/partials/theme-toggle.html b/docs/site/layouts/partials/theme-toggle.html new file mode 100644 index 00000000..2da946d4 --- /dev/null +++ b/docs/site/layouts/partials/theme-toggle.html @@ -0,0 +1,29 @@ +{{/* + This is modified from Hextra's layouts/partials/favicons.html + (blob: 6a939b56760c8f2b7ca442463ee41b47a65b6091) + + Changes: + + * increase size of icons +*/}} +{{- $hideLabel := .hideLabel | default false -}} + +{{- $changeTheme := (T "changeTheme") | default "Change theme" -}} +{{- $light := (T "light") | default "Light" -}} +{{- $dark := (T "dark") | default "Dark" -}} + + + diff --git a/docs/site/scripts/format-command-flags b/docs/site/scripts/format-command-flags new file mode 100755 index 00000000..e9c2a413 --- /dev/null +++ b/docs/site/scripts/format-command-flags @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 +""" +Read Cobra command markdown on stdin and replace option code blocks +with a list of options. + +For example, convert + + ``` + --json json tree of output, if possible + -v, --verbose verbose output + ``` + +to + + * `--json`: json tree of output, if possible + + * `-v, --verbose`: verbose output + +""" + +import fileinput +import sys + + +def format_option(line): + line = line.strip() + if not line: + return "" + if line == "```": + return "\n" + + try: + # Note: This relies on the "-o, --option value" part 1) _not_ + # containing two spaces and 2) being separated from the + # description by at least two spaces. + opts, desc = line.split(" ", maxsplit=1) + except ValueError: + raise ValueError(f"option line in unexpected format: {line}") from None + + return f" * `{opts}`: {desc}\n\n" + + +if __name__ == "__main__": + in_options = False + for line in fileinput.input("-"): + if line.startswith("#"): + in_options = line.startswith("### Options") + sys.stdout.write(line) + continue + + if in_options: + line = format_option(line) + sys.stdout.write(line) diff --git a/docs/site/scripts/ingest-command-docs b/docs/site/scripts/ingest-command-docs new file mode 100755 index 00000000..2f79f0d3 --- /dev/null +++ b/docs/site/scripts/ingest-command-docs @@ -0,0 +1,58 @@ +#!/bin/sh + +# Copy generated command docs from contents/commands/ with the +# following modifications: +# +# * set title metadata to name of subcommand +# +# * promote each heading (e.g., H2 becomes H1) +# +# * adjust the link to the other markdown files to work in the Hugo +# context +# +# * tweak the headings of top-level command page to make it a more +# suitable landing page for /commands +# +# * replace "option" with "flag" in title. +# +# Although "option" is arguably the better term in general, 1) +# cobra puts these under "flags" in its command-line help output +# and 2) cobra adds a "[flag]" value to the usage, so staying with +# "flag" is better for consistency. +# +# * put inherited flags as subhead of under flags heading +# +# * extract option lines from code block and reformat as bullets + +set -eu + +test -x scripts/format-command-flags || { + printf >&2 'script must be executed from docs/site/ directory\n' + exit 1 +} + +outdir=content/docs/commands +mkdir -p "$outdir" +for f in ../commands/*.md +do + if test "$f" = ../commands/bbi.md + then + dest=$outdir/_index.md + title=Commands + seename=Subcommands + else + base=$(basename "$f") + cmd=${base%.md} + title=$(printf '%s\n' "$cmd" | sed 's/bbi_//' | sed 's/_/ /g') + dest=$outdir/${base#bbi_} + seename='See also' + fi + printf -- '---\ntitle: "%s"\ntype: "command"\n---\n\n' "$title" >"$dest" + ./scripts/format-command-flags <"$f" | \ + sed 's/^##/#/' | \ + sed -E 's|\[bbi\]\(bbi\.md\).*|[bbi]({{< relref "/docs/commands/" >}}) - top-level entry point |' | \ + sed 's|(bbi_\(.*\)\.md)|({{< relref "/docs/commands/\1" >}})|' | \ + sed 's/# Options inherited from parent commands/## Inherited/' | \ + sed 's/# Options/# Flags/' | \ + sed "s/# SEE ALSO/# $seename/" >>"$dest" +done diff --git a/docs/site/static/apple-touch-icon-120x120.png b/docs/site/static/apple-touch-icon-120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..9a7b092cd26841ad4e27eb5f9e0e317f06e0b56f GIT binary patch literal 2668 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 literal 0 HcmV?d00001 diff --git a/docs/site/static/apple-touch-icon-76x76.png b/docs/site/static/apple-touch-icon-76x76.png new file mode 100644 index 0000000000000000000000000000000000000000..45eb5e0997a8497f571730c535fc55ac4d50203f GIT binary patch literal 1974 zcmeHG`#02i82&J1klT#QxSK|nap~*6JE=u8Y20tQ)oK`%OB#l8+%hJi#3B`ATq2jW zYlW_n$;&78zc;zVz})RV9AssBBnA&l+2edkl; zGd1!Dw{i2-F;n%JyX=DstLI+FTP8Vc(^T6|8(U8`zA~7%e`$KOu*E=_vFcnywA1&$~Dqa;EBi6?er=DP%udZ&ojU)Ce!aZTR!r7MC z#*!H-xgA{^kRn#5%b6IGR`a8E9P%VIm7#H5Te7NQGp>KOIdwZ3k8Pi4Yv!p7W~d1ZhOiKBaV$kUFJt1>d zmV}32&~em@tTU1e!Il>a5I*!61NRh}WK|h8>-bu=+1TM?l1WQhq=D2;7)T|b{%5*a`|k)BK}k7a8oeQD=`Sjpn}GIB3+H-$z4kD%wug8E?F8XWdIxyWd-GM_ z3*Psxq^4W62cG=e?{7;n7l1~q-d}$Pc1b~o-u+j+{y8Tlm@Xn0EZg#H5HR;PrR<)TFgvG z=~9QRX-J=U%E3iLU0$>r?QE~Kp*8mXth%>bBV*XA5w8*nD5*Nyadf+!+e5lGoltzG z%U6D)lV#>sUVl93DHr80^nmLXa@A5w4U83I3*WC;D+dSU3aAe&Vn42o9%{0f;Glw{{Rt^U&7rapLt7 zXIudcBW^$zM`Dn6H)UZ+4Ls9?69B_Jbl2dG4nObg?NsR$;W1B@*cyOE1sVF9wdrmC O2|y$`;%lr)Nq+-I!SA{N literal 0 HcmV?d00001 diff --git a/docs/site/static/apple-touch-icon.png b/docs/site/static/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a2d8c610387020667ee2e1f372ba8369ede120b9 GIT binary patch literal 3691 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 VSn|oqbSlsa22WQ%mvv4FO#qTNq7MK7 literal 0 HcmV?d00001 diff --git a/docs/site/static/favicon.ico b/docs/site/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b97093a9be63ed27b3f379405e097c64243be197 GIT binary patch literal 15086 zcmeI3X^a#_6vu0vmEnjC9vmV%8}W*O93tTZxcI>l7W-Zkb4 z(*5hv2I@&Ie(LTA4}mv!ooj7e3_LB@c2Gwu@l$UW^bGPB_~Tc4CtOln^d`0WhuAKJ z-@q2To41AXNwu^A`?~i(bxweq9R#AyTiHTOStG{IJ|#iYD9;RwZrJOnh}gLKzZc3jjppj%V?@&)o4 z6wl|BjrGPu`bbclf^43n>=3U_&^daE(6^m*(BHmw)XEPe~wq*c8*T$__4{rWe_x%s7-f6Z<|kV z9y;g2&tPlAkK~{3)%TxMo+SRWu-g{kQ*pcmhxvWk(&(u#=0MQg^$BI#4z(VX#fl&O zQLq7Q{iQsO=~(+l=xgn`0fL_OUZ!lItpVgmjvw72@Hzy=uKD{ko1bcV*!6{b!FE5D z$iEA^j7Rb!#gCrqUjeGi7Qe3ltZH$Fm1D2@Y*j%0nh&mkPV)ijs_~<909*%cV2fSP z3^zgS=NEr_sN*Pj3v7OVBL8f!4e2QHPe(88SzgaHW;ajwvF_)(?xoo-B0jV>+z7U{ zLF;qe_)FM40DW!#(#XS?_F*($_JZ4olDi;o{JM9Bq!DLWo%qz+@GN-a-%UDB{GXve zGR#k!W%w?@+u*h#PW*aaJ2TDrqSQ?cdj8Tgo!SsJe(BAHPHT4*e`)9t$EmOdGzV21 zKe}gbgI;OGlC)0Zxd1jn(C?=UDO&`3Pl@y{nlzRqcEr>G=OnT1E;hv9Eyi5rZ` z;`e}4K8&d*GZnoUa);ya?UCcGt;ppSnXO2QR9?cjWYH`s%Qn+gmaV2xmMyLvkT0j3 zC+5m>=?&SkG^LCre_gp$>0;JtUV?1PIW0}d*1XeFK(-W|){1Q7jV06Eivl}NBehLjhIb=j_A6z=$*b#wf^>(*Xkep!JxfAy}Moxv7Q~!PkjBc?F)M6EP=*umwhOI zd;Mu_68XnYdvDi*+U>o6Hjs||E{1MW|L0>Hw0G9A59DvJKb^!sHsc{|?@QO?eyBPg z(TUZ5^pAu!;O%q0?`ZyX$AQXpU35=`jz`KP`$zX6cpSXGb-n_055Dg!)7*Nlzt6pC z$|LzlPwy3r!T&q(8|0PuEs(k{Uw}70rS-|S^`I=O{~74&+YoQv8%cNUnaTm_GvIrl z-kYR{+5#ZIs(*AQ!?)n|9eA&!r&xFR^dBbO&mRMMq5df!4j+Qow|*bf`=@nmk)MTY zU=O%<+Gkq;oz@A`f&M8w7*>N@hvZ(k144hpR5|GVz6h>;m%UNStp3T@{-EsT&$X9) z9wNPWqt_o+g4bSq%j4bazwA(6!$U>tT}*&Fi7-R#^Q}%BWv+o4%9qzkdxQPxmZu&FLQa z=&~N9>#_UQ-o9VZ{#RQNU0F$99{5+vI=N!T$+baiBg|itYiVoBttl3A%S(k^wv_LM zTCcpbyrJN%Veg`a&6ieaWBUV3hussWtJ}LUe~|oZjB|CYpw3`9TR!|;C@j3tKd*@ z?e$%Np2L)$?fUgg%4D+|wEjK_u6>Df`MwoGf4iZ)0D9KZwQ=p;m?G^4VmBH-0Qdg6 zo^y6OqaWyxh^}qd)Sjkja%tkcV9crPR85*@%*1WRjNN6-$vch7v2U7V&op1&FKxH` E7hqMZT>t<8 literal 0 HcmV?d00001 diff --git a/docs/site/static/logo.png b/docs/site/static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1f759648bba2322186594555968c358b56e2d4d0 GIT binary patch literal 2673 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 BCEfr4 literal 0 HcmV?d00001 From 48675c2b84864264185f19c745a24b2801c57339 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Wed, 21 Aug 2024 12:17:53 -0400 Subject: [PATCH 2/9] site: linkify the news page --- docs/site/Makefile | 2 + docs/site/hugo.yaml | 2 +- docs/site/scripts/add-gh-links | 74 ++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100755 docs/site/scripts/add-gh-links diff --git a/docs/site/Makefile b/docs/site/Makefile index 057613a3..e3038927 100644 --- a/docs/site/Makefile +++ b/docs/site/Makefile @@ -38,11 +38,13 @@ commands: content/_index.md: ../../README.md grep -vF 'https://goreportcard.com/badge/' '$<' >'$@' +content/news.md: ./scripts/add-gh-links content/news.md: ../../NEWS.md printf -- '---\ntitle: "News"\n---\n\n' >'$@' sed 's/^#/##/' '$<' | \ sed 's/^## bbi/##/' | \ sed 's/^## babylon/##/' | \ + ./scripts/add-gh-links https://github.com/metrumresearchgroup/bbi \ >>'$@' .PHONY: clean diff --git a/docs/site/hugo.yaml b/docs/site/hugo.yaml index 09063573..736f5df6 100644 --- a/docs/site/hugo.yaml +++ b/docs/site/hugo.yaml @@ -44,7 +44,7 @@ module: - path: github.com/imfing/hextra params: navbar: - displayTitle: false + displayTitle: true displayLogo: true logo: path: logo.png diff --git a/docs/site/scripts/add-gh-links b/docs/site/scripts/add-gh-links new file mode 100755 index 00000000..e4420dd0 --- /dev/null +++ b/docs/site/scripts/add-gh-links @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +# Copyright 2024 Metrum Research Group +# SPDX-License-Identifier: MIT +"""usage: {} + +Read markdown content from stdin and write it to stdout replacing + + * #NNN with [#NNN](/issue/NNN) + + * commit IDs with links to [](/commit/) + + If something looks like a commit but isn't a known commit in the + current repository, it's left as is. + +This script must be executed from a Git repository. +""" + +import fileinput +import re +import subprocess as sp +import sys + +link_re = re.compile(r"\B#([1-9][0-9]*)\b") + + +def link_issues(url, string): + return link_re.sub(rf"[#\1]({url}/issues/\1)", string) + + +commit_re = re.compile(r"\b([0-9a-f]{7,})\b") + + +# Note: This runs a git process per commit candidate. If this were to +# be used in a case where there is a large amount of input and +# performance matters, consider rewriting to use cat-file and a single +# process. +def replace_commit(matchobj): + fullmatch = matchobj.group(0) + commit = matchobj.group(1) + + try: + p = sp.run( + ["git", "rev-parse", "--verify", "--quiet", commit + "^{commit}"], + check=True, + capture_output=True, + encoding="utf-8", + ) + except sp.CalledProcessError as err: + if err.returncode == 1: + # This doesn't resolve to a known commit. + return fullmatch + raise + + resolved = p.stdout.rstrip("\n") + return fullmatch.replace(commit, f"[{commit}]({url}/commit/{resolved})") + + +def link_commits(url, string): + return commit_re.sub(replace_commit, string) + + +if __name__ == "__main__": + if len(sys.argv) != 2: + sys.stderr.write(__doc__.format(sys.argv[0])) + sys.exit(1) + + url = sys.argv[1] + if url.endswith("/"): + url = url[:-1] + + for line in fileinput.input("-"): + line = link_issues(url, line) + line = link_commits(url, line) + sys.stdout.write(line) From b6c318c9876f155a1109c0c235a0cbaf673fad59 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Wed, 21 Aug 2024 12:17:53 -0400 Subject: [PATCH 3/9] ci: add workflow to deploy site --- .github/workflows/site.yaml | 67 +++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/site.yaml diff --git a/.github/workflows/site.yaml b/.github/workflows/site.yaml new file mode 100644 index 00000000..ca519739 --- /dev/null +++ b/.github/workflows/site.yaml @@ -0,0 +1,67 @@ +name: Deploy site +on: + push: + branches: + - scratch/deploy-site + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Install Hugo + shell: bash + run: | + tdir=$(mktemp -d) + tgz=$tdir/hugo.tar.gz + bin=$HOME/bin + mkdir -p "$bin" + + url=https://github.com/gohugoio/hugo/releases/download + curl -fSsL --retry 3 \ + "$url/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.tar.gz" \ + >"$tgz" + printf '%s %s\n' "$HUGO_SHA" "$tgz" | sha256sum --check >/dev/null + + tar --to-stdout --extract -zf "$tgz" hugo >"$bin"/hugo + chmod +x "$bin/hugo" + "$bin"/hugo version + echo "$bin" >>"$GITHUB_PATH" + env: + HUGO_VERSION: '0.133.0' + HUGO_SHA: '372530e2de9ae74087a987ca841429390a055123b8a4dec665cc601f10dc8e6e' + - uses: actions/configure-pages@v5 + id: pages + - name: Check URL match + shell: bash + run: | + url=$(grep '^baseURL:' docs/site/hugo.yaml) + test "${{ steps.pages.outputs.base_url }}/" = "${url#baseURL: }" + - name: Build site + shell: bash + run: make -C docs/site build + env: + HUGO_ENVIRONMENT: production + HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cache + TZ: America/New_York + - name: Upload site + uses: actions/upload-pages-artifact@v3 + with: + path: ./docs/site/public + deploy: + needs: build + runs-on: ubuntu-latest + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 From e3160b509fc09d26cb085ee55cc28c922cab1f28 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Wed, 21 Aug 2024 12:45:31 -0400 Subject: [PATCH 4/9] cmd: use consistent case for NONMEM in flag descriptions --- cmd/init.go | 2 +- cmd/nonmem.go | 18 +++++++++--------- docs/commands/bbi_init.md | 2 +- docs/commands/bbi_nonmem.md | 18 +++++++++--------- docs/commands/bbi_nonmem_clean.md | 18 +++++++++--------- docs/commands/bbi_nonmem_covcor.md | 18 +++++++++--------- docs/commands/bbi_nonmem_params.md | 18 +++++++++--------- docs/commands/bbi_nonmem_probs.md | 18 +++++++++--------- docs/commands/bbi_nonmem_reclean.md | 18 +++++++++--------- docs/commands/bbi_nonmem_run.md | 18 +++++++++--------- docs/commands/bbi_nonmem_run_local.md | 18 +++++++++--------- docs/commands/bbi_nonmem_run_sge.md | 18 +++++++++--------- docs/commands/bbi_nonmem_scaffold.md | 18 +++++++++--------- docs/commands/bbi_nonmem_summary.md | 18 +++++++++--------- 14 files changed, 110 insertions(+), 110 deletions(-) diff --git a/cmd/init.go b/cmd/init.go index 11f57ae1..7862f76e 100644 --- a/cmd/init.go +++ b/cmd/init.go @@ -61,7 +61,7 @@ func NewInitCmd() *cobra.Command { } const directory string = "dir" - cmd.Flags().StringSlice(directory, []string{}, "A directory in which to look for NonMem Installations") + cmd.Flags().StringSlice(directory, []string{}, "A directory in which to look for NONMEM Installations") return cmd } diff --git a/cmd/nonmem.go b/cmd/nonmem.go index 8d1ed1ff..a726f7b1 100644 --- a/cmd/nonmem.go +++ b/cmd/nonmem.go @@ -180,20 +180,20 @@ func NewNonmemCmd() *cobra.Command { // NM Selector const nmVersionIdentifier string = "nm_version" - cmd.PersistentFlags().String(nmVersionIdentifier, "", "Version of nonmem from the configuration list to use") + cmd.PersistentFlags().String(nmVersionIdentifier, "", "Version of NONMEM from the configuration list to use") errpanic(viper.BindPFlag(nmVersionIdentifier, cmd.PersistentFlags().Lookup(nmVersionIdentifier))) // Parallelization Components const parallelIdentifier string = "parallel" - cmd.PersistentFlags().Bool(parallelIdentifier, false, "Whether or not to run nonmem in parallel mode") + cmd.PersistentFlags().Bool(parallelIdentifier, false, "Whether or not to run NONMEM in parallel mode") errpanic(viper.BindPFlag(parallelIdentifier, cmd.PersistentFlags().Lookup(parallelIdentifier))) const parallelCompletionTimeoutIdentifier string = "parallel_timeout" - cmd.PersistentFlags().Int(parallelCompletionTimeoutIdentifier, 2147483647, "The amount of time to wait for parallel operations in nonmem before timing out") + cmd.PersistentFlags().Int(parallelCompletionTimeoutIdentifier, 2147483647, "The amount of time to wait for parallel operations in NONMEM before timing out") errpanic(viper.BindPFlag(parallelCompletionTimeoutIdentifier, cmd.PersistentFlags().Lookup(parallelCompletionTimeoutIdentifier))) const mpiExecPathIdentifier string = "mpi_exec_path" - cmd.PersistentFlags().String(mpiExecPathIdentifier, "/usr/local/mpich3/bin/mpiexec", "The fully qualified path to mpiexec. Used for nonmem parallel operations") + cmd.PersistentFlags().String(mpiExecPathIdentifier, "/usr/local/mpich3/bin/mpiexec", "The fully qualified path to mpiexec. Used for NONMEM parallel operations") errpanic(viper.BindPFlag(mpiExecPathIdentifier, cmd.PersistentFlags().Lookup(mpiExecPathIdentifier))) const parafileIdentifier string = "parafile" @@ -207,15 +207,15 @@ func NewNonmemCmd() *cobra.Command { // NMFE Options const nmfeGroup string = "nmfe_options" const licFileIdentifier string = "licfile" - cmd.PersistentFlags().String(licFileIdentifier, "", "RAW NMFE OPTION - Specify a license file to use with NMFE (Nonmem)") + cmd.PersistentFlags().String(licFileIdentifier, "", "RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM)") errpanic(viper.BindPFlag(nmfeGroup+"."+licFileIdentifier, cmd.PersistentFlags().Lookup(licFileIdentifier))) const prSameIdentifier string = "prsame" - cmd.PersistentFlags().Bool(prSameIdentifier, false, "RAW NMFE OPTION - Indicates to nonmem that the PREDPP compilation step should be skipped") + cmd.PersistentFlags().Bool(prSameIdentifier, false, "RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped") errpanic(viper.BindPFlag(nmfeGroup+"."+prSameIdentifier, cmd.PersistentFlags().Lookup(prSameIdentifier))) const backgroundIdentifier string = "background" - cmd.PersistentFlags().Bool(backgroundIdentifier, false, "RAW NMFE OPTION - Tells nonmem not to scan StdIn for control characters") + cmd.PersistentFlags().Bool(backgroundIdentifier, false, "RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters") errpanic(viper.BindPFlag(nmfeGroup+"."+backgroundIdentifier, cmd.PersistentFlags().Lookup(backgroundIdentifier))) const prCompileIdentifier string = "prcompile" @@ -231,12 +231,12 @@ func NewNonmemCmd() *cobra.Command { errpanic(viper.BindPFlag(nmfeGroup+"."+tprDefaultIdentifier, cmd.PersistentFlags().Lookup(tprDefaultIdentifier))) const noBuildIdentifier string = "nobuild" - cmd.PersistentFlags().Bool(noBuildIdentifier, false, "RAW NMFE OPTION - Skips recompiling and rebuilding on nonmem executable") + cmd.PersistentFlags().Bool(noBuildIdentifier, false, "RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable") errpanic(viper.BindPFlag(nmfeGroup+"."+noBuildIdentifier, cmd.PersistentFlags().Lookup(noBuildIdentifier))) const maxLimIdentifier string = "maxlim" cmd.PersistentFlags().Int(maxLimIdentifier, 2, - "RAW NMFE OPTION - Set the maximum values for the buffers used by Nonmem (if 0, don't pass -maxlim to nmfe)") + "RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe)") errpanic(viper.BindPFlag(nmfeGroup+"."+maxLimIdentifier, cmd.PersistentFlags().Lookup(maxLimIdentifier))) cmd.AddCommand(NewCleanCmd()) diff --git a/docs/commands/bbi_init.md b/docs/commands/bbi_init.md index f63f6baa..776b5782 100644 --- a/docs/commands/bbi_init.md +++ b/docs/commands/bbi_init.md @@ -14,7 +14,7 @@ bbi init [flags] ### Options ``` - --dir strings A directory in which to look for NonMem Installations + --dir strings A directory in which to look for NONMEM Installations -h, --help help for init ``` diff --git a/docs/commands/bbi_nonmem.md b/docs/commands/bbi_nonmem.md index 661e36ef..5fff0e63 100644 --- a/docs/commands/bbi_nonmem.md +++ b/docs/commands/bbi_nonmem.md @@ -32,20 +32,20 @@ bbi nonmem [flags] ### Options ``` - --background RAW NMFE OPTION - Tells nonmem not to scan StdIn for control characters + --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters -h, --help help for nonmem - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (Nonmem) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by Nonmem (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for nonmem parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of nonmem from the configuration list to use + --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) + --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string Version of NONMEM from the configuration list to use --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on nonmem executable + --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run nonmem in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in nonmem before timing out (default 2147483647) + --parallel Whether or not to run NONMEM in parallel mode + --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) --prcompile RAW NMFE OPTION - Forces PREDPP compilation --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS - --prsame RAW NMFE OPTION - Indicates to nonmem that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault ``` diff --git a/docs/commands/bbi_nonmem_clean.md b/docs/commands/bbi_nonmem_clean.md index 58107ae3..e19c7ba1 100644 --- a/docs/commands/bbi_nonmem_clean.md +++ b/docs/commands/bbi_nonmem_clean.md @@ -51,23 +51,23 @@ bbi nonmem clean [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells nonmem not to scan StdIn for control characters + --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters -d, --debug debug mode --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (Nonmem) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by Nonmem (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for nonmem parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of nonmem from the configuration list to use + --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) + --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string Version of NONMEM from the configuration list to use --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on nonmem executable + --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable -o, --output string output file --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run nonmem in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in nonmem before timing out (default 2147483647) + --parallel Whether or not to run NONMEM in parallel mode + --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) --prcompile RAW NMFE OPTION - Forces PREDPP compilation --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to nonmem that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault -v, --verbose verbose output diff --git a/docs/commands/bbi_nonmem_covcor.md b/docs/commands/bbi_nonmem_covcor.md index 3ef2d1ef..1948b179 100644 --- a/docs/commands/bbi_nonmem_covcor.md +++ b/docs/commands/bbi_nonmem_covcor.md @@ -22,23 +22,23 @@ bbi nonmem covcor [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells nonmem not to scan StdIn for control characters + --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters -d, --debug debug mode --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (Nonmem) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by Nonmem (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for nonmem parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of nonmem from the configuration list to use + --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) + --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string Version of NONMEM from the configuration list to use --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on nonmem executable + --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable -o, --output string output file --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run nonmem in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in nonmem before timing out (default 2147483647) + --parallel Whether or not to run NONMEM in parallel mode + --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) --prcompile RAW NMFE OPTION - Forces PREDPP compilation --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to nonmem that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault -v, --verbose verbose output diff --git a/docs/commands/bbi_nonmem_params.md b/docs/commands/bbi_nonmem_params.md index ff6bdfcd..8b456984 100644 --- a/docs/commands/bbi_nonmem_params.md +++ b/docs/commands/bbi_nonmem_params.md @@ -26,23 +26,23 @@ bbi nonmem params [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells nonmem not to scan StdIn for control characters + --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters -d, --debug debug mode --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (Nonmem) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by Nonmem (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for nonmem parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of nonmem from the configuration list to use + --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) + --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string Version of NONMEM from the configuration list to use --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on nonmem executable + --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable -o, --output string output file --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run nonmem in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in nonmem before timing out (default 2147483647) + --parallel Whether or not to run NONMEM in parallel mode + --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) --prcompile RAW NMFE OPTION - Forces PREDPP compilation --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to nonmem that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault -v, --verbose verbose output diff --git a/docs/commands/bbi_nonmem_probs.md b/docs/commands/bbi_nonmem_probs.md index b4735a32..d85a4b74 100644 --- a/docs/commands/bbi_nonmem_probs.md +++ b/docs/commands/bbi_nonmem_probs.md @@ -21,23 +21,23 @@ bbi nonmem probs [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells nonmem not to scan StdIn for control characters + --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters -d, --debug debug mode --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (Nonmem) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by Nonmem (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for nonmem parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of nonmem from the configuration list to use + --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) + --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string Version of NONMEM from the configuration list to use --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on nonmem executable + --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable -o, --output string output file --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run nonmem in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in nonmem before timing out (default 2147483647) + --parallel Whether or not to run NONMEM in parallel mode + --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) --prcompile RAW NMFE OPTION - Forces PREDPP compilation --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to nonmem that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault -v, --verbose verbose output diff --git a/docs/commands/bbi_nonmem_reclean.md b/docs/commands/bbi_nonmem_reclean.md index 3069e767..94b4ab13 100644 --- a/docs/commands/bbi_nonmem_reclean.md +++ b/docs/commands/bbi_nonmem_reclean.md @@ -22,23 +22,23 @@ bbi nonmem reclean [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells nonmem not to scan StdIn for control characters + --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters -d, --debug debug mode --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (Nonmem) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by Nonmem (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for nonmem parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of nonmem from the configuration list to use + --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) + --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string Version of NONMEM from the configuration list to use --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on nonmem executable + --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable -o, --output string output file --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run nonmem in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in nonmem before timing out (default 2147483647) + --parallel Whether or not to run NONMEM in parallel mode + --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) --prcompile RAW NMFE OPTION - Forces PREDPP compilation --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to nonmem that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault -v, --verbose verbose output diff --git a/docs/commands/bbi_nonmem_run.md b/docs/commands/bbi_nonmem_run.md index c57cba6e..2248a528 100644 --- a/docs/commands/bbi_nonmem_run.md +++ b/docs/commands/bbi_nonmem_run.md @@ -35,23 +35,23 @@ bbi nonmem run [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells nonmem not to scan StdIn for control characters + --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters -d, --debug debug mode --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (Nonmem) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by Nonmem (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for nonmem parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of nonmem from the configuration list to use + --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) + --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string Version of NONMEM from the configuration list to use --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on nonmem executable + --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable -o, --output string output file --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run nonmem in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in nonmem before timing out (default 2147483647) + --parallel Whether or not to run NONMEM in parallel mode + --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) --prcompile RAW NMFE OPTION - Forces PREDPP compilation --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to nonmem that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault -v, --verbose verbose output diff --git a/docs/commands/bbi_nonmem_run_local.md b/docs/commands/bbi_nonmem_run_local.md index 8f29a62f..189b86a9 100644 --- a/docs/commands/bbi_nonmem_run_local.md +++ b/docs/commands/bbi_nonmem_run_local.md @@ -26,7 +26,7 @@ bbi nonmem run local [flags] ``` --additional_post_work_envs strings Any additional values (as ENV KEY=VALUE) to provide for the post execution environment - --background RAW NMFE OPTION - Tells nonmem not to scan StdIn for control characters + --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters --clean_lvl int clean level used for file output from a given (set of) runs (default 1) --config string Path (relative or absolute) to another bbi.yaml to load --copy_lvl int copy level used for file output from a given (set of) runs @@ -34,24 +34,24 @@ bbi nonmem run local [flags] --delay int Selects a random number of seconds between 1 and this value to stagger / jitter job execution. Assists in dealing with large volumes of work dealing with the same data set. May avoid NMTRAN issues about not being able read / close files --git whether git is used --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (Nonmem) + --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) --log_file string If populated, specifies the file into which to store the output / logging details from bbi - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by Nonmem (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for nonmem parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of nonmem from the configuration list to use + --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string Version of NONMEM from the configuration list to use --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on nonmem executable + --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable -o, --output string output file --output_dir string Go template for the output directory to use for storing details of each executed model (default "{{ .Name }}") --overwrite Whether or not to remove existing output directories if they are present --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run nonmem in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in nonmem before timing out (default 2147483647) + --parallel Whether or not to run NONMEM in parallel mode + --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) --post_work_executable string A script or binary to run when job execution completes or fails --prcompile RAW NMFE OPTION - Forces PREDPP compilation --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to nonmem that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped --save_config Whether or not to save the existing configuration to a file with the model (default true) --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault diff --git a/docs/commands/bbi_nonmem_run_sge.md b/docs/commands/bbi_nonmem_run_sge.md index ebc6a404..2eaef2b6 100644 --- a/docs/commands/bbi_nonmem_run_sge.md +++ b/docs/commands/bbi_nonmem_run_sge.md @@ -27,7 +27,7 @@ bbi nonmem run sge [flags] ``` --additional_post_work_envs strings Any additional values (as ENV KEY=VALUE) to provide for the post execution environment - --background RAW NMFE OPTION - Tells nonmem not to scan StdIn for control characters + --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters --clean_lvl int clean level used for file output from a given (set of) runs (default 1) --config string Path (relative or absolute) to another bbi.yaml to load --copy_lvl int copy level used for file output from a given (set of) runs @@ -35,24 +35,24 @@ bbi nonmem run sge [flags] --delay int Selects a random number of seconds between 1 and this value to stagger / jitter job execution. Assists in dealing with large volumes of work dealing with the same data set. May avoid NMTRAN issues about not being able read / close files --git whether git is used --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (Nonmem) + --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) --log_file string If populated, specifies the file into which to store the output / logging details from bbi - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by Nonmem (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for nonmem parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of nonmem from the configuration list to use + --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string Version of NONMEM from the configuration list to use --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on nonmem executable + --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable -o, --output string output file --output_dir string Go template for the output directory to use for storing details of each executed model (default "{{ .Name }}") --overwrite Whether or not to remove existing output directories if they are present --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run nonmem in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in nonmem before timing out (default 2147483647) + --parallel Whether or not to run NONMEM in parallel mode + --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) --post_work_executable string A script or binary to run when job execution completes or fails --prcompile RAW NMFE OPTION - Forces PREDPP compilation --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to nonmem that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped --save_config Whether or not to save the existing configuration to a file with the model (default true) --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault diff --git a/docs/commands/bbi_nonmem_scaffold.md b/docs/commands/bbi_nonmem_scaffold.md index dcabb3fa..77297bd4 100644 --- a/docs/commands/bbi_nonmem_scaffold.md +++ b/docs/commands/bbi_nonmem_scaffold.md @@ -24,23 +24,23 @@ bbi nonmem scaffold [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells nonmem not to scan StdIn for control characters + --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters -d, --debug debug mode --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (Nonmem) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by Nonmem (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for nonmem parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of nonmem from the configuration list to use + --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) + --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string Version of NONMEM from the configuration list to use --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on nonmem executable + --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable -o, --output string output file --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run nonmem in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in nonmem before timing out (default 2147483647) + --parallel Whether or not to run NONMEM in parallel mode + --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) --prcompile RAW NMFE OPTION - Forces PREDPP compilation --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to nonmem that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault -v, --verbose verbose output diff --git a/docs/commands/bbi_nonmem_summary.md b/docs/commands/bbi_nonmem_summary.md index f00cb692..7cf43174 100644 --- a/docs/commands/bbi_nonmem_summary.md +++ b/docs/commands/bbi_nonmem_summary.md @@ -28,23 +28,23 @@ bbi nonmem summary [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells nonmem not to scan StdIn for control characters + --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters -d, --debug debug mode --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (Nonmem) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by Nonmem (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for nonmem parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of nonmem from the configuration list to use + --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) + --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string Version of NONMEM from the configuration list to use --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on nonmem executable + --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable -o, --output string output file --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run nonmem in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in nonmem before timing out (default 2147483647) + --parallel Whether or not to run NONMEM in parallel mode + --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) --prcompile RAW NMFE OPTION - Forces PREDPP compilation --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to nonmem that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault -v, --verbose verbose output From cde07db5ad480c35fba85b7fb5b09170a7051b84 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Wed, 21 Aug 2024 12:45:31 -0400 Subject: [PATCH 5/9] cmd: rework some flag descriptions --- cmd/init.go | 2 +- cmd/local.go | 4 +-- cmd/nonmem.go | 28 ++++++++-------- cmd/root.go | 2 +- cmd/run.go | 16 ++++----- docs/commands/bbi.md | 2 +- docs/commands/bbi_init.md | 4 +-- docs/commands/bbi_nonmem.md | 30 ++++++++--------- docs/commands/bbi_nonmem_clean.md | 30 ++++++++--------- docs/commands/bbi_nonmem_covcor.md | 30 ++++++++--------- docs/commands/bbi_nonmem_params.md | 30 ++++++++--------- docs/commands/bbi_nonmem_probs.md | 30 ++++++++--------- docs/commands/bbi_nonmem_reclean.md | 30 ++++++++--------- docs/commands/bbi_nonmem_run.md | 46 ++++++++++++------------- docs/commands/bbi_nonmem_run_local.md | 48 +++++++++++++-------------- docs/commands/bbi_nonmem_run_sge.md | 46 ++++++++++++------------- docs/commands/bbi_nonmem_scaffold.md | 30 ++++++++--------- docs/commands/bbi_nonmem_summary.md | 30 ++++++++--------- docs/commands/bbi_version.md | 2 +- 19 files changed, 220 insertions(+), 220 deletions(-) diff --git a/cmd/init.go b/cmd/init.go index 7862f76e..e3558234 100644 --- a/cmd/init.go +++ b/cmd/init.go @@ -61,7 +61,7 @@ func NewInitCmd() *cobra.Command { } const directory string = "dir" - cmd.Flags().StringSlice(directory, []string{}, "A directory in which to look for NONMEM Installations") + cmd.Flags().StringSlice(directory, []string{}, "directory in which to look for NONMEM installations") return cmd } diff --git a/cmd/local.go b/cmd/local.go index be0d5f5a..66f8cf73 100644 --- a/cmd/local.go +++ b/cmd/local.go @@ -354,8 +354,8 @@ func NewLocalCmd() *cobra.Command { } childDirIdentifier := "create_child_dirs" - cmd.PersistentFlags().Bool(childDirIdentifier, true, "Indicates whether or not local branch execution"+ - "should create a new subdirectory with the output_dir variable as its name and execute in that directory") + cmd.PersistentFlags().Bool(childDirIdentifier, true, + "create a new subdirectory, named based on the output_dir option, for execution") errpanic(viper.BindPFlag("local."+childDirIdentifier, cmd.PersistentFlags().Lookup(childDirIdentifier))) return cmd diff --git a/cmd/nonmem.go b/cmd/nonmem.go index a726f7b1..8696356d 100644 --- a/cmd/nonmem.go +++ b/cmd/nonmem.go @@ -180,63 +180,63 @@ func NewNonmemCmd() *cobra.Command { // NM Selector const nmVersionIdentifier string = "nm_version" - cmd.PersistentFlags().String(nmVersionIdentifier, "", "Version of NONMEM from the configuration list to use") + cmd.PersistentFlags().String(nmVersionIdentifier, "", "version of NONMEM from the configuration list to use") errpanic(viper.BindPFlag(nmVersionIdentifier, cmd.PersistentFlags().Lookup(nmVersionIdentifier))) // Parallelization Components const parallelIdentifier string = "parallel" - cmd.PersistentFlags().Bool(parallelIdentifier, false, "Whether or not to run NONMEM in parallel mode") + cmd.PersistentFlags().Bool(parallelIdentifier, false, "whether to run NONMEM in parallel mode") errpanic(viper.BindPFlag(parallelIdentifier, cmd.PersistentFlags().Lookup(parallelIdentifier))) const parallelCompletionTimeoutIdentifier string = "parallel_timeout" - cmd.PersistentFlags().Int(parallelCompletionTimeoutIdentifier, 2147483647, "The amount of time to wait for parallel operations in NONMEM before timing out") + cmd.PersistentFlags().Int(parallelCompletionTimeoutIdentifier, 2147483647, "amount of time to wait for parallel operations in NONMEM before timing out") errpanic(viper.BindPFlag(parallelCompletionTimeoutIdentifier, cmd.PersistentFlags().Lookup(parallelCompletionTimeoutIdentifier))) const mpiExecPathIdentifier string = "mpi_exec_path" - cmd.PersistentFlags().String(mpiExecPathIdentifier, "/usr/local/mpich3/bin/mpiexec", "The fully qualified path to mpiexec. Used for NONMEM parallel operations") + cmd.PersistentFlags().String(mpiExecPathIdentifier, "/usr/local/mpich3/bin/mpiexec", "fully qualified path to mpiexec to use for NONMEM parallel operations") errpanic(viper.BindPFlag(mpiExecPathIdentifier, cmd.PersistentFlags().Lookup(mpiExecPathIdentifier))) const parafileIdentifier string = "parafile" - cmd.PersistentFlags().String(parafileIdentifier, "", "Location of a user-provided parafile to use for parallel execution") + cmd.PersistentFlags().String(parafileIdentifier, "", "location of a user-provided parafile to use for parallel execution") errpanic(viper.BindPFlag(parafileIdentifier, cmd.PersistentFlags().Lookup(parafileIdentifier))) const nmQualIdentifier string = "nmqual" - cmd.PersistentFlags().Bool(nmQualIdentifier, false, "Whether or not to execute with nmqual (autolog.pl)") + cmd.PersistentFlags().Bool(nmQualIdentifier, false, "whether to execute with nmqual (autolog.pl)") errpanic(viper.BindPFlag(nmQualIdentifier, cmd.PersistentFlags().Lookup(nmQualIdentifier))) // NMFE Options const nmfeGroup string = "nmfe_options" const licFileIdentifier string = "licfile" - cmd.PersistentFlags().String(licFileIdentifier, "", "RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM)") + cmd.PersistentFlags().String(licFileIdentifier, "", "RAW NMFE OPTION - NONMEM license file to use") errpanic(viper.BindPFlag(nmfeGroup+"."+licFileIdentifier, cmd.PersistentFlags().Lookup(licFileIdentifier))) const prSameIdentifier string = "prsame" - cmd.PersistentFlags().Bool(prSameIdentifier, false, "RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped") + cmd.PersistentFlags().Bool(prSameIdentifier, false, "RAW NMFE OPTION - tell NONMEM to skip the PREDPP compilation step") errpanic(viper.BindPFlag(nmfeGroup+"."+prSameIdentifier, cmd.PersistentFlags().Lookup(prSameIdentifier))) const backgroundIdentifier string = "background" - cmd.PersistentFlags().Bool(backgroundIdentifier, false, "RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters") + cmd.PersistentFlags().Bool(backgroundIdentifier, false, "RAW NMFE OPTION - tell NONMEM not to scan stdin for control characters") errpanic(viper.BindPFlag(nmfeGroup+"."+backgroundIdentifier, cmd.PersistentFlags().Lookup(backgroundIdentifier))) const prCompileIdentifier string = "prcompile" - cmd.PersistentFlags().Bool(prCompileIdentifier, false, "RAW NMFE OPTION - Forces PREDPP compilation") + cmd.PersistentFlags().Bool(prCompileIdentifier, false, "RAW NMFE OPTION - forces PREDPP compilation") errpanic(viper.BindPFlag(nmfeGroup+"."+prCompileIdentifier, cmd.PersistentFlags().Lookup(prCompileIdentifier))) const prDefaultIdentifier string = "prdefault" - cmd.PersistentFlags().Bool(prDefaultIdentifier, false, "RAW NMFE OPTION - Do not recompile any routines other than FSUBS") + cmd.PersistentFlags().Bool(prDefaultIdentifier, false, "RAW NMFE OPTION - do not recompile any routines other than FSUBS") errpanic(viper.BindPFlag(nmfeGroup+"."+prDefaultIdentifier, cmd.PersistentFlags().Lookup(prDefaultIdentifier))) const tprDefaultIdentifier string = "tprdefault" - cmd.PersistentFlags().Bool(tprDefaultIdentifier, false, "RAW NMFE OPTION - Test if is okay to do -prdefault") + cmd.PersistentFlags().Bool(tprDefaultIdentifier, false, "RAW NMFE OPTION - test if is okay to do -prdefault") errpanic(viper.BindPFlag(nmfeGroup+"."+tprDefaultIdentifier, cmd.PersistentFlags().Lookup(tprDefaultIdentifier))) const noBuildIdentifier string = "nobuild" - cmd.PersistentFlags().Bool(noBuildIdentifier, false, "RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable") + cmd.PersistentFlags().Bool(noBuildIdentifier, false, "RAW NMFE OPTION - do not build a new NONMEM executable") errpanic(viper.BindPFlag(nmfeGroup+"."+noBuildIdentifier, cmd.PersistentFlags().Lookup(noBuildIdentifier))) const maxLimIdentifier string = "maxlim" cmd.PersistentFlags().Int(maxLimIdentifier, 2, - "RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe)") + "RAW NMFE OPTION - set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe)") errpanic(viper.BindPFlag(nmfeGroup+"."+maxLimIdentifier, cmd.PersistentFlags().Lookup(maxLimIdentifier))) cmd.AddCommand(NewCleanCmd()) diff --git a/cmd/root.go b/cmd/root.go index 2127cfbb..9c54224f 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -92,7 +92,7 @@ func NewRootCmd() *cobra.Command { cmd.PersistentFlags().IntVar(&threads, "threads", 4, "number of threads to execute with locally or nodes to execute on in parallel") errpanic(viper.BindPFlag("threads", cmd.PersistentFlags().Lookup("threads"))) // Update to make sure viper binds to the flag - cmd.PersistentFlags().BoolVar(&Json, "json", false, "json tree of output, if possible") + cmd.PersistentFlags().BoolVar(&Json, "json", false, "show JSON output, if possible") errpanic(viper.BindPFlag("json", cmd.PersistentFlags().Lookup("json"))) // Bind to viper cmd.PersistentFlags().BoolVarP(&preview, "preview", "p", false, "preview action, but don't actually run command") diff --git a/cmd/run.go b/cmd/run.go index 70496bbd..3f8b1f14 100644 --- a/cmd/run.go +++ b/cmd/run.go @@ -80,12 +80,12 @@ func NewRunCmd() *cobra.Command { viper.SetDefault("output_dir", "{{ .Name }}") // Int Variables - cmd.PersistentFlags().Int("clean_lvl", 1, "clean level used for file output from a given (set of) runs") + cmd.PersistentFlags().Int("clean_lvl", 1, "clean level used for output") errpanic(viper.BindPFlag("clean_lvl", cmd.PersistentFlags().Lookup("clean_lvl"))) // TODO: these are likely not meangingful as should be set in configlib, but want to configm viper.SetDefault("clean_lvl", 1) - cmd.PersistentFlags().Int("copy_lvl", 0, "copy level used for file output from a given (set of) runs") + cmd.PersistentFlags().Int("copy_lvl", 0, "copy level used for output") errpanic(viper.BindPFlag("copy_lvl", cmd.PersistentFlags().Lookup("copy_lvl"))) viper.SetDefault("copy_lvl", 0) @@ -98,16 +98,16 @@ func NewRunCmd() *cobra.Command { errpanic(viper.BindPFlag("git", cmd.PersistentFlags().Lookup("git"))) viper.SetDefault("git", true) - cmd.PersistentFlags().Bool("overwrite", false, "Whether or not to remove existing output directories if they are present") + cmd.PersistentFlags().Bool("overwrite", false, "whether to remove existing output directories") errpanic(viper.BindPFlag("overwrite", cmd.PersistentFlags().Lookup("overwrite"))) viper.SetDefault("overwrite", false) const configIdentifier string = "config" - cmd.PersistentFlags().String(configIdentifier, "", "Path (relative or absolute) to another bbi.yaml to load") + cmd.PersistentFlags().String(configIdentifier, "", "path to another bbi.yaml to load") errpanic(viper.BindPFlag(configIdentifier, cmd.PersistentFlags().Lookup(configIdentifier))) const saveconfig string = "save_config" - cmd.PersistentFlags().Bool(saveconfig, true, "Whether or not to save the existing configuration to a file with the model") + cmd.PersistentFlags().Bool(saveconfig, true, "whether to save the existing configuration to the output directory") errpanic(viper.BindPFlag(saveconfig, cmd.PersistentFlags().Lookup(saveconfig))) const delayIdentifier string = "delay" @@ -115,15 +115,15 @@ func NewRunCmd() *cobra.Command { errpanic(viper.BindPFlag(delayIdentifier, cmd.PersistentFlags().Lookup(delayIdentifier))) const logFileIdentifier string = "log_file" - cmd.PersistentFlags().String(logFileIdentifier, "", "If populated, specifies the file into which to store the output / logging details from bbi") + cmd.PersistentFlags().String(logFileIdentifier, "", "file into which to store the output / logging details from bbi") errpanic(viper.BindPFlag(logFileIdentifier, cmd.PersistentFlags().Lookup(logFileIdentifier))) const postExecutionHookIdentifier string = "post_work_executable" - cmd.PersistentFlags().String(postExecutionHookIdentifier, "", "A script or binary to run when job execution completes or fails") + cmd.PersistentFlags().String(postExecutionHookIdentifier, "", "script or binary to run when job execution completes or fails") errpanic(viper.BindPFlag(postExecutionHookIdentifier, cmd.PersistentFlags().Lookup(postExecutionHookIdentifier))) const additionalEnvIdentifier string = "additional_post_work_envs" - cmd.PersistentFlags().StringSlice(additionalEnvIdentifier, []string{}, "Any additional values (as ENV KEY=VALUE) to provide for the post execution environment") + cmd.PersistentFlags().StringSlice(additionalEnvIdentifier, []string{}, "additional values (as ENV KEY=VALUE) to provide for the post execution environment") errpanic(viper.BindPFlag(additionalEnvIdentifier, cmd.PersistentFlags().Lookup(additionalEnvIdentifier))) cmd.AddCommand(NewLocalCmd()) diff --git a/docs/commands/bbi.md b/docs/commands/bbi.md index 8eb21687..3a486b11 100644 --- a/docs/commands/bbi.md +++ b/docs/commands/bbi.md @@ -7,7 +7,7 @@ manage and execute models ``` -d, --debug debug mode -h, --help help for bbi - --json json tree of output, if possible + --json show JSON output, if possible -o, --output string output file -p, --preview preview action, but don't actually run command --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) diff --git a/docs/commands/bbi_init.md b/docs/commands/bbi_init.md index 776b5782..2d42c01e 100644 --- a/docs/commands/bbi_init.md +++ b/docs/commands/bbi_init.md @@ -14,7 +14,7 @@ bbi init [flags] ### Options ``` - --dir strings A directory in which to look for NONMEM Installations + --dir strings directory in which to look for NONMEM installations -h, --help help for init ``` @@ -22,7 +22,7 @@ bbi init [flags] ``` -d, --debug debug mode - --json json tree of output, if possible + --json show JSON output, if possible -o, --output string output file -p, --preview preview action, but don't actually run command --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) diff --git a/docs/commands/bbi_nonmem.md b/docs/commands/bbi_nonmem.md index 5fff0e63..dbab9932 100644 --- a/docs/commands/bbi_nonmem.md +++ b/docs/commands/bbi_nonmem.md @@ -32,28 +32,28 @@ bbi nonmem [flags] ### Options ``` - --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters + --background RAW NMFE OPTION - tell NONMEM not to scan stdin for control characters -h, --help help for nonmem - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of NONMEM from the configuration list to use - --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable - --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run NONMEM in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) - --prcompile RAW NMFE OPTION - Forces PREDPP compilation - --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS - --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped - --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault + --licfile string RAW NMFE OPTION - NONMEM license file to use + --maxlim int RAW NMFE OPTION - set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string fully qualified path to mpiexec to use for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string version of NONMEM from the configuration list to use + --nmqual whether to execute with nmqual (autolog.pl) + --nobuild RAW NMFE OPTION - do not build a new NONMEM executable + --parafile string location of a user-provided parafile to use for parallel execution + --parallel whether to run NONMEM in parallel mode + --parallel_timeout int amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) + --prcompile RAW NMFE OPTION - forces PREDPP compilation + --prdefault RAW NMFE OPTION - do not recompile any routines other than FSUBS + --prsame RAW NMFE OPTION - tell NONMEM to skip the PREDPP compilation step + --tprdefault RAW NMFE OPTION - test if is okay to do -prdefault ``` ### Options inherited from parent commands ``` -d, --debug debug mode - --json json tree of output, if possible + --json show JSON output, if possible -o, --output string output file -p, --preview preview action, but don't actually run command --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) diff --git a/docs/commands/bbi_nonmem_clean.md b/docs/commands/bbi_nonmem_clean.md index e19c7ba1..f17cbaed 100644 --- a/docs/commands/bbi_nonmem_clean.md +++ b/docs/commands/bbi_nonmem_clean.md @@ -51,25 +51,25 @@ bbi nonmem clean [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters + --background RAW NMFE OPTION - tell NONMEM not to scan stdin for control characters -d, --debug debug mode - --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of NONMEM from the configuration list to use - --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable + --json show JSON output, if possible + --licfile string RAW NMFE OPTION - NONMEM license file to use + --maxlim int RAW NMFE OPTION - set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string fully qualified path to mpiexec to use for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string version of NONMEM from the configuration list to use + --nmqual whether to execute with nmqual (autolog.pl) + --nobuild RAW NMFE OPTION - do not build a new NONMEM executable -o, --output string output file - --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run NONMEM in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) - --prcompile RAW NMFE OPTION - Forces PREDPP compilation - --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS + --parafile string location of a user-provided parafile to use for parallel execution + --parallel whether to run NONMEM in parallel mode + --parallel_timeout int amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) + --prcompile RAW NMFE OPTION - forces PREDPP compilation + --prdefault RAW NMFE OPTION - do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - tell NONMEM to skip the PREDPP compilation step --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) - --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault + --tprdefault RAW NMFE OPTION - test if is okay to do -prdefault -v, --verbose verbose output ``` diff --git a/docs/commands/bbi_nonmem_covcor.md b/docs/commands/bbi_nonmem_covcor.md index 1948b179..b8086e9f 100644 --- a/docs/commands/bbi_nonmem_covcor.md +++ b/docs/commands/bbi_nonmem_covcor.md @@ -22,25 +22,25 @@ bbi nonmem covcor [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters + --background RAW NMFE OPTION - tell NONMEM not to scan stdin for control characters -d, --debug debug mode - --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of NONMEM from the configuration list to use - --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable + --json show JSON output, if possible + --licfile string RAW NMFE OPTION - NONMEM license file to use + --maxlim int RAW NMFE OPTION - set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string fully qualified path to mpiexec to use for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string version of NONMEM from the configuration list to use + --nmqual whether to execute with nmqual (autolog.pl) + --nobuild RAW NMFE OPTION - do not build a new NONMEM executable -o, --output string output file - --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run NONMEM in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) - --prcompile RAW NMFE OPTION - Forces PREDPP compilation - --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS + --parafile string location of a user-provided parafile to use for parallel execution + --parallel whether to run NONMEM in parallel mode + --parallel_timeout int amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) + --prcompile RAW NMFE OPTION - forces PREDPP compilation + --prdefault RAW NMFE OPTION - do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - tell NONMEM to skip the PREDPP compilation step --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) - --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault + --tprdefault RAW NMFE OPTION - test if is okay to do -prdefault -v, --verbose verbose output ``` diff --git a/docs/commands/bbi_nonmem_params.md b/docs/commands/bbi_nonmem_params.md index 8b456984..223af726 100644 --- a/docs/commands/bbi_nonmem_params.md +++ b/docs/commands/bbi_nonmem_params.md @@ -26,25 +26,25 @@ bbi nonmem params [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters + --background RAW NMFE OPTION - tell NONMEM not to scan stdin for control characters -d, --debug debug mode - --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of NONMEM from the configuration list to use - --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable + --json show JSON output, if possible + --licfile string RAW NMFE OPTION - NONMEM license file to use + --maxlim int RAW NMFE OPTION - set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string fully qualified path to mpiexec to use for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string version of NONMEM from the configuration list to use + --nmqual whether to execute with nmqual (autolog.pl) + --nobuild RAW NMFE OPTION - do not build a new NONMEM executable -o, --output string output file - --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run NONMEM in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) - --prcompile RAW NMFE OPTION - Forces PREDPP compilation - --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS + --parafile string location of a user-provided parafile to use for parallel execution + --parallel whether to run NONMEM in parallel mode + --parallel_timeout int amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) + --prcompile RAW NMFE OPTION - forces PREDPP compilation + --prdefault RAW NMFE OPTION - do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - tell NONMEM to skip the PREDPP compilation step --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) - --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault + --tprdefault RAW NMFE OPTION - test if is okay to do -prdefault -v, --verbose verbose output ``` diff --git a/docs/commands/bbi_nonmem_probs.md b/docs/commands/bbi_nonmem_probs.md index d85a4b74..99b98b18 100644 --- a/docs/commands/bbi_nonmem_probs.md +++ b/docs/commands/bbi_nonmem_probs.md @@ -21,25 +21,25 @@ bbi nonmem probs [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters + --background RAW NMFE OPTION - tell NONMEM not to scan stdin for control characters -d, --debug debug mode - --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of NONMEM from the configuration list to use - --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable + --json show JSON output, if possible + --licfile string RAW NMFE OPTION - NONMEM license file to use + --maxlim int RAW NMFE OPTION - set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string fully qualified path to mpiexec to use for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string version of NONMEM from the configuration list to use + --nmqual whether to execute with nmqual (autolog.pl) + --nobuild RAW NMFE OPTION - do not build a new NONMEM executable -o, --output string output file - --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run NONMEM in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) - --prcompile RAW NMFE OPTION - Forces PREDPP compilation - --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS + --parafile string location of a user-provided parafile to use for parallel execution + --parallel whether to run NONMEM in parallel mode + --parallel_timeout int amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) + --prcompile RAW NMFE OPTION - forces PREDPP compilation + --prdefault RAW NMFE OPTION - do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - tell NONMEM to skip the PREDPP compilation step --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) - --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault + --tprdefault RAW NMFE OPTION - test if is okay to do -prdefault -v, --verbose verbose output ``` diff --git a/docs/commands/bbi_nonmem_reclean.md b/docs/commands/bbi_nonmem_reclean.md index 94b4ab13..1e3acb74 100644 --- a/docs/commands/bbi_nonmem_reclean.md +++ b/docs/commands/bbi_nonmem_reclean.md @@ -22,25 +22,25 @@ bbi nonmem reclean [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters + --background RAW NMFE OPTION - tell NONMEM not to scan stdin for control characters -d, --debug debug mode - --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of NONMEM from the configuration list to use - --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable + --json show JSON output, if possible + --licfile string RAW NMFE OPTION - NONMEM license file to use + --maxlim int RAW NMFE OPTION - set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string fully qualified path to mpiexec to use for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string version of NONMEM from the configuration list to use + --nmqual whether to execute with nmqual (autolog.pl) + --nobuild RAW NMFE OPTION - do not build a new NONMEM executable -o, --output string output file - --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run NONMEM in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) - --prcompile RAW NMFE OPTION - Forces PREDPP compilation - --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS + --parafile string location of a user-provided parafile to use for parallel execution + --parallel whether to run NONMEM in parallel mode + --parallel_timeout int amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) + --prcompile RAW NMFE OPTION - forces PREDPP compilation + --prdefault RAW NMFE OPTION - do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - tell NONMEM to skip the PREDPP compilation step --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) - --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault + --tprdefault RAW NMFE OPTION - test if is okay to do -prdefault -v, --verbose verbose output ``` diff --git a/docs/commands/bbi_nonmem_run.md b/docs/commands/bbi_nonmem_run.md index 2248a528..ce7c69f6 100644 --- a/docs/commands/bbi_nonmem_run.md +++ b/docs/commands/bbi_nonmem_run.md @@ -18,42 +18,42 @@ bbi nonmem run [flags] ### Options ``` - --additional_post_work_envs strings Any additional values (as ENV KEY=VALUE) to provide for the post execution environment - --clean_lvl int clean level used for file output from a given (set of) runs (default 1) - --config string Path (relative or absolute) to another bbi.yaml to load - --copy_lvl int copy level used for file output from a given (set of) runs + --additional_post_work_envs strings additional values (as ENV KEY=VALUE) to provide for the post execution environment + --clean_lvl int clean level used for output (default 1) + --config string path to another bbi.yaml to load + --copy_lvl int copy level used for output --delay int Selects a random number of seconds between 1 and this value to stagger / jitter job execution. Assists in dealing with large volumes of work dealing with the same data set. May avoid NMTRAN issues about not being able read / close files --git whether git is used -h, --help help for run - --log_file string If populated, specifies the file into which to store the output / logging details from bbi + --log_file string file into which to store the output / logging details from bbi --output_dir string Go template for the output directory to use for storing details of each executed model (default "{{ .Name }}") - --overwrite Whether or not to remove existing output directories if they are present - --post_work_executable string A script or binary to run when job execution completes or fails - --save_config Whether or not to save the existing configuration to a file with the model (default true) + --overwrite whether to remove existing output directories + --post_work_executable string script or binary to run when job execution completes or fails + --save_config whether to save the existing configuration to the output directory (default true) ``` ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters + --background RAW NMFE OPTION - tell NONMEM not to scan stdin for control characters -d, --debug debug mode - --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of NONMEM from the configuration list to use - --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable + --json show JSON output, if possible + --licfile string RAW NMFE OPTION - NONMEM license file to use + --maxlim int RAW NMFE OPTION - set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string fully qualified path to mpiexec to use for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string version of NONMEM from the configuration list to use + --nmqual whether to execute with nmqual (autolog.pl) + --nobuild RAW NMFE OPTION - do not build a new NONMEM executable -o, --output string output file - --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run NONMEM in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) - --prcompile RAW NMFE OPTION - Forces PREDPP compilation - --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS + --parafile string location of a user-provided parafile to use for parallel execution + --parallel whether to run NONMEM in parallel mode + --parallel_timeout int amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) + --prcompile RAW NMFE OPTION - forces PREDPP compilation + --prdefault RAW NMFE OPTION - do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - tell NONMEM to skip the PREDPP compilation step --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) - --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault + --tprdefault RAW NMFE OPTION - test if is okay to do -prdefault -v, --verbose verbose output ``` diff --git a/docs/commands/bbi_nonmem_run_local.md b/docs/commands/bbi_nonmem_run_local.md index 189b86a9..3605b66c 100644 --- a/docs/commands/bbi_nonmem_run_local.md +++ b/docs/commands/bbi_nonmem_run_local.md @@ -18,43 +18,43 @@ bbi nonmem run local [flags] ### Options ``` - --create_child_dirs Indicates whether or not local branch executionshould create a new subdirectory with the output_dir variable as its name and execute in that directory (default true) + --create_child_dirs create a new subdirectory, named based on the output_dir option, for execution (default true) -h, --help help for local ``` ### Options inherited from parent commands ``` - --additional_post_work_envs strings Any additional values (as ENV KEY=VALUE) to provide for the post execution environment - --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters - --clean_lvl int clean level used for file output from a given (set of) runs (default 1) - --config string Path (relative or absolute) to another bbi.yaml to load - --copy_lvl int copy level used for file output from a given (set of) runs + --additional_post_work_envs strings additional values (as ENV KEY=VALUE) to provide for the post execution environment + --background RAW NMFE OPTION - tell NONMEM not to scan stdin for control characters + --clean_lvl int clean level used for output (default 1) + --config string path to another bbi.yaml to load + --copy_lvl int copy level used for output -d, --debug debug mode --delay int Selects a random number of seconds between 1 and this value to stagger / jitter job execution. Assists in dealing with large volumes of work dealing with the same data set. May avoid NMTRAN issues about not being able read / close files --git whether git is used - --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) - --log_file string If populated, specifies the file into which to store the output / logging details from bbi - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of NONMEM from the configuration list to use - --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable + --json show JSON output, if possible + --licfile string RAW NMFE OPTION - NONMEM license file to use + --log_file string file into which to store the output / logging details from bbi + --maxlim int RAW NMFE OPTION - set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string fully qualified path to mpiexec to use for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string version of NONMEM from the configuration list to use + --nmqual whether to execute with nmqual (autolog.pl) + --nobuild RAW NMFE OPTION - do not build a new NONMEM executable -o, --output string output file --output_dir string Go template for the output directory to use for storing details of each executed model (default "{{ .Name }}") - --overwrite Whether or not to remove existing output directories if they are present - --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run NONMEM in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) - --post_work_executable string A script or binary to run when job execution completes or fails - --prcompile RAW NMFE OPTION - Forces PREDPP compilation - --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS + --overwrite whether to remove existing output directories + --parafile string location of a user-provided parafile to use for parallel execution + --parallel whether to run NONMEM in parallel mode + --parallel_timeout int amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) + --post_work_executable string script or binary to run when job execution completes or fails + --prcompile RAW NMFE OPTION - forces PREDPP compilation + --prdefault RAW NMFE OPTION - do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped - --save_config Whether or not to save the existing configuration to a file with the model (default true) + --prsame RAW NMFE OPTION - tell NONMEM to skip the PREDPP compilation step + --save_config whether to save the existing configuration to the output directory (default true) --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) - --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault + --tprdefault RAW NMFE OPTION - test if is okay to do -prdefault -v, --verbose verbose output ``` diff --git a/docs/commands/bbi_nonmem_run_sge.md b/docs/commands/bbi_nonmem_run_sge.md index 2eaef2b6..d7e2b9c7 100644 --- a/docs/commands/bbi_nonmem_run_sge.md +++ b/docs/commands/bbi_nonmem_run_sge.md @@ -26,36 +26,36 @@ bbi nonmem run sge [flags] ### Options inherited from parent commands ``` - --additional_post_work_envs strings Any additional values (as ENV KEY=VALUE) to provide for the post execution environment - --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters - --clean_lvl int clean level used for file output from a given (set of) runs (default 1) - --config string Path (relative or absolute) to another bbi.yaml to load - --copy_lvl int copy level used for file output from a given (set of) runs + --additional_post_work_envs strings additional values (as ENV KEY=VALUE) to provide for the post execution environment + --background RAW NMFE OPTION - tell NONMEM not to scan stdin for control characters + --clean_lvl int clean level used for output (default 1) + --config string path to another bbi.yaml to load + --copy_lvl int copy level used for output -d, --debug debug mode --delay int Selects a random number of seconds between 1 and this value to stagger / jitter job execution. Assists in dealing with large volumes of work dealing with the same data set. May avoid NMTRAN issues about not being able read / close files --git whether git is used - --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) - --log_file string If populated, specifies the file into which to store the output / logging details from bbi - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of NONMEM from the configuration list to use - --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable + --json show JSON output, if possible + --licfile string RAW NMFE OPTION - NONMEM license file to use + --log_file string file into which to store the output / logging details from bbi + --maxlim int RAW NMFE OPTION - set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string fully qualified path to mpiexec to use for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string version of NONMEM from the configuration list to use + --nmqual whether to execute with nmqual (autolog.pl) + --nobuild RAW NMFE OPTION - do not build a new NONMEM executable -o, --output string output file --output_dir string Go template for the output directory to use for storing details of each executed model (default "{{ .Name }}") - --overwrite Whether or not to remove existing output directories if they are present - --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run NONMEM in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) - --post_work_executable string A script or binary to run when job execution completes or fails - --prcompile RAW NMFE OPTION - Forces PREDPP compilation - --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS + --overwrite whether to remove existing output directories + --parafile string location of a user-provided parafile to use for parallel execution + --parallel whether to run NONMEM in parallel mode + --parallel_timeout int amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) + --post_work_executable string script or binary to run when job execution completes or fails + --prcompile RAW NMFE OPTION - forces PREDPP compilation + --prdefault RAW NMFE OPTION - do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped - --save_config Whether or not to save the existing configuration to a file with the model (default true) + --prsame RAW NMFE OPTION - tell NONMEM to skip the PREDPP compilation step + --save_config whether to save the existing configuration to the output directory (default true) --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) - --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault + --tprdefault RAW NMFE OPTION - test if is okay to do -prdefault -v, --verbose verbose output ``` diff --git a/docs/commands/bbi_nonmem_scaffold.md b/docs/commands/bbi_nonmem_scaffold.md index 77297bd4..902bf0ff 100644 --- a/docs/commands/bbi_nonmem_scaffold.md +++ b/docs/commands/bbi_nonmem_scaffold.md @@ -24,25 +24,25 @@ bbi nonmem scaffold [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters + --background RAW NMFE OPTION - tell NONMEM not to scan stdin for control characters -d, --debug debug mode - --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of NONMEM from the configuration list to use - --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable + --json show JSON output, if possible + --licfile string RAW NMFE OPTION - NONMEM license file to use + --maxlim int RAW NMFE OPTION - set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string fully qualified path to mpiexec to use for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string version of NONMEM from the configuration list to use + --nmqual whether to execute with nmqual (autolog.pl) + --nobuild RAW NMFE OPTION - do not build a new NONMEM executable -o, --output string output file - --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run NONMEM in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) - --prcompile RAW NMFE OPTION - Forces PREDPP compilation - --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS + --parafile string location of a user-provided parafile to use for parallel execution + --parallel whether to run NONMEM in parallel mode + --parallel_timeout int amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) + --prcompile RAW NMFE OPTION - forces PREDPP compilation + --prdefault RAW NMFE OPTION - do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - tell NONMEM to skip the PREDPP compilation step --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) - --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault + --tprdefault RAW NMFE OPTION - test if is okay to do -prdefault -v, --verbose verbose output ``` diff --git a/docs/commands/bbi_nonmem_summary.md b/docs/commands/bbi_nonmem_summary.md index 7cf43174..f9047c14 100644 --- a/docs/commands/bbi_nonmem_summary.md +++ b/docs/commands/bbi_nonmem_summary.md @@ -28,25 +28,25 @@ bbi nonmem summary [flags] ### Options inherited from parent commands ``` - --background RAW NMFE OPTION - Tells NONMEM not to scan StdIn for control characters + --background RAW NMFE OPTION - tell NONMEM not to scan stdin for control characters -d, --debug debug mode - --json json tree of output, if possible - --licfile string RAW NMFE OPTION - Specify a license file to use with NMFE (NONMEM) - --maxlim int RAW NMFE OPTION - Set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) - --mpi_exec_path string The fully qualified path to mpiexec. Used for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") - --nm_version string Version of NONMEM from the configuration list to use - --nmqual Whether or not to execute with nmqual (autolog.pl) - --nobuild RAW NMFE OPTION - Skips recompiling and rebuilding on NONMEM executable + --json show JSON output, if possible + --licfile string RAW NMFE OPTION - NONMEM license file to use + --maxlim int RAW NMFE OPTION - set the maximum values for the buffers used by NONMEM (if 0, don't pass -maxlim to nmfe) (default 2) + --mpi_exec_path string fully qualified path to mpiexec to use for NONMEM parallel operations (default "/usr/local/mpich3/bin/mpiexec") + --nm_version string version of NONMEM from the configuration list to use + --nmqual whether to execute with nmqual (autolog.pl) + --nobuild RAW NMFE OPTION - do not build a new NONMEM executable -o, --output string output file - --parafile string Location of a user-provided parafile to use for parallel execution - --parallel Whether or not to run NONMEM in parallel mode - --parallel_timeout int The amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) - --prcompile RAW NMFE OPTION - Forces PREDPP compilation - --prdefault RAW NMFE OPTION - Do not recompile any routines other than FSUBS + --parafile string location of a user-provided parafile to use for parallel execution + --parallel whether to run NONMEM in parallel mode + --parallel_timeout int amount of time to wait for parallel operations in NONMEM before timing out (default 2147483647) + --prcompile RAW NMFE OPTION - forces PREDPP compilation + --prdefault RAW NMFE OPTION - do not recompile any routines other than FSUBS -p, --preview preview action, but don't actually run command - --prsame RAW NMFE OPTION - Indicates to NONMEM that the PREDPP compilation step should be skipped + --prsame RAW NMFE OPTION - tell NONMEM to skip the PREDPP compilation step --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) - --tprdefault RAW NMFE OPTION - Test if is okay to do -prdefault + --tprdefault RAW NMFE OPTION - test if is okay to do -prdefault -v, --verbose verbose output ``` diff --git a/docs/commands/bbi_version.md b/docs/commands/bbi_version.md index 287df00c..9f90f744 100644 --- a/docs/commands/bbi_version.md +++ b/docs/commands/bbi_version.md @@ -22,7 +22,7 @@ bbi version [flags] ``` -d, --debug debug mode - --json json tree of output, if possible + --json show JSON output, if possible -o, --output string output file -p, --preview preview action, but don't actually run command --threads int number of threads to execute with locally or nodes to execute on in parallel (default 4) From 91ffa2d716d3c04c249a33f7b57c31ad85d1d7b5 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Wed, 21 Aug 2024 12:45:31 -0400 Subject: [PATCH 6/9] cmd: reformat and expand command docs --- cmd/clean.go | 54 +++++++++++------------- cmd/covcor.go | 20 +++++---- cmd/init.go | 9 +++- cmd/local.go | 8 ++-- cmd/nonmem.go | 15 ++++--- cmd/params.go | 23 ++++++---- cmd/project.go | 19 ++++++--- cmd/reclean.go | 11 ++--- cmd/root.go | 2 +- cmd/run.go | 23 +++++----- cmd/scaffold.go | 10 ++--- cmd/sge.go | 8 ++-- cmd/summary.go | 27 +++++++----- cmd/version.go | 7 +-- docs/commands/bbi.md | 6 +-- docs/commands/bbi_init.md | 11 +++-- docs/commands/bbi_nonmem.md | 61 ++++++++++++++------------- docs/commands/bbi_nonmem_clean.md | 55 ++++++++++++------------ docs/commands/bbi_nonmem_covcor.md | 23 +++++++--- docs/commands/bbi_nonmem_params.md | 26 ++++++++---- docs/commands/bbi_nonmem_probs.md | 26 +++++++++--- docs/commands/bbi_nonmem_reclean.md | 17 +++++--- docs/commands/bbi_nonmem_run.md | 27 +++++++----- docs/commands/bbi_nonmem_run_local.md | 22 +++++----- docs/commands/bbi_nonmem_run_sge.md | 22 +++++----- docs/commands/bbi_nonmem_scaffold.md | 12 +++--- docs/commands/bbi_nonmem_summary.md | 30 +++++++++---- docs/commands/bbi_version.md | 10 +---- 28 files changed, 333 insertions(+), 251 deletions(-) diff --git a/cmd/clean.go b/cmd/clean.go index 68ae963a..ff32ea68 100644 --- a/cmd/clean.go +++ b/cmd/clean.go @@ -152,36 +152,30 @@ func getMatches(s []string, expr string, regex bool) ([]string, error) { func NewCleanCmd() *cobra.Command { cmd := &cobra.Command{ - Use: "clean", - Short: "clean files and folders", - Long: ` -glob examples: -bbi clean *.mod // anything with extension .mod -bbi clean *.mod --noFolders // anything with extension .mod -bbi clean run* // anything starting with run -regular expression examples: - -bbi clean ^run --regex // anything beginning with the letters run -bbi clean ^run -v --regex // print out files and folders that will be deleted -bbi clean ^run --filesOnly --regex // only remove matching files -bbi clean _est_ --dirsOnly --regex // only remove matching folders -bbi clean _est_ --dirsOnly --preview --regex // show what output would be if clean occured but don't actually clean -bbi clean "run009.[^mod]" --regex // all matching run009. but not .mod files -bbi clean "run009.(mod|lst)$" --regex // match run009.lst and run009.mod - -can also clean via the opposite of a match with inverse - -bbi clean ".modt{0,1}$" --filesOnly --inverse --regex // clean all files not matching .mod or .modt - -clean copied files via - -bbi clean --copiedRuns="run001" -bbi clean --copiedRuns="run[001:010]" - -can be a comma separated list as well - -bbi clean --copiedRuns="run[001:010],run100" - `, + Use: "clean [flags] [...]", + Short: "Clean files and folders", + Long: `Clean the files and directories that match the specified patterns. +Whether the pattern is interpreted as a glob or regex is controlled by the +--regex flag. + +If files were copied to the parent directory automatically after model +execution (via the copy_lvl configuration), the original files in the run +directory can be cleaned up by selecting the run with the --copiedRuns +option.`, + Example: ` # Remove items in the current directory that end with ".mod" + bbi nonmem clean *.mod + # The same as above but ensure only files are removed + bbi nonmem clean --filesOnly *.mod + + # Remove files in the current directory that start with "run" and end with + # ".mod" or ".lst" + bbi nonmem clean --filesOnly --regex "run.*\.(mod|lst)$" + # Report what the above would remove but don't actually do it + bbi nonmem clean --preview --filesOnly --regex "run.*\.(mod|lst)$" + + # Remove copied files (recorded in '{run}_copied.json' by 'bbi run') for + # run001, run002, run003, and run100 + bbi nonmem clean --copiedRuns='run[001:003],run100'`, RunE: clean, } diff --git a/cmd/covcor.go b/cmd/covcor.go index 3dfa3d58..26a9e40c 100644 --- a/cmd/covcor.go +++ b/cmd/covcor.go @@ -24,10 +24,10 @@ import ( "github.com/spf13/viper" ) -const covcorLongDescription string = `load .cov and .cor output from model(s), for example: -bbi nonmem covcor run001/run001 -bbi nonmem covcor run001/run001.cov - ` +const covcorExamples string = ` # Display .cov/cor values from run001/run001.{cov,cor} + bbi nonmem covcor run001/run001 + # Display the same values by specifying a full output file + bbi nonmem covcor run001/run001.cov` func covcor(cmd *cobra.Command, args []string) { if debug { @@ -47,9 +47,13 @@ func covcor(cmd *cobra.Command, args []string) { func NewCovcorCmd() *cobra.Command { return &cobra.Command{ - Use: "covcor", - Short: "load .cov and .cor output from a model run", - Long: covcorLongDescription, - Run: covcor, + Use: "covcor [flags] ", + Short: "Display .cov and .cor output for a model", + Long: `Read the .cov and .cor files from a model's output directory and +display the values as a JSON object. The argument is typically a shared prefix +for the run output files, but it can be any path from which the run name can be +derived.`, + Example: covcorExamples, + Run: covcor, } } diff --git a/cmd/init.go b/cmd/init.go index e3558234..0df7b28c 100644 --- a/cmd/init.go +++ b/cmd/init.go @@ -55,8 +55,13 @@ func NewInitCmd() *cobra.Command { cmd := &cobra.Command{ Use: "init", Short: "Create configuration file with defaults", - Long: `Run bbi init to create a bbi.yaml configuration file in the current directory. - `, + Long: `Write a bbi.yaml configuration file in the current directory +to initialize it for running bbi. + +If the --dir=DIR option is specified, DIR should point to a directory that +contains one or more NONMEM installations directories. Any subdirectory in +DIR is taken as an installation if it has the expected layout (e.g., a "run" +directory with an nmfe executable)`, RunE: initializer, } diff --git a/cmd/local.go b/cmd/local.go index 66f8cf73..851bac2d 100644 --- a/cmd/local.go +++ b/cmd/local.go @@ -347,10 +347,10 @@ func (l LocalModel) Cleanup(channels *turnstile.ChannelMap) { func NewLocalCmd() *cobra.Command { cmd := &cobra.Command{ - Use: "local", - Short: "local specifies to run a (set of) models locally", - Long: runLongDescription, - Run: local, + Use: "local [flags] [...]", + Short: "Run models locally", + Example: fmt.Sprintf(runExamples, "local"), + Run: local, } childDirIdentifier := "create_child_dirs" diff --git a/cmd/nonmem.go b/cmd/nonmem.go index 8696356d..aa58c03d 100644 --- a/cmd/nonmem.go +++ b/cmd/nonmem.go @@ -164,18 +164,21 @@ type NonMemModel struct { Error error `json:"error"` } -var nonmemLongDescription string = fmt.Sprintf("\n%s\n\n%s\n\n%s\n", runLongDescription, summaryLongDescription, covcorLongDescription) +var nonmemExamples string = fmt.Sprintf("%s\n\n%s\n\n%s\n", + fmt.Sprintf(runExamples, "(local|sge)"), + summaryExamples, + covcorExamples) func nonmem(_ *cobra.Command, _ []string) { - println(nonmemLongDescription) + println(nonmemExamples) } func NewNonmemCmd() *cobra.Command { cmd := &cobra.Command{ - Use: "nonmem", - Short: "nonmem a (set of) models locally or on the grid", - Long: nonmemLongDescription, - Run: nonmem, + Use: "nonmem", + Short: "Entry point for NONMEM-related subcommands", + Example: nonmemExamples, + Run: nonmem, } // NM Selector diff --git a/cmd/params.go b/cmd/params.go index 6c43ee68..76bd7b89 100644 --- a/cmd/params.go +++ b/cmd/params.go @@ -32,11 +32,12 @@ import ( "github.com/spf13/viper" ) -const paramsLongDescription string = `summarize model(s), for example: -bbi nonmem params run001 -bbi nonmem params run001 -bbi nonmem params run001 - ` +const paramsExamples string = ` # Display table of parameters for run001 + bbi nonmem params run001 + # Display table of parameters for all model runs the current directory + bbi nonmem params --dir=. + # Print JSON output instead of a table + bbi nonmem params --json --dir=.` var ( noParamNames bool @@ -434,10 +435,14 @@ func params(cmd *cobra.Command, args []string) { func NewParamsCmd() *cobra.Command { var cmd = &cobra.Command{ - Use: "params", - Short: "get the parameters of model(s)", - Long: paramsLongDescription, - Run: params, + Use: "params [flags] []", + Short: "Extract the parameter estimates of models", + Long: `Display the parameter values from completed models. If a directory is +specified via --dir, get the parameters of all model runs found in that +directory. Otherwise the positional argument should specify a run directory +to extract parameters from.`, + Example: paramsExamples, + Run: params, } //Used for Summary diff --git a/cmd/project.go b/cmd/project.go index 30740817..fbbccb92 100644 --- a/cmd/project.go +++ b/cmd/project.go @@ -85,11 +85,20 @@ func probs(_ *cobra.Command, args []string) error { } func NewProbsCmd() *cobra.Command { return &cobra.Command{ - Use: "probs", - Short: "summarize information about project", - Long: `get information about models in the project: -nmu project - `, + Use: "probs [flags] []", + Short: "Summarize model definitions in a directory", + Long: `This subcommand extracts information from the *.mod files in the +current directory or the specified directory. By default, it displays a +table with the $PROBLEM text for each model file. If --json is passed, it +prints JSON output with more details about each model (e.g., which +estimation methods are present). + +Note: Only model files with a *.mod extension are currently supported.`, + Example: `# Output a table summarizing the $PROBLEM text for the *.mod files +# in the current directory +bbi nonmem probs +# Instead of the table, show JSON output with more details +bbi nonmem probs --json`, RunE: probs, } } diff --git a/cmd/reclean.go b/cmd/reclean.go index c7521fe4..bf8821ad 100644 --- a/cmd/reclean.go +++ b/cmd/reclean.go @@ -43,11 +43,12 @@ func reclean(cmd *cobra.Command, args []string) error { func NewRecleanCmd() *cobra.Command { cmd := &cobra.Command{ - Use: "reclean [flags] ", - Short: "clean files in an estimation directory by clean level", - Long: ` - bbi reclean run001_est_01 - `, + Use: "reclean [flags] ", + Short: "Clean files in run directory by specified level", + Example: ` bbi nonmem run local --clean_lvl=0 001.ctl + # Reclean the run directory for 001, deleting what would have been cleaned if + # the model was executed with a clean level of 1 + bbi nonmem reclean --recleanLvl=1 001`, RunE: reclean, } diff --git a/cmd/root.go b/cmd/root.go index 9c54224f..fa8036e6 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -67,7 +67,7 @@ func Execute(build string) { func NewRootCmd() *cobra.Command { cmd := &cobra.Command{ Use: "bbi", - Short: "manage and execute models", + Short: "Manage and execute models", Long: fmt.Sprintf("bbi CLI version %s", VERSION), } diff --git a/cmd/run.go b/cmd/run.go index 3f8b1f14..fba72915 100644 --- a/cmd/run.go +++ b/cmd/run.go @@ -3,6 +3,7 @@ package cmd import ( "bytes" "errors" + "fmt" "os" "os/exec" "path/filepath" @@ -17,12 +18,12 @@ import ( "github.com/spf13/viper" ) -const runLongDescription string = `run nonmem model(s), for example: -bbi nonmem run run001.mod -bbi nonmem run --clean_lvl=1 run001.mod run002.mod -bbi nonmem run run[001:006].mod // expand to run001.mod run002.mod ... run006.mod local -bbi nonmem run .// run all models in directory - ` +const runExamples string = ` # Execute model run001 + bbi nonmem run %[1]s run001.mod + # Run models run001.mod, run002.mod, and run003.mod + bbi nonmem run %[1]s 'run[001:003].mod' + # Run all models in the current directory + bbi nonmem run %[1]s .` const postProcessingScriptTemplate string = `#!/bin/bash @@ -54,15 +55,17 @@ const postProcessingScriptTemplate string = `#!/bin/bash ` func run(_ *cobra.Command, _ []string) { - println(runLongDescription) + println(fmt.Sprintf(runExamples, "(local|sge)")) } func NewRunCmd() *cobra.Command { cmd := &cobra.Command{ Use: "run", - Short: "run a (set of) models locally or on the grid", - Long: runLongDescription, - Run: run, + Short: "Run models locally or on the grid", + Long: `This is the entry point to subcommands for running NONMEM models. Each +subcommand represents a different "mode" of execution (e.g., local).`, + Example: fmt.Sprintf(runExamples, "(local|sge)"), + Run: run, } // String Variables diff --git a/cmd/scaffold.go b/cmd/scaffold.go index 97879c53..356e6f4b 100644 --- a/cmd/scaffold.go +++ b/cmd/scaffold.go @@ -72,12 +72,10 @@ func scaffold(cmd *cobra.Command, args []string) error { func NewScaffoldCmd() *cobra.Command { cmd := &cobra.Command{ Use: "scaffold", - Short: "scaffold directory structures", - Long: ` - nmu scaffold --cacheDir=nmcache - - nmu scaffold --cacheDir=../nmcache --preview // show where the cache dir would be created - `, + Short: "Scaffold directory structures", + Long: `This subcommand writes a .gitignore file to the directory specified by +--cacheDir that tells Git to ignore all files in the directory except for the +.gitignore file itself.`, RunE: scaffold, } diff --git a/cmd/sge.go b/cmd/sge.go index 9ac1b9af..bb3a7e09 100644 --- a/cmd/sge.go +++ b/cmd/sge.go @@ -163,10 +163,10 @@ func errpanic(err error) { func NewSgeCmd() *cobra.Command { cmd := &cobra.Command{ - Use: "sge", - Short: "sge specifies to run a (set of) models on the Sun Grid Engine", - Long: runLongDescription, - Run: sge, + Use: "sge [flags] [...]", + Short: "Run models on the Sun Grid Engine", + Example: fmt.Sprintf(runExamples, "sge"), + Run: sge, } //String Variables diff --git a/cmd/summary.go b/cmd/summary.go index e46df2b5..68ae1c4a 100644 --- a/cmd/summary.go +++ b/cmd/summary.go @@ -37,12 +37,12 @@ var ( extFile string ) -const summaryLongDescription string = `summarize model(s), for example: -bbi nonmem summary run001/run001 -bbi nonmem summary run001/run001.lst -bbi nonmem summary run001/run001.res -bbi nonmem summary run001/run001 run002/run002 - ` +const summaryExamples string = ` # Summarize run001 + bbi nonmem summary run001/run001.lst + # The extension may be omitted + bbi nonmem summary run001/run001 + # Output JSON summary for run001 and run002 + bbi nonmem summary --json run001/run001 run002/run002` type jsonResults struct { Results []parser.SummaryOutput @@ -174,10 +174,17 @@ func summary(_ *cobra.Command, args []string) { func NewSummaryCmd() *cobra.Command { cmd := &cobra.Command{ - Use: "summary", - Short: "summarize the output of model(s)", - Long: summaryLongDescription, - Run: summary, + Use: "summary [flags] [...]", + Short: "Summarize model results", + Long: `Summarize the results of the specified *.lst files. By default, this +prints a table of parameter estimates preceded by a lines with details about +the run. Pass the --json flag to get a machine-readable output that includes +more details. + +The path may also be specified without the trailing ".lst". *.res files are +also supported.`, + Example: summaryExamples, + Run: summary, } // Used for Summary diff --git a/cmd/version.go b/cmd/version.go index 0ae8eeb5..d6b16dc0 100644 --- a/cmd/version.go +++ b/cmd/version.go @@ -24,11 +24,8 @@ import ( func NewVersionCmd() *cobra.Command { return &cobra.Command{ Use: "version", - Short: "check version", - Long: `check the current bbi version -bbi version - `, - Run: version, + Short: "Print bbi's version and exit", + Run: version, } } diff --git a/docs/commands/bbi.md b/docs/commands/bbi.md index 3a486b11..dbefa6e1 100644 --- a/docs/commands/bbi.md +++ b/docs/commands/bbi.md @@ -1,6 +1,6 @@ ## bbi -manage and execute models +Manage and execute models ### Options @@ -17,6 +17,6 @@ manage and execute models ### SEE ALSO * [bbi init](bbi_init.md) - Create configuration file with defaults -* [bbi nonmem](bbi_nonmem.md) - nonmem a (set of) models locally or on the grid -* [bbi version](bbi_version.md) - check version +* [bbi nonmem](bbi_nonmem.md) - Entry point for NONMEM-related subcommands +* [bbi version](bbi_version.md) - Print bbi's version and exit diff --git a/docs/commands/bbi_init.md b/docs/commands/bbi_init.md index 2d42c01e..bfe79b00 100644 --- a/docs/commands/bbi_init.md +++ b/docs/commands/bbi_init.md @@ -4,8 +4,13 @@ Create configuration file with defaults ### Synopsis -Run bbi init to create a bbi.yaml configuration file in the current directory. - +Write a bbi.yaml configuration file in the current directory +to initialize it for running bbi. + +If the --dir=DIR option is specified, DIR should point to a directory that +contains one or more NONMEM installations directories. Any subdirectory in +DIR is taken as an installation if it has the expected layout (e.g., a "run" +directory with an nmfe executable) ``` bbi init [flags] @@ -31,5 +36,5 @@ bbi init [flags] ### SEE ALSO -* [bbi](bbi.md) - manage and execute models +* [bbi](bbi.md) - Manage and execute models diff --git a/docs/commands/bbi_nonmem.md b/docs/commands/bbi_nonmem.md index dbab9932..d958cd4b 100644 --- a/docs/commands/bbi_nonmem.md +++ b/docs/commands/bbi_nonmem.md @@ -1,32 +1,33 @@ ## bbi nonmem -nonmem a (set of) models locally or on the grid - -### Synopsis +Entry point for NONMEM-related subcommands +``` +bbi nonmem [flags] +``` -run nonmem model(s), for example: -bbi nonmem run run001.mod -bbi nonmem run --clean_lvl=1 run001.mod run002.mod -bbi nonmem run run[001:006].mod // expand to run001.mod run002.mod ... run006.mod local -bbi nonmem run .// run all models in directory - +### Examples -summarize model(s), for example: -bbi nonmem summary run001/run001 -bbi nonmem summary run001/run001.lst -bbi nonmem summary run001/run001.res -bbi nonmem summary run001/run001 run002/run002 - +``` + # Execute model run001 + bbi nonmem run (local|sge) run001.mod + # Run models run001.mod, run002.mod, and run003.mod + bbi nonmem run (local|sge) 'run[001:003].mod' + # Run all models in the current directory + bbi nonmem run (local|sge) . -load .cov and .cor output from model(s), for example: -bbi nonmem covcor run001/run001 -bbi nonmem covcor run001/run001.cov - + # Summarize run001 + bbi nonmem summary run001/run001.lst + # The extension may be omitted + bbi nonmem summary run001/run001 + # Output JSON summary for run001 and run002 + bbi nonmem summary --json run001/run001 run002/run002 + # Display .cov/cor values from run001/run001.{cov,cor} + bbi nonmem covcor run001/run001 + # Display the same values by specifying a full output file + bbi nonmem covcor run001/run001.cov -``` -bbi nonmem [flags] ``` ### Options @@ -62,13 +63,13 @@ bbi nonmem [flags] ### SEE ALSO -* [bbi](bbi.md) - manage and execute models -* [bbi nonmem clean](bbi_nonmem_clean.md) - clean files and folders -* [bbi nonmem covcor](bbi_nonmem_covcor.md) - load .cov and .cor output from a model run -* [bbi nonmem params](bbi_nonmem_params.md) - get the parameters of model(s) -* [bbi nonmem probs](bbi_nonmem_probs.md) - summarize information about project -* [bbi nonmem reclean](bbi_nonmem_reclean.md) - clean files in an estimation directory by clean level -* [bbi nonmem run](bbi_nonmem_run.md) - run a (set of) models locally or on the grid -* [bbi nonmem scaffold](bbi_nonmem_scaffold.md) - scaffold directory structures -* [bbi nonmem summary](bbi_nonmem_summary.md) - summarize the output of model(s) +* [bbi](bbi.md) - Manage and execute models +* [bbi nonmem clean](bbi_nonmem_clean.md) - Clean files and folders +* [bbi nonmem covcor](bbi_nonmem_covcor.md) - Display .cov and .cor output for a model +* [bbi nonmem params](bbi_nonmem_params.md) - Extract the parameter estimates of models +* [bbi nonmem probs](bbi_nonmem_probs.md) - Summarize model definitions in a directory +* [bbi nonmem reclean](bbi_nonmem_reclean.md) - Clean files in run directory by specified level +* [bbi nonmem run](bbi_nonmem_run.md) - Run models locally or on the grid +* [bbi nonmem scaffold](bbi_nonmem_scaffold.md) - Scaffold directory structures +* [bbi nonmem summary](bbi_nonmem_summary.md) - Summarize model results diff --git a/docs/commands/bbi_nonmem_clean.md b/docs/commands/bbi_nonmem_clean.md index f17cbaed..c7f26f5f 100644 --- a/docs/commands/bbi_nonmem_clean.md +++ b/docs/commands/bbi_nonmem_clean.md @@ -1,40 +1,39 @@ ## bbi nonmem clean -clean files and folders +Clean files and folders ### Synopsis +Clean the files and directories that match the specified patterns. +Whether the pattern is interpreted as a glob or regex is controlled by the +--regex flag. -glob examples: -bbi clean *.mod // anything with extension .mod -bbi clean *.mod --noFolders // anything with extension .mod -bbi clean run* // anything starting with run -regular expression examples: +If files were copied to the parent directory automatically after model +execution (via the copy_lvl configuration), the original files in the run +directory can be cleaned up by selecting the run with the --copiedRuns +option. -bbi clean ^run --regex // anything beginning with the letters run -bbi clean ^run -v --regex // print out files and folders that will be deleted -bbi clean ^run --filesOnly --regex // only remove matching files -bbi clean _est_ --dirsOnly --regex // only remove matching folders -bbi clean _est_ --dirsOnly --preview --regex // show what output would be if clean occured but don't actually clean -bbi clean "run009.[^mod]" --regex // all matching run009. but not .mod files -bbi clean "run009.(mod|lst)$" --regex // match run009.lst and run009.mod - -can also clean via the opposite of a match with inverse - -bbi clean ".modt{0,1}$" --filesOnly --inverse --regex // clean all files not matching .mod or .modt - -clean copied files via - -bbi clean --copiedRuns="run001" -bbi clean --copiedRuns="run[001:010]" - -can be a comma separated list as well +``` +bbi nonmem clean [flags] [...] +``` -bbi clean --copiedRuns="run[001:010],run100" - +### Examples ``` -bbi nonmem clean [flags] + # Remove items in the current directory that end with ".mod" + bbi nonmem clean *.mod + # The same as above but ensure only files are removed + bbi nonmem clean --filesOnly *.mod + + # Remove files in the current directory that start with "run" and end with + # ".mod" or ".lst" + bbi nonmem clean --filesOnly --regex "run.*\.(mod|lst)$" + # Report what the above would remove but don't actually do it + bbi nonmem clean --preview --filesOnly --regex "run.*\.(mod|lst)$" + + # Remove copied files (recorded in '{run}_copied.json' by 'bbi run') for + # run001, run002, run003, and run100 + bbi nonmem clean --copiedRuns='run[001:003],run100' ``` ### Options @@ -75,5 +74,5 @@ bbi nonmem clean [flags] ### SEE ALSO -* [bbi nonmem](bbi_nonmem.md) - nonmem a (set of) models locally or on the grid +* [bbi nonmem](bbi_nonmem.md) - Entry point for NONMEM-related subcommands diff --git a/docs/commands/bbi_nonmem_covcor.md b/docs/commands/bbi_nonmem_covcor.md index b8086e9f..8622a578 100644 --- a/docs/commands/bbi_nonmem_covcor.md +++ b/docs/commands/bbi_nonmem_covcor.md @@ -1,16 +1,25 @@ ## bbi nonmem covcor -load .cov and .cor output from a model run +Display .cov and .cor output for a model ### Synopsis -load .cov and .cor output from model(s), for example: -bbi nonmem covcor run001/run001 -bbi nonmem covcor run001/run001.cov - +Read the .cov and .cor files from a model's output directory and +display the values as a JSON object. The argument is typically a shared prefix +for the run output files, but it can be any path from which the run name can be +derived. ``` -bbi nonmem covcor [flags] +bbi nonmem covcor [flags] +``` + +### Examples + +``` + # Display .cov/cor values from run001/run001.{cov,cor} + bbi nonmem covcor run001/run001 + # Display the same values by specifying a full output file + bbi nonmem covcor run001/run001.cov ``` ### Options @@ -46,5 +55,5 @@ bbi nonmem covcor [flags] ### SEE ALSO -* [bbi nonmem](bbi_nonmem.md) - nonmem a (set of) models locally or on the grid +* [bbi nonmem](bbi_nonmem.md) - Entry point for NONMEM-related subcommands diff --git a/docs/commands/bbi_nonmem_params.md b/docs/commands/bbi_nonmem_params.md index 223af726..161a370f 100644 --- a/docs/commands/bbi_nonmem_params.md +++ b/docs/commands/bbi_nonmem_params.md @@ -1,17 +1,27 @@ ## bbi nonmem params -get the parameters of model(s) +Extract the parameter estimates of models ### Synopsis -summarize model(s), for example: -bbi nonmem params run001 -bbi nonmem params run001 -bbi nonmem params run001 - +Display the parameter values from completed models. If a directory is +specified via --dir, get the parameters of all model runs found in that +directory. Otherwise the positional argument should specify a run directory +to extract parameters from. ``` -bbi nonmem params [flags] +bbi nonmem params [flags] [] +``` + +### Examples + +``` + # Display table of parameters for run001 + bbi nonmem params run001 + # Display table of parameters for all model runs the current directory + bbi nonmem params --dir=. + # Print JSON output instead of a table + bbi nonmem params --json --dir=. ``` ### Options @@ -50,5 +60,5 @@ bbi nonmem params [flags] ### SEE ALSO -* [bbi nonmem](bbi_nonmem.md) - nonmem a (set of) models locally or on the grid +* [bbi nonmem](bbi_nonmem.md) - Entry point for NONMEM-related subcommands diff --git a/docs/commands/bbi_nonmem_probs.md b/docs/commands/bbi_nonmem_probs.md index 99b98b18..4592a90a 100644 --- a/docs/commands/bbi_nonmem_probs.md +++ b/docs/commands/bbi_nonmem_probs.md @@ -1,15 +1,29 @@ ## bbi nonmem probs -summarize information about project +Summarize model definitions in a directory ### Synopsis -get information about models in the project: -nmu project - +This subcommand extracts information from the *.mod files in the +current directory or the specified directory. By default, it displays a +table with the $PROBLEM text for each model file. If --json is passed, it +prints JSON output with more details about each model (e.g., which +estimation methods are present). + +Note: Only model files with a *.mod extension are currently supported. + +``` +bbi nonmem probs [flags] [] +``` + +### Examples ``` -bbi nonmem probs [flags] +# Output a table summarizing the $PROBLEM text for the *.mod files +# in the current directory +bbi nonmem probs +# Instead of the table, show JSON output with more details +bbi nonmem probs --json ``` ### Options @@ -45,5 +59,5 @@ bbi nonmem probs [flags] ### SEE ALSO -* [bbi nonmem](bbi_nonmem.md) - nonmem a (set of) models locally or on the grid +* [bbi nonmem](bbi_nonmem.md) - Entry point for NONMEM-related subcommands diff --git a/docs/commands/bbi_nonmem_reclean.md b/docs/commands/bbi_nonmem_reclean.md index 1e3acb74..b7b9915c 100644 --- a/docs/commands/bbi_nonmem_reclean.md +++ b/docs/commands/bbi_nonmem_reclean.md @@ -1,15 +1,18 @@ ## bbi nonmem reclean -clean files in an estimation directory by clean level - -### Synopsis +Clean files in run directory by specified level +``` +bbi nonmem reclean [flags] +``` - bbi reclean run001_est_01 - +### Examples ``` -bbi nonmem reclean [flags] + bbi nonmem run local --clean_lvl=0 001.ctl + # Reclean the run directory for 001, deleting what would have been cleaned if + # the model was executed with a clean level of 1 + bbi nonmem reclean --recleanLvl=1 001 ``` ### Options @@ -46,5 +49,5 @@ bbi nonmem reclean [flags] ### SEE ALSO -* [bbi nonmem](bbi_nonmem.md) - nonmem a (set of) models locally or on the grid +* [bbi nonmem](bbi_nonmem.md) - Entry point for NONMEM-related subcommands diff --git a/docs/commands/bbi_nonmem_run.md b/docs/commands/bbi_nonmem_run.md index ce7c69f6..0e9730fd 100644 --- a/docs/commands/bbi_nonmem_run.md +++ b/docs/commands/bbi_nonmem_run.md @@ -1,20 +1,27 @@ ## bbi nonmem run -run a (set of) models locally or on the grid +Run models locally or on the grid ### Synopsis -run nonmem model(s), for example: -bbi nonmem run run001.mod -bbi nonmem run --clean_lvl=1 run001.mod run002.mod -bbi nonmem run run[001:006].mod // expand to run001.mod run002.mod ... run006.mod local -bbi nonmem run .// run all models in directory - +This is the entry point to subcommands for running NONMEM models. Each +subcommand represents a different "mode" of execution (e.g., local). ``` bbi nonmem run [flags] ``` +### Examples + +``` + # Execute model run001 + bbi nonmem run (local|sge) run001.mod + # Run models run001.mod, run002.mod, and run003.mod + bbi nonmem run (local|sge) 'run[001:003].mod' + # Run all models in the current directory + bbi nonmem run (local|sge) . +``` + ### Options ``` @@ -59,7 +66,7 @@ bbi nonmem run [flags] ### SEE ALSO -* [bbi nonmem](bbi_nonmem.md) - nonmem a (set of) models locally or on the grid -* [bbi nonmem run local](bbi_nonmem_run_local.md) - local specifies to run a (set of) models locally -* [bbi nonmem run sge](bbi_nonmem_run_sge.md) - sge specifies to run a (set of) models on the Sun Grid Engine +* [bbi nonmem](bbi_nonmem.md) - Entry point for NONMEM-related subcommands +* [bbi nonmem run local](bbi_nonmem_run_local.md) - Run models locally +* [bbi nonmem run sge](bbi_nonmem_run_sge.md) - Run models on the Sun Grid Engine diff --git a/docs/commands/bbi_nonmem_run_local.md b/docs/commands/bbi_nonmem_run_local.md index 3605b66c..db7f5e3e 100644 --- a/docs/commands/bbi_nonmem_run_local.md +++ b/docs/commands/bbi_nonmem_run_local.md @@ -1,18 +1,20 @@ ## bbi nonmem run local -local specifies to run a (set of) models locally +Run models locally -### Synopsis +``` +bbi nonmem run local [flags] [...] +``` -run nonmem model(s), for example: -bbi nonmem run run001.mod -bbi nonmem run --clean_lvl=1 run001.mod run002.mod -bbi nonmem run run[001:006].mod // expand to run001.mod run002.mod ... run006.mod local -bbi nonmem run .// run all models in directory - +### Examples ``` -bbi nonmem run local [flags] + # Execute model run001 + bbi nonmem run local run001.mod + # Run models run001.mod, run002.mod, and run003.mod + bbi nonmem run local 'run[001:003].mod' + # Run all models in the current directory + bbi nonmem run local . ``` ### Options @@ -60,5 +62,5 @@ bbi nonmem run local [flags] ### SEE ALSO -* [bbi nonmem run](bbi_nonmem_run.md) - run a (set of) models locally or on the grid +* [bbi nonmem run](bbi_nonmem_run.md) - Run models locally or on the grid diff --git a/docs/commands/bbi_nonmem_run_sge.md b/docs/commands/bbi_nonmem_run_sge.md index d7e2b9c7..1887d47b 100644 --- a/docs/commands/bbi_nonmem_run_sge.md +++ b/docs/commands/bbi_nonmem_run_sge.md @@ -1,18 +1,20 @@ ## bbi nonmem run sge -sge specifies to run a (set of) models on the Sun Grid Engine +Run models on the Sun Grid Engine -### Synopsis +``` +bbi nonmem run sge [flags] [...] +``` -run nonmem model(s), for example: -bbi nonmem run run001.mod -bbi nonmem run --clean_lvl=1 run001.mod run002.mod -bbi nonmem run run[001:006].mod // expand to run001.mod run002.mod ... run006.mod local -bbi nonmem run .// run all models in directory - +### Examples ``` -bbi nonmem run sge [flags] + # Execute model run001 + bbi nonmem run sge run001.mod + # Run models run001.mod, run002.mod, and run003.mod + bbi nonmem run sge 'run[001:003].mod' + # Run all models in the current directory + bbi nonmem run sge . ``` ### Options @@ -61,5 +63,5 @@ bbi nonmem run sge [flags] ### SEE ALSO -* [bbi nonmem run](bbi_nonmem_run.md) - run a (set of) models locally or on the grid +* [bbi nonmem run](bbi_nonmem_run.md) - Run models locally or on the grid diff --git a/docs/commands/bbi_nonmem_scaffold.md b/docs/commands/bbi_nonmem_scaffold.md index 902bf0ff..9eb2cfb0 100644 --- a/docs/commands/bbi_nonmem_scaffold.md +++ b/docs/commands/bbi_nonmem_scaffold.md @@ -1,14 +1,12 @@ ## bbi nonmem scaffold -scaffold directory structures +Scaffold directory structures ### Synopsis - - nmu scaffold --cacheDir=nmcache - - nmu scaffold --cacheDir=../nmcache --preview // show where the cache dir would be created - +This subcommand writes a .gitignore file to the directory specified by +--cacheDir that tells Git to ignore all files in the directory except for the +.gitignore file itself. ``` bbi nonmem scaffold [flags] @@ -48,5 +46,5 @@ bbi nonmem scaffold [flags] ### SEE ALSO -* [bbi nonmem](bbi_nonmem.md) - nonmem a (set of) models locally or on the grid +* [bbi nonmem](bbi_nonmem.md) - Entry point for NONMEM-related subcommands diff --git a/docs/commands/bbi_nonmem_summary.md b/docs/commands/bbi_nonmem_summary.md index f9047c14..c86a3c06 100644 --- a/docs/commands/bbi_nonmem_summary.md +++ b/docs/commands/bbi_nonmem_summary.md @@ -1,18 +1,30 @@ ## bbi nonmem summary -summarize the output of model(s) +Summarize model results ### Synopsis -summarize model(s), for example: -bbi nonmem summary run001/run001 -bbi nonmem summary run001/run001.lst -bbi nonmem summary run001/run001.res -bbi nonmem summary run001/run001 run002/run002 - +Summarize the results of the specified *.lst files. By default, this +prints a table of parameter estimates preceded by a lines with details about +the run. Pass the --json flag to get a machine-readable output that includes +more details. + +The path may also be specified without the trailing ".lst". *.res files are +also supported. + +``` +bbi nonmem summary [flags] [...] +``` + +### Examples ``` -bbi nonmem summary [flags] + # Summarize run001 + bbi nonmem summary run001/run001.lst + # The extension may be omitted + bbi nonmem summary run001/run001 + # Output JSON summary for run001 and run002 + bbi nonmem summary --json run001/run001 run002/run002 ``` ### Options @@ -52,5 +64,5 @@ bbi nonmem summary [flags] ### SEE ALSO -* [bbi nonmem](bbi_nonmem.md) - nonmem a (set of) models locally or on the grid +* [bbi nonmem](bbi_nonmem.md) - Entry point for NONMEM-related subcommands diff --git a/docs/commands/bbi_version.md b/docs/commands/bbi_version.md index 9f90f744..ee13d4ec 100644 --- a/docs/commands/bbi_version.md +++ b/docs/commands/bbi_version.md @@ -1,12 +1,6 @@ ## bbi version -check version - -### Synopsis - -check the current bbi version -bbi version - +Print bbi's version and exit ``` bbi version [flags] @@ -31,5 +25,5 @@ bbi version [flags] ### SEE ALSO -* [bbi](bbi.md) - manage and execute models +* [bbi](bbi.md) - Manage and execute models From a9a0653ad52e0040b8c19c1324d82dcc9abca635 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Mon, 26 Aug 2024 13:34:15 -0400 Subject: [PATCH 7/9] docs/site: add readme --- docs/site/README.md | 57 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 docs/site/README.md diff --git a/docs/site/README.md b/docs/site/README.md new file mode 100644 index 00000000..a7a210ec --- /dev/null +++ b/docs/site/README.md @@ -0,0 +1,57 @@ +This directory contains files for building the GitHub Pages site with +[Hugo][h] and the [Hextra][x] theme. The site is published on release +via GitHub Actions ([workflow](/.github/workflows/site.yaml)). + +[h]: https://gohugo.io/ +[x]: https://imfing.github.io/hextra/ + +## Previewing the site + + * Install Hugo () + + * Run `make serve` to prepare the necessary files and launch + [Hugo's web server](https://gohugo.io/commands/hugo_server/) + +## Components + + * [hugo.yaml](./hugo.yaml): site configuration + + * [Hugo docs](https://gohugo.io/getting-started/configuration/) + + * [Hextra docs](https://imfing.github.io/hextra/docs/guide/configuration/) + + * [go.mod](./go.mod): defines Hextra as a Hugo module + + * [Hugo docs](https://gohugo.io/hugo-modules/) + + * [Hextra docs](https://imfing.github.io/hextra/docs/getting-started/#setup-hextra-as-hugo-module) + + * [content/][c]: Markdown content of the site + + Most of the content is pulled from other spots in the repository by + the [Makefile][m], including [NEWS.md](/NEWS.md) and the + command-line Markdown documentation at + [docs/commands/](/docs/commands). + + * [Hugo docs](https://gohugo.io/content-management/) + + * [layouts/](./layouts): templates for rendering the site pages + + Most of the layouts are defined by the Hextra theme. The files + here override particular templates. They are derived from the + corresponding Hextra template. The header of each template + documents what was changed. + + * [Hugo docs](https://gohugo.io/templates/) + + * [scripts/](./scripts): custom scripts used by the [Makefile][m] to + process the Markdown content before writing it to [content/][c] + + This is responsible for things like adding PR links in the NEWS + page rendered on the site. + + * [static/](./static): this directory contains the logos and any + other images used on the site + +[c]: ./content +[m]: ./Makefile From 4e55b76a4fe10247afc08703573c816bdcac64ea Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Mon, 26 Aug 2024 13:34:15 -0400 Subject: [PATCH 8/9] readme: update development section Drop the pointer to goconvey since using it is a core aspect of developing bbi. --- README.md | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index d6294020..e46b8857 100644 --- a/README.md +++ b/README.md @@ -316,15 +316,21 @@ No Heuristic Problems Detected ### Development -Test-driven development encouraged, facilitated by goconvey to monitor coverage -and re-run tests on change(s) - -During development, while installing new versions for testing, running "make install" will auto-append a timestamp to the build version. - -``` -$ go get github.com/smartystreets/goconvey -goconvey -``` - -a web UI will be started at localhost:8080 with file watchers to rerun tests on -file change(s) +To run the test suite, you can invoke [scripts/run-unit-tests][ru] and +[scripts/run-integration-tests][ri] directly or via `make vt-test`. + +After updating a subcommand, regenerate the Markdown documentation at +[docs/commands][dc] by running `make vt-gen-docs`. See `make vt-help` and +[internal/valtools/README.md][vr] for more details on the validation tooling. + +The setup for building the documentation site is described in +[docs/site/README.md][dr]. + + + + +[dc]: https://github.com/metrumresearchgroup/bbi/blob/main/docs/commands +[dr]: https://github.com/metrumresearchgroup/bbi/blob/main/docs/site/README.md +[ri]: https://github.com/metrumresearchgroup/bbi/blob/main/scripts/run-integration-tests +[ru]: https://github.com/metrumresearchgroup/bbi/blob/main/scripts/run-unit-tests +[vr]: https://github.com/metrumresearchgroup/bbi/blob/main/internal/valtools/README.md From 34101b3d262a95ac33ae58c7d405e9fd95bc4fa9 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Mon, 26 Aug 2024 13:34:15 -0400 Subject: [PATCH 9/9] readme: add link at top to documentation --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index e46b8857..d9faedf4 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,9 @@ # bbi +Documentation for `bbi` is available at +. + bbi is (will be) a complete solution for managing projects involving modeling and simulation with a number of software solutions used in pharmaceutical sciences.