;;======================================================================
;; Copyright 2006-2018, Matthew Welland.
;; 
;; This file is part of Megatest.
;; 
;;     Megatest is free software: you can redistribute it and/or modify
;;     it under the terms of the GNU General Public License as published by
;;     the Free Software Foundation, either version 3 of the License, or
;;     (at your option) any later version.
;; 
;;     Megatest is distributed in the hope that it will be useful,
;;     but WITHOUT ANY WARRANTY; without even the implied warranty of
;;     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;     GNU General Public License for more details.
;; 
;;     You should have received a copy of the GNU General Public License
;;     along with Megatest.  If not, see <http://www.gnu.org/licenses/>.
;;======================================================================

(use (prefix mtargs    args:))
(use mtdebug)
(use (prefix mtconfigf configf:))

;; configure mtdebug  ;; TODO: move to megatest.scm with other command line arg processing
(if (args:get-arg "-v")     (debug:set-verbose-mode))
(if (args:get-arg "-q")     (debug:set-quiet-mode))
(if (args:get-arg "-debug") (debug:set-debug-mode))
(if (args:get-arg "-color")
    (case (string->symbol (args:get-arg "-color"))
      ((y Y yes YES t T)  (debug:force-color))
      ((n N no NO f F)    (debug:suppress-color))))

;; configure mtconfigf
(define *default-log-port*  (current-error-port))
(let* ((normal-fn debug:print)
       (info-fn   debug:print-info)
       (error-fn  debug:print-error)
       (default-port *default-log-port*))
  (configf:set-debug-printers normal-fn info-fn error-fn default-port))

(define *add-eval-string-check* #f)
(cond
 ((not *add-eval-string-check*)
  (configf:add-eval-string "(import (prefix mtargs    args:))
                          (import mtdebug)
                          (import (prefix mtconfigf configf:))")
  (set! *add-eval-string-check* #t)))
