35 lines
828 B
Go
35 lines
828 B
Go
package job
|
|
|
|
// KeepOldestOnly filters a job list and keeps only the most recent entry for a job name
|
|
func KeepOldestOnly(jobs []Job) (results []Job) {
|
|
outerLoop:
|
|
for i := 0; i < len(jobs); i++ {
|
|
job := jobs[i]
|
|
for j := 0; j < len(results); j++ {
|
|
result := results[j]
|
|
if result.Name == job.Name {
|
|
continue outerLoop
|
|
}
|
|
}
|
|
for j := i + 1; j < len(jobs); j++ {
|
|
sec := jobs[j]
|
|
if sec.Name == job.Name && sec.Timestamp > job.Timestamp {
|
|
job = sec
|
|
}
|
|
}
|
|
results = append(results, job)
|
|
}
|
|
return
|
|
}
|
|
|
|
// KeepSuccessOnly returns only the successful jobs from a job list (suiatble to write a new spool file)
|
|
func KeepSuccessOnly(jobs []Job) (result []Job) {
|
|
result = make([]Job, 0)
|
|
for i := 0; i < len(jobs); i++ {
|
|
job := jobs[i]
|
|
if job.Success {
|
|
result = append(result, job)
|
|
}
|
|
}
|
|
return
|
|
}
|