mirror of
https://github.com/RGBCube/nu_scripts
synced 2025-08-01 06:37:46 +00:00

Hi! I reduced some of the errors in the daily CI. Still there are a few of them, but at least is something - Added the badge for the `daily.yml` (currently failing) - removed old `docker` from v0.60 - removed old `git` from auto-generate completions - removed `nethack` from auto-generate completions (wasn't very useful) - removed `root` from auto-generate completions (wasn't very useful) - removed `valgrind` from auto-generate completions (wasn't very useful) - moved `less` from auto-generate to custom-completions. - moved `mix` from auto-generate to custom-completions. - moved `tar` from auto-generate to custom-completions. - moved `tcpdump` from auto-generate to custom-completions. - moved `virsh` from auto-generate to custom-completions. - moved `zef` from auto-generate to custom-completions. - fixed `base16.nu` - fixed `from-cpuinfo.nu` - fixed `from-dmicode.nu` - fixed `to-number-format.nu` - fixed `to-json-schema.nu`
68 lines
No EOL
1.7 KiB
Text
68 lines
No EOL
1.7 KiB
Text
export def number-format [
|
|
num # Number to format
|
|
--thousands_delim (-t) = ' ' # Thousands delimiter: number-format 1000 -t ': 1'000
|
|
--whole_part_length (-w) = 0 # Length of padding whole-part digits: number-format 123 -w 6: 123
|
|
--decimal_digits (-d) = 0 # Number of digits after decimal delimiter: number-format 1000.1234 -d 2: 1000.12
|
|
--denom (-D) = "" # Denom `--denom "Wt": number-format 1000 --denom 'Wt': 1000Wt
|
|
] {
|
|
|
|
let parts = (
|
|
$num
|
|
| into string
|
|
| split row "."
|
|
)
|
|
|
|
let whole_part = (
|
|
$parts.0
|
|
| split chars
|
|
| reverse
|
|
| reduce -f [] {
|
|
|it, acc| if ((($it.index + 1) mod 3) == 0) {
|
|
$acc.item
|
|
| append $it.item
|
|
| append $thousands_delim
|
|
} else {
|
|
$acc.item
|
|
| append $it.item
|
|
}
|
|
}
|
|
| reverse
|
|
)
|
|
|
|
let whole_part2 = (
|
|
if ($whole_part | first) == $thousands_delim {
|
|
($whole_part | skip 1)
|
|
} else {
|
|
$whole_part
|
|
}
|
|
| str join ''
|
|
)
|
|
|
|
let whole_part3 = (
|
|
if $whole_part_length == 0 {
|
|
$whole_part2
|
|
} else {
|
|
$whole_part2
|
|
| fill -w $whole_part_length -c ' ' -a r
|
|
}
|
|
)
|
|
|
|
let dec_part = (
|
|
if ($parts | length) == 1 {
|
|
"0"
|
|
} else {
|
|
$parts.1
|
|
}
|
|
)
|
|
|
|
let dec_part2 = (
|
|
if $decimal_digits == 0 {
|
|
""
|
|
} else {
|
|
$".($dec_part)" | fill -w ($decimal_digits + 1) -c '0' -a l
|
|
}
|
|
)
|
|
|
|
let out = $"(ansi green)($whole_part3)($dec_part2)(ansi reset)(ansi green_bold)($denom)(ansi reset)"
|
|
$out
|
|
} |