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

(FILECREATED " 7-Mar-2022 19:39:13" {DSK}<home>larry>medley>sources>MEDLEYDIR.;2 6274   

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

      :PREVIOUS-DATE " 5-Mar-2022 12:43:54" {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)))
        (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 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))

(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 `((,LOGINHOST/DIR "INIT" COM)
                          (,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))
        (XCL::*WHERE-IS-CASH-FILES*)))
(DECLARE%: EVAL@COMPILE DOCOPY 

(ADDTOVAR GLOBALVARS MEDLEYDIR MEDLEY-INIT-VARS)
)
(DECLARE%: DONTCOPY
  (FILEMAP (NIL (1383 4793 (MEDLEY-INIT-VARS 1393 . 3007) (MEDLEYDIR 3009 . 4791)))))
STOP
