Easily turn Nushell modules into cross-shell CLI tools
library nu nushell

template: only merge usage when necessary

matrixfurry.com 85edb760 59c60b06

verified
+14 -10
+14 -10
template.nu
··· 50 50 | each {|function| 51 51 let help = help $module_name $function | lines 52 52 53 - let usage = if $print_usage { 54 - $help 55 - | get ( 56 - ($help | enumerate | where item == $"(ansi green)Usage(ansi reset):").0.index + 1 57 - ) 58 - | str trim 59 - } 60 - 61 53 let short_description = $help 62 54 | first 63 55 | if $in == $"(ansi green)Usage(ansi reset):" { ··· 66 58 $in 67 59 } 68 60 69 - { 61 + mut table = { 70 62 command: $"(ansi cyan)($function)(ansi reset)" 71 63 description: $"(ansi lp)($short_description)(ansi reset)" 72 - } | merge {$usage} 64 + } 65 + 66 + if $print_usage { 67 + let usage = $help 68 + | get ( 69 + ($help | enumerate | where item == $"(ansi green)Usage(ansi reset):").0.index + 1 70 + ) 71 + | str trim 72 + 73 + $table = $table | merge {usage: $usage} 74 + } 75 + 76 + $table 73 77 } 74 78 | table --index false --theme rounded 75 79 }