aboutsummaryrefslogtreecommitdiff
path: root/pkg/job/utils.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/job/utils.go')
-rw-r--r--pkg/job/utils.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/pkg/job/utils.go b/pkg/job/utils.go
new file mode 100644
index 0000000..6537474
--- /dev/null
+++ b/pkg/job/utils.go
@@ -0,0 +1,35 @@
+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
+}