|
|
|
@@ -1,41 +1,37 @@
|
|
|
|
export def lumen-assono-backup-nexttape [dateinput: datetime]: nothing -> nothing {
|
|
|
|
export def lumen-assono-backup-nexttape [dateinput: datetime]: nothing -> nothing {
|
|
|
|
print 'Next Required Tape:'
|
|
|
|
print 'Next Required Tape:'
|
|
|
|
print $'($dateinput | get-backup-string)'
|
|
|
|
print $'($dateinput | get-backup-string 0)'
|
|
|
|
print ''
|
|
|
|
print ''
|
|
|
|
print 'Tapes after that:'
|
|
|
|
print 'Tapes after that:'
|
|
|
|
|
|
|
|
|
|
|
|
1..9 | each {|i|
|
|
|
|
1..11 | each {|i|
|
|
|
|
print $'($i): (($dateinput + ((7 * $i) | into duration -u day)) | get-backup-string)'
|
|
|
|
print ($dateinput | get-backup-string $i)
|
|
|
|
} | ignore
|
|
|
|
} | ignore
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
def get-backup-string []: datetime -> string {
|
|
|
|
def get-backup-string [index]: datetime -> string {
|
|
|
|
let backupDay = $in - ($in | format date '%w' | into duration -u day) + 6day
|
|
|
|
let firstDayMonth = $'01-((($in | format date '%m' | into int) + $index) mod 12 + 1)($in | format date '-%y')' | into datetime --format '%d-%m-%y'
|
|
|
|
let saturdayOfMonth = $backupDay | get-week-of-month
|
|
|
|
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 monthOfQuarter = $backupDay | get-month-of-quarter
|
|
|
|
let quarter = $backupDay | get-quarter
|
|
|
|
let quarter = $backupDay | get-quarter
|
|
|
|
let year = $backupDay | get-year
|
|
|
|
let year = $backupDay | get-year
|
|
|
|
if ($saturdayOfMonth == 1) {
|
|
|
|
|
|
|
|
if ($monthOfQuarter == 1) {
|
|
|
|
if ($monthOfQuarter == 1) {
|
|
|
|
if ($quarter == 1) {
|
|
|
|
if ($quarter == 1) {
|
|
|
|
$'TapeLTO5-Y(($year | into string | str substring 3..))'
|
|
|
|
$"($backupDay): TapeLTO5-Y(($year - 1| into string | str substring 3..))"
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
$'TapeLTO5-Q($quarter)'
|
|
|
|
$"($backupDay): TapeLTO5-Q($quarter - 1)"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
$'TapeLTO5-M($monthOfQuarter)'
|
|
|
|
$"($backupDay): TapeLTO5-M($monthOfQuarter - 1)"
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
$'TapeLTO5-W($saturdayOfMonth)'
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
def get-week-of-month []: datetime -> int {
|
|
|
|
|
|
|
|
let firstDay = ($in - ($in | format date '%d' | into duration -u day) + 1day)
|
|
|
|
|
|
|
|
let $firstSpecificDay = $firstDay + (((($in | format date '%w' | into int) + 7 - ($firstDay | format date '%w' | into int)) mod 7) | into duration -u day)
|
|
|
|
|
|
|
|
((($in - $firstSpecificDay) | into int | into datetime | format date '%d' | into int) / 7 | math floor) + 1
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get-month-of-quarter []: datetime -> int {
|
|
|
|
def get-month-of-quarter []: datetime -> int {
|
|
|
|
let month = ($in | format date '%m' | into int) + 3
|
|
|
|
let month = ($in | format date '%m' | into int) + 3
|
|
|
|
($month..($month - 3)..1) | last
|
|
|
|
($month..($month - 3)..1) | last
|
|
|
|
@@ -46,5 +42,5 @@ def get-quarter []: datetime -> int {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
def get-year []: datetime -> int {
|
|
|
|
def get-year []: datetime -> int {
|
|
|
|
$in | format date '%Y'
|
|
|
|
$in | format date '%Y' | into int
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|