@@ -522,6 +522,15 @@ Version " megatest-version ", built from " megatest-fossil-hash ))
522
522
(lambda ()
523
523
(print pkt))))))
524
524
525
+
526
+ (define (val-alist->areas val-alist )
527
+ (string-split (or (alist-ref 'areas val-alist) " " ) " ," ))
528
+
529
+ (define (area-allowed? area areas )
530
+ (or (not areas)
531
+ (null? areas)
532
+ (member area areas)))
533
+
525
534
; ; (use trace)(trace create-run-pkt)
526
535
527
536
; ; collect all needed data and create run pkts for contours with changed inputs
@@ -596,6 +605,7 @@ Version " megatest-version ", built from " megatest-fossil-hash ))
596
605
(let* ((run-name (alist-ref 'run-name val-alist))
597
606
(target (alist-ref 'target val-alist))
598
607
(crontab (alist-ref 'cron val-alist))
608
+ (areas (val-alist->areas val-alist))
599
609
; ; (action (alist-ref 'action val-alist))
600
610
(cron-safe-string (string-translate (string-intersperse (string-split (alist-ref 'cron val-alist)) " -" ) " *" " X" ))
601
611
(runname std-runname)) ; ; (conc "sched" (time->string (seconds->local-time (current-seconds)) "%M%H%d")))))
@@ -617,6 +627,13 @@ Version " megatest-version ", built from " megatest-fossil-hash ))
617
627
(runtrans . ,runtrans)
618
628
(action . ,action)
619
629
(target . ,target)))))
630
+ ((remove)
631
+ (push-run-spec torun contour runkey
632
+ `((message . ,(conc ruletype " :" cron-safe-string))
633
+ (runname . ,runname)
634
+ (runtrans . ,runtrans)
635
+ (action . ,action)
636
+ (target . ,target))))
620
637
(else
621
638
(print " ERROR: action \" " action " \" has no scheduled handler" )
622
639
)))))
@@ -696,6 +713,7 @@ Version " megatest-version ", built from " megatest-fossil-hash ))
696
713
697
714
((file file-or) ; ; one or more files must be newer than the reference
698
715
(let* ((file-globs (alist-ref 'glob val-alist))
716
+ (areas (val-alist->areas val-alist))
699
717
(youngestdat (common:get-youngest (common:bash-glob file-globs)))
700
718
(youngestmod (car youngestdat)))
701
719
; ; (print "youngestmod: " youngestmod " starttimes: " starttimes)
@@ -762,7 +780,7 @@ Version " megatest-version ", built from " megatest-fossil-hash ))
762
780
(print " contour: " contour)
763
781
(let* ((val (or (configf:lookup mtconf " contours" contour) " " ))
764
782
(val-alist (val->alist val))
765
- (areas (string-split ( or ( alist-ref ' areas val-alist) " " ) " , " ))
783
+ (areas (val- alist-> areas val-alist))
766
784
(selector (alist-ref 'selector val-alist))
767
785
(mode-tag (and selector (string-split-fields " /" selector #:infix)))
768
786
(mode-patt (and mode-tag (if (eq? (length mode-tag) 2 )(cadr mode-tag) #f )))
@@ -776,24 +794,26 @@ Version " megatest-version ", built from " megatest-fossil-hash ))
776
794
(lambda (runkeydat )
777
795
(for-each
778
796
(lambda (area )
779
- (let ((runname (alist-ref 'runname runkeydat))
780
- (runtrans (alist-ref 'runtrans runkeydat))
781
- (reason (alist-ref 'message runkeydat))
782
- (sched (alist-ref 'sched runkeydat))
783
- (action (alist-ref 'action runkeydat))
784
- (dbdest (alist-ref 'dbdest runkeydat))
785
- (append (alist-ref 'append runkeydat))
786
- (target (or (alist-ref 'target runkeydat) runkey))) ; ; override with target if forced
787
- (print " Have: runkey=" runkey " contour=" contour " area=" area " action=" action " tag-expr=" tag-expr " mode-patt=" mode-patt " target=" target)
788
- (if (case (or (and action (string->symbol action)) 'noaction ) ; ; ensure we have the needed data to run this action
789
- ((noaction) #f )
790
- ((run) (and runname reason))
791
- ((sync) (and reason dbdest))
792
- (else #f ))
793
- ; ; instead of unwrapping the runkeydat alist, pass it directly to create-run-pkt
794
- (create-run-pkt mtconf action area runkey runname mode-patt tag-expr pktsdir reason contour sched dbdest append runtrans)
795
- (print " ERROR: Missing info to make a " action " call: runkey=" runkey " contour=" contour " area=" area " tag-expr=" tag-expr " mode-patt=" mode-patt " dbdest=" dbdest)
796
- )))
797
+ (if (area-allowed? area areas) ; ; is this area to be handled (from areas=a,b,c ...)
798
+ (let ((runname (alist-ref 'runname runkeydat))
799
+ (runtrans (alist-ref 'runtrans runkeydat))
800
+ (reason (alist-ref 'message runkeydat))
801
+ (sched (alist-ref 'sched runkeydat))
802
+ (action (alist-ref 'action runkeydat))
803
+ (dbdest (alist-ref 'dbdest runkeydat))
804
+ (append (alist-ref 'append runkeydat))
805
+ (target (or (alist-ref 'target runkeydat) runkey))) ; ; override with target if forced
806
+ (print " Have: runkey=" runkey " contour=" contour " area=" area " action=" action " tag-expr=" tag-expr " mode-patt=" mode-patt " target=" target)
807
+ (if (case (or (and action (string->symbol action)) 'noaction ) ; ; ensure we have the needed data to run this action
808
+ ((noaction) #f )
809
+ ((run) (and runname reason))
810
+ ((sync) (and reason dbdest))
811
+ (else #f ))
812
+ ; ; instead of unwrapping the runkeydat alist, pass it directly to create-run-pkt
813
+ (create-run-pkt mtconf action area runkey runname mode-patt tag-expr pktsdir reason contour sched dbdest append runtrans)
814
+ (print " ERROR: Missing info to make a " action " call: runkey=" runkey " contour=" contour " area=" area " tag-expr=" tag-expr " mode-patt=" mode-patt " dbdest=" dbdest)
815
+ ))
816
+ (print " NOTE: skipping " runkeydat " for area, not in " areas)))
797
817
all-areas))
798
818
runkeydats)))
799
819
(let ((res (configf:get-section torun contour))) ; ; each contour / target
0 commit comments