(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)

(FILECREATED "18-Jul-2022 12:12:11" {DSK}<home>larry>medley>sources>MEDLEYDIR.;2 6649   

      :CHANGES-TO (FNS MEDLEY-INIT-VARS)

      :PREVIOUS-DATE "13-Jul-2022 15:34:07" {DSK}<home>larry>medley>sources>MEDLEYDIR.;1)


(PRETTYCOMPRINT MEDLEYDIRCOMS)

(RPAQQ MEDLEYDIRCOMS
       [
        (* ;; "set up initialization for file paths relative to where Medley is installed. This assumes that the environment variable MEDLEYDIR is set (usually by the ./run-medley script) to the (unix path) and all of the other directories variables are set relative to that (by MEDLEY-INIT-VARS)")

        (FNS MEDLEY-INIT-VARS MEDLEYDIR)
        (INITVARS (MEDLEYDIR))
        (ADDVARS (BEFORESYSOUTFORMS (SETQ MEDLEYDIR))
               (BEFOREMAKESYSFORMS (SETQ MEDLEYDIR))
               (AFTERSYSOUTFORMS (MEDLEY-INIT-VARS))
               (AFTERMAKESYSFORMS (MEDLEY-INIT-VARS)))
        
        (* ;; 
 "NOTE:  Do not use backquote in the variable definitions.  These get evaluated early in the loadup.")

        (VARS MEDLEY-INIT-VARS)
        (DECLARE%: EVAL@COMPILE DOCOPY (ADDVARS (GLOBALVARS MEDLEYDIR MEDLEY-INIT-VARS])



(* ;; 
"set up initialization for file paths relative to where Medley is installed. This assumes that the environment variable MEDLEYDIR is set (usually by the ./run-medley script) to the (unix path) and all of the other directories variables are set relative to that (by MEDLEY-INIT-VARS)"
)

(DEFINEQ

(MEDLEY-INIT-VARS
  [LAMBDA (CLEAR)                                          (* ; "Edited 18-Jul-2022 12:11 by larry")
                                                           (* ; "Edited 21-Aug-2021 18:23 by larry")

    (* ;; "MEDLEY-INIT-VARS has variables that might need to get reset. ")

    (if CLEAR
        then (SETQ MEDLEYDIR NIL)
             (SETQ XCL::*WHERE-IS-CASH-FILES* NIL)
             (for X in MEDLEY-INIT-VARS do (SET (CAR X)))
      elseif [OR (NOT (BOUNDP 'MEDLEYDIR))
                 (AND (NULL MEDLEYDIR)
                      (NULL (MEDLEYDIR]
        then (PRINTOUT T "WARNING: MEDLEYDIR not set correctly" 
                    " set it and call (MEDLEY-INIT-VARS) again" T)
      else [for X in MEDLEY-INIT-VARS do (SET (CAR X)
                                              (EVAL (CADR X] 

           (* ;; "WHEREIS doesn't follow conventions")

           [LET [(NEWSYS (STRPOS "tmp/" (UNIX-GETENV "LDESRCESYSOUT"]
                (if NEWSYS
                    then (push DIRECTORIES (MEDLEYDIR "tmp")))
                (CL:WHEN (GETD 'XCL::ADD-WHERE-IS-DATABASE)
                    (SETQ XCL::*WHERE-IS-CASH-FILES* NIL)
                    (NLSETQ (XCL::ADD-WHERE-IS-DATABASE (MEDLEYDIR (if NEWSYS
                                                                       then "tmp"
                                                                     else "loadups")
                                                               "WHEREIS.HASH"))))]
           NIL])

(MEDLEYDIR
  [LAMBDA (DIRNAME FILENAME OUTPUT NOERROR)                (* ; "Edited  5-Mar-2022 12:43 by larry")
                                                          (* ; "Edited  2-Dec-2021 20:23 by kaplan")
    (DECLARE (GLOBALVARS MEDLEYDIR))
    (DECLARE (GLOBALVARS MEDLEYDIR))
    (if (NULL DIRNAME)
        then (if (OR (NOT (BOUNDP 'MEDLEYDIR))
                     (NOT MEDLEYDIR))
                 then (OR (SETQ MEDLEYDIR (DIRECTORYNAME (OR (UNIX-GETENV "MEDLEYDIR")
                                                             T)))
                          (DIRECTORYNAME T))
               elseif (STRPOS "/" MEDLEYDIR)
                 then (SETQ MEDLEYDIR (DIRECTORYNAME MEDLEYDIR))
               else MEDLEYDIR)
      elseif (LISTP DIRNAME)
        then (for X Y in DIRNAME when (SETQ Y (MEDLEYDIR X FILENAME OUTPUT NOERROR)) collect Y)
      elseif FILENAME
        then [if (NULL (SETQ DIRNAME (MEDLEYDIR DIRNAME NIL OUTPUT NOERROR)))
                 then (OR NOERROR (SHOULDNT))
                      NIL
               else (SETQ FILENAME (CONCAT DIRNAME FILENAME))
                    (if OUTPUT
                        then FILENAME
                      else (OR (INFILEP FILENAME)
                               (if NOERROR
                                   then NIL
                                 else (ERROR "No such medley file" FILENAME]
      else (OR (DIRECTORYNAME (CONCAT (MEDLEYDIR)
                                     DIRNAME ">")
                      NIL OUTPUT)
               (if NOERROR
                   then NIL
                 else (ERROR "No such medley directory" DIRNAME])
)

(RPAQ? MEDLEYDIR )

(ADDTOVAR BEFORESYSOUTFORMS (SETQ MEDLEYDIR))

(ADDTOVAR BEFOREMAKESYSFORMS (SETQ MEDLEYDIR))

(ADDTOVAR AFTERSYSOUTFORMS (MEDLEY-INIT-VARS))

(ADDTOVAR AFTERMAKESYSFORMS (MEDLEY-INIT-VARS))



(* ;; 
"NOTE:  Do not use backquote in the variable definitions.  These get evaluated early in the loadup.")


(RPAQQ MEDLEY-INIT-VARS
       ([LISPUSERSDIRECTORIES (MEDLEYDIR '("library" "lispusers" "internal" "greetfiles" "doctools"]
        [LISPSOURCEDIRECTORIES (MEDLEYDIR '("sources"]
        (LISPSOURCEDIRECTORY (CAR LISPSOURCEDIRECTORIES))
        (IRM.HOST&DIR (MEDLEYDIR '"docs/dinfo"))
        (IRM.DINFOGRAPH)
        (DIRECTORIES (APPEND LISPUSERSDIRECTORIES LISPSOURCEDIRECTORIES))
        [LOGINHOST/DIR (DIRECTORYNAME (OR (UNIX-GETENV "LOGINDIR")
                                          (UNIX-GETENV "HOME"]
        [USERGREETFILES (LIST (CONS LOGINHOST/DIR '("INIT" COM))
                              (CONS LOGINHOST/DIR '("INIT"]
        (DISPLAYFONTDIRECTORIES (MEDLEYDIR '("fonts/displayfonts" "fonts/altofonts" "fonts/adobe" 
                                                   "fonts/big" "fonts/other")
                                       NIL NIL T))
        (POSTSCRIPTFONTDIRECTORIES (MEDLEYDIR '("fonts/postscriptfonts")
                                          NIL NIL T))
        (INTERPRESSFONTDIRECTORIES (MEDLEYDIR '("fonts/ipfonts")
                                          NIL NIL T))
        (UNICODEDIRECTORIES (MEDLEYDIR '("unicode/xerox")
                                   NIL NIL T))
        (XCL::*WHERE-IS-CASH-FILES*)))
(DECLARE%: EVAL@COMPILE DOCOPY 

(ADDTOVAR GLOBALVARS MEDLEYDIR MEDLEY-INIT-VARS)
)
(DECLARE%: DONTCOPY
  (FILEMAP (NIL (1518 4925 (MEDLEY-INIT-VARS 1528 . 3139) (MEDLEYDIR 3141 . 4923)))))
STOP
