icinga-powershell-framework/lib/core/tools/ConvertTo-BytesNextUnit.psm1

31 lines
888 B
PowerShell
Raw Normal View History

2021-05-07 08:38:10 -04:00
function ConvertTo-BytesNextUnit()
{
param (
[string]$Value = $null,
[string]$Unit = $null,
[array]$Units = @('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB')
);
[string]$UnitValue = [string]::Format('{0}{1}', $Value, $Unit);
while ($TRUE) {
$Unit = Get-IcingaNextUnitIteration -Unit $Unit -Units $Units;
[decimal]$NewValue = (Convert-Bytes -Value $UnitValue -Unit $Unit).Value;
if ($NewValue -ge 1.0) {
if ($Unit -eq $RetUnit) {
break;
}
$RetValue = [math]::Round([decimal]$NewValue, 2);
$RetUnit = $Unit;
} else {
if ([string]::IsNullOrEmpty($RetUnit)) {
$RetValue = $Value;
$RetUnit = 'B';
}
break;
}
}
return ([string]::Format('{0}{1}', $RetValue, $RetUnit));
}