Megatest

Check-in [0323ded23f]
Login
Overview
Comment:! var support
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.65
Files: files | file ages | folders
SHA1: 0323ded23f0f2937f939f8cb935a0529d1eac99c
User & Date: mrwellan on 2018-05-22 12:39:33
Other Links: branch diff | manifest | tags
Context
2018-05-22
17:39
Fixed typo in warning for pktsdirs not being setup check-in: a3760325d1 user: jmoon18 tags: v1.65
12:39
! var support check-in: 0323ded23f user: mrwellan tags: v1.65
2018-05-21
16:38
change method of launching logpro with explicit sh -c "logpro ..." to avoid unfortunate $SHELL interactions; add support for env var $LOGPRO_EXE to override logpro in $PATH if necessary to aid future debug check-in: 5cda9f7346 user: bjbarcla tags: v1.65
Changes

Modified configf.scm from [af30e1aa5d] to [4863d68fd9].

57
58
59
60
61
62
63



64
65
66
67
68
69
70
71








72
73
74
75
76
77
78
57
58
59
60
61
62
63
64
65
66








67
68
69
70
71
72
73
74
75
76
77
78
79
80
81







+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+







(define (configf:section-var-set! cfgdat section-name var value #!key (metadata #f))
  (hash-table-set! cfgdat section-name
		   (config:assoc-safe-add
		    (hash-table-ref/default cfgdat section-name '())
		    var value metadata: metadata)))

(define (config:eval-string-in-environment str)
  ;; (if (or (string-null? str)
  ;;	  (equal? "!" (substring str 0 1))) ;; null string or starts with ! are preserved but NOT set in the environment
      str
  (handle-exceptions
   exn
   (begin
     (debug:print-error 0 *default-log-port* "problem evaluating \"" str "\" in the shell environment")
     #f)
   (let ((cmdres (process:cmd-run->list (conc "echo " str))))
     (if (null? cmdres) ""
	 (caar cmdres)))))
      (handle-exceptions
       exn
       (begin
	 (debug:print-error 0 *default-log-port* "problem evaluating \"" str "\" in the shell environment")
	 #f)
       (let ((cmdres (process:cmd-run->list (conc "echo " str))))
	 (if (null? cmdres) ""
	     (caar cmdres))))) ;; )

;;======================================================================
;; Make the regexp's needed globally available
;;======================================================================

(define configf:include-rx (regexp "^\\[include\\s+(.*)\\]\\s*$"))
(define configf:script-rx  (regexp "^\\[scriptinc\\s+(\\S+)([^\\]]*)\\]\\s*$")) ;; include output from a script
435
436
437
438
439
440
441
442



443
444
445
446
447
448
449
438
439
440
441
442
443
444

445
446
447
448
449
450
451
452
453
454







-
+
+
+







                                     (loop (configf:read-line inp res
                                                              (calc-allow-system allow-system curr-section-name sections)
                                                              settings)
                                           curr-section-name key #f)))
               
	       (configf:key-val-pr ( x key unk1 val unk2 )
                                   (let* ((alist   (hash-table-ref/default res curr-section-name '()))
                                          (envar   (and environ-patt (string-search (regexp environ-patt) curr-section-name)))
                                          (envar   (and environ-patt
							(string-search (regexp environ-patt) curr-section-name) ;; does the section match the envionpatt?
							(and (not (string-null? key))(equal? "!" (substring key 0 1))))) ;; ! as leading character is a signature to NOT export to the environment
                                          (realval (if envar
                                                       (config:eval-string-in-environment val)
                                                       val)))
                                     (debug:print-info 6 *default-log-port* "read-config env setting, envar: " envar " realval: " realval " val: " val " key: " key " curr-section-name: " curr-section-name)
                                     (if envar (safe-setenv key realval))
                                     (debug:print 10 *default-log-port* "   setting: [" curr-section-name "] " key " = " val)
                                     (hash-table-set! res curr-section-name