export def lumen-assono-backup-nexttape [dateinput: datetime]: nothing -> nothing { print 'Next Required Tape:' print $'($dateinput | get-backup-string 0)' print '' print 'Tapes after that:' 1..11 | each {|i| print ($dateinput | get-backup-string $i) } | ignore } def get-backup-string [index]: datetime -> string { let firstDayMonth = $'01-((($in | format date '%m' | into int) + $index) mod 12 + 1)($in | format date '-%y')' | into datetime --format '%d-%m-%y' let firstDayMonth = if ($firstDayMonth < $in) { $'($firstDayMonth | format date '%d-%m-')(($firstDayMonth | format date '%y' | into int) + 1)' | into datetime --format '%d-%m-%y' } else { $firstDayMonth } let backupDay = $firstDayMonth - ($firstDayMonth | format date '%w' | into duration -u day) + 6day let monthOfQuarter = $backupDay | get-month-of-quarter let quarter = $backupDay | get-quarter let year = $backupDay | get-year if ($monthOfQuarter == 1) { if ($quarter == 1) { $"($backupDay): TapeLTO5-Y(($year - 1| into string | str substring 3..))" } else { $"($backupDay): TapeLTO5-Q($quarter - 1)" } } else { $"($backupDay): TapeLTO5-M($monthOfQuarter - 1)" } } def get-month-of-quarter []: datetime -> int { let month = ($in | format date '%m' | into int) + 3 ($month..($month - 3)..1) | last } def get-quarter []: datetime -> int { (($in | format date '%m') | into int) / 3 | math ceil } def get-year []: datetime -> int { $in | format date '%Y' | into int }