Remove derived PDFs from repo; now in 'src' repo, comstructed by HCFILES and MAKE-INDEX-HTMLS (#1657)
* Remove derived PDFs from branch other than gh-pages * only the gh-pages branch should have the pdfs * make pdfs and listings * Update HCFILES and MAKE-INDEX-HTMLS, add preliminary documentation * add a slashit to avoid angle brackets
This commit is contained in:
@@ -1,44 +1,49 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "16-Nov-2023 21:59:19" |{DSK}<home>larry>il>medley>internal>MEDLEY-UTILS.;2| 18962
|
||||
(FILECREATED "29-Apr-2024 16:25:20" {DSK}<home>larry>il>medley>internal>MEDLEY-UTILS.;9 28903
|
||||
|
||||
:EDIT-BY "lmm"
|
||||
|
||||
:CHANGES-TO (VARS OKLIBRARY OKLISPUSERS)
|
||||
|
||||
:PREVIOUS-DATE " 4-Nov-2023 15:23:16" |{DSK}<home>larry>il>medley>internal>MEDLEY-UTILS.;1|)
|
||||
:PREVIOUS-DATE "26-Apr-2024 16:34:08" {DSK}<home>larry>il>medley>internal>MEDLEY-UTILS.;8)
|
||||
|
||||
|
||||
(PRETTYCOMPRINT MEDLEY-UTILSCOMS)
|
||||
|
||||
(RPAQQ MEDLEY-UTILSCOMS ((FNS GATHER-INFO MAKE-FULLER-DB MEDLEY-FIX-LINKS MEDLEY-FIX-DATES)
|
||||
(VARS MEDLEY-FIX-DIRS OKSOURCES OKLIBRARY OKLISPUSERS OKINTERNAL)
|
||||
(FNS MAKE-EXPORTS-ALL MAKE-WHEREIS-HASH)
|
||||
(FNS BADFILE HCFILES PRETTYFILES)
|
||||
(INITVARS (HCFILES)
|
||||
(BADFILES))))
|
||||
(RPAQQ MEDLEY-UTILSCOMS
|
||||
[(FNS GATHER-INFO MAKE-FULLER-DB MAKE-INDEX-HTMLS MEDLEY-FIX-LINKS MEDLEY-FIX-DATES)
|
||||
(VARS MEDLEY-FIX-DIRS OKSOURCES OKLIBRARY OKLISPUSERS OKINTERNAL)
|
||||
(FNS MAKE-EXPORTS-ALL MAKE-WHEREIS-HASH MAKE-WHEREIS-LOOPS)
|
||||
(FNS HCFILES MAKE-INDEX-HTMLS)
|
||||
(PROP FILETYPE MEDLEY-UTILS)
|
||||
(ADVISE TEDIT.PROMPTPRINT)
|
||||
(FNS RECOMPILE-ONE RECMPL COMPILE-SETUP REMAKEFILES)
|
||||
(P (READVISE TEDIT.PROMPTPRINT))
|
||||
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA)
|
||||
(NLAML)
|
||||
(LAMA])
|
||||
(DEFINEQ
|
||||
|
||||
(GATHER-INFO
|
||||
(LAMBDA (PHASE) (* \; "Edited 22-May-2023 23:59 by lmm")
|
||||
(* \; "Edited 26-Dec-2021 18:56 by larry")
|
||||
(* \; "Edited 24-Oct-2021 09:43 by larry")
|
||||
[LAMBDA (PHASE) (* ; "Edited 22-May-2023 23:59 by lmm")
|
||||
(* ; "Edited 26-Dec-2021 18:56 by larry")
|
||||
(* ; "Edited 24-Oct-2021 09:43 by larry")
|
||||
(SELECTQ PHASE
|
||||
(ALL (|for| I |from| 0 |to| 4 |do| (GATHER-INFO I)))
|
||||
(ALL (for I from 0 to 4 do (GATHER-INFO I)))
|
||||
(0 (SETQ SYSFILES (UNION SYSFILES FILELST))
|
||||
(SETQ FILELST NIL)
|
||||
(FILESLOAD (SOURCE)
|
||||
SYSEDIT))
|
||||
(1 (SETQ LOADEDFILES (|for| X |in| LOADEDFILELST |collect| (FILENAMEFIELD X 'NAME)))
|
||||
(1 [SETQ LOADEDFILES (for X in LOADEDFILELST collect (FILENAMEFIELD X 'NAME]
|
||||
(FILESLOAD FILESETS)
|
||||
(SETQ ALLFILESETSFILES (|for| X |in| FILESETS |join| (APPEND (EVAL X))))
|
||||
(SETQ SOURCES (|for| X |in| (DIRECTORY (MEDLEYDIR "sources" "*.*;" T))
|
||||
|when| (NOT (MEMB (FILENAMEFIELD X 'EXTENSION)
|
||||
'(LCOM DFASL TEDIT TXT)))
|
||||
|collect| (FILENAMEFIELD X 'NAME))))
|
||||
[SETQ ALLFILESETSFILES (for X in FILESETS join (APPEND (EVAL X]
|
||||
[SETQ SOURCES (for X in (DIRECTORY (MEDLEYDIR "sources" "*.*;" T))
|
||||
when [NOT (MEMB (FILENAMEFIELD X 'EXTENSION)
|
||||
'(LCOM DFASL TEDIT TXT] collect (FILENAMEFIELD
|
||||
X
|
||||
'NAME])
|
||||
(-1 (PRINTOUT T " loaded files not in SYSFILES or FILELST: "
|
||||
(|for| X |in| LOADEDFILES |when| (NOT (OR (FMEMB X SYSFILES)
|
||||
(FMEMB X FILELST))) |collect| X)
|
||||
(for X in LOADEDFILES when (NOT (OR (FMEMB X SYSFILES)
|
||||
(FMEMB X FILELST))) collect X)
|
||||
T)
|
||||
(PRINTOUT T "Sources not loaded: " (CL:SET-DIFFERENCE SOURCES (APPEND ALLFILESETSFILES
|
||||
LOADEDFILES))
|
||||
@@ -47,67 +52,65 @@
|
||||
LOADEDFILES)
|
||||
T))
|
||||
(2 (SETQ DEFINEDFNS (LET ((DEFD NIL))
|
||||
(MAPATOMS (FUNCTION (CL:LAMBDA (X)
|
||||
[MAPATOMS (FUNCTION (CL:LAMBDA (X)
|
||||
(CL:WHEN (GETD X)
|
||||
(CL:SETQ DEFD (CONS X DEFD))))))
|
||||
(CL:SETQ DEFD (CONS X DEFD)))]
|
||||
DEFD))
|
||||
(|for| X |in| DEFINEDFNS |when| (CCODEP X)
|
||||
|do| (LET ((Y (PUTPROP X 'CCC (CALLSCCODE X))))
|
||||
(|for| REV |in| '(BLOCK-CALLED-BY CALLED-BY BOUND-BY SPECIAL-BY GLOBAL-BY)
|
||||
|as| VAL |in| Y |do| (|for| S |in| VAL
|
||||
|do| (PUTPROP S REV (CONS X (GETPROP S REV)))))))
|
||||
[for X in DEFINEDFNS when (CCODEP X)
|
||||
do (LET [(Y (PUTPROP X 'CCC (CALLSCCODE X]
|
||||
(for REV in '(BLOCK-CALLED-BY CALLED-BY BOUND-BY SPECIAL-BY GLOBAL-BY)
|
||||
as VAL in Y do (for S in VAL do (PUTPROP S REV (CONS X (GETPROP S REV]
|
||||
(SETQ CALLEDFNS NIL)
|
||||
(MAPATOMS (FUNCTION (LAMBDA (X)
|
||||
(|if| (AND (NOT (GETD X))
|
||||
(GETPROP X 'CALLED-BY))
|
||||
|then| (CL:PUSH X CALLEDFNS))))))
|
||||
[MAPATOMS (FUNCTION (LAMBDA (X)
|
||||
(if (AND (NOT (GETD X))
|
||||
(GETPROP X 'CALLED-BY))
|
||||
then (CL:PUSH X CALLEDFNS])
|
||||
(-2 (PRINTOUT T "Functions called and not defined" CALLEDFNS T))
|
||||
(3 (|for| X |in| SYSFILES
|
||||
|do| (LOAD X 'PROP)
|
||||
(PUTPROP X 'CONTENT (READFILE X))
|
||||
(|for| EXR |in| (GETPROP X 'CONTENT)
|
||||
|do| (SELECTQ (CAR EXR)
|
||||
(DEFINEQ (|for| DFN |in| (CDR EXR)
|
||||
|do| (|if| (EQUAL (CADR DFN)
|
||||
(GETPROP (CAR DFN)
|
||||
'EXPR))
|
||||
|then| (PRINTOUT T (CAR DFN)
|
||||
" ")
|
||||
(PUTPROP (CAR DFN)
|
||||
'EXPR
|
||||
(CADR DFN))
|
||||
|else| (PRINTOUT T (CAR DFN)
|
||||
"* "))))
|
||||
NIL)))
|
||||
(SETQ ALLCONTENT (|for| X |in| SYSFILES |collect| (CONS X (GETPROP X 'CONTENT))))
|
||||
(* \; " don't edit with SEDIT")
|
||||
(3 (for X in SYSFILES
|
||||
do (LOAD X 'PROP)
|
||||
(PUTPROP X 'CONTENT (READFILE X))
|
||||
(for EXR in (GETPROP X 'CONTENT)
|
||||
do (SELECTQ (CAR EXR)
|
||||
(DEFINEQ (for DFN in (CDR EXR)
|
||||
do (if (EQUAL (CADR DFN)
|
||||
(GETPROP (CAR DFN)
|
||||
'EXPR))
|
||||
then (PRINTOUT T (CAR DFN)
|
||||
" ")
|
||||
(PUTPROP (CAR DFN)
|
||||
'EXPR
|
||||
(CADR DFN))
|
||||
else (PRINTOUT T (CAR DFN)
|
||||
"* "))))
|
||||
NIL)))
|
||||
[SETQ ALLCONTENT (for X in SYSFILES collect (CONS X (GETPROP X 'CONTENT]
|
||||
(* ; " don't edit with SEDIT")
|
||||
(LET (DUPS)
|
||||
(|for| X |in| SYSFILES
|
||||
|do| (|for| FN |in| (FILEFNSLST X)
|
||||
|do| (|if| (GETPROP FN 'WHEREIS)
|
||||
|then| (NCONC1 (GETPROP FN 'WHEREIS)
|
||||
X)
|
||||
(OR (FMEMB FN DUPS)
|
||||
(SETQ DUPS (CONS FN DUPS)))
|
||||
|else| (PUTPROP FN 'WHEREIS (LIST X)))))
|
||||
[for X in SYSFILES do (for FN in (FILEFNSLST X)
|
||||
do (if (GETPROP FN 'WHEREIS)
|
||||
then (NCONC1 (GETPROP FN 'WHEREIS)
|
||||
X)
|
||||
(OR (FMEMB FN DUPS)
|
||||
(SETQ DUPS (CONS FN DUPS)))
|
||||
else (PUTPROP FN 'WHEREIS (LIST X]
|
||||
(SETQ DUPFNS DUPS))
|
||||
(SETQ NO-SOURCE (|for| X |in| DEFINEDFNS |when| (NOT (GETPROP X 'EXPR)) |collect| X)))
|
||||
(SETQ NO-SOURCE (for X in DEFINEDFNS when (NOT (GETPROP X 'EXPR)) collect X)))
|
||||
(-3 (PRINTOUT T "Functions compiled but no expr" NO-SOURCE T)
|
||||
(PRINTOUT T "Functions on more than one file: " DUPFNS T))
|
||||
(4 (PRINTOUT T T "STARTING MASTERSCOPE PHASE ON " (DATE)
|
||||
T)
|
||||
(FILESLOAD (SOURCE)
|
||||
SYSEDIT)
|
||||
(|for| X |in| SYSFILES |do| (MSNOTICEFILE X))
|
||||
(|for| X |in| SYSFILES |do| (PRINTOUT T T "Analyzing " X T)
|
||||
(MASTERSCOPE `(ANALYZE ON ,(KWOTE X)))))
|
||||
(for X in SYSFILES do (MSNOTICEFILE X))
|
||||
[for X in SYSFILES do (PRINTOUT T T "Analyzing " X T)
|
||||
(MASTERSCOPE `(ANALYZE ON ,(KWOTE X])
|
||||
(-4 "No queries yet")
|
||||
(HELP))))
|
||||
(HELP])
|
||||
|
||||
(MAKE-FULLER-DB
|
||||
(LAMBDA (DRIBBLEFILE DBFILE SYSOUTFILE) (* \; "Edited 3-Aug-2023 18:12 by frank")
|
||||
(* \; "Edited 16-Jul-2022 22:07 by larry")
|
||||
(* \; "Edited 20-Jun-2022 17:23 by larry")
|
||||
[LAMBDA (DRIBBLEFILE DBFILE SYSOUTFILE) (* ; "Edited 3-Aug-2023 18:12 by frank")
|
||||
(* ; "Edited 16-Jul-2022 22:07 by larry")
|
||||
(* ; "Edited 20-Jun-2022 17:23 by larry")
|
||||
(FILESLOAD (SOURCE)
|
||||
FILESETS)
|
||||
(DRIBBLE (OR DRIBBLEFILE "fuller.dribble"))
|
||||
@@ -118,17 +121,77 @@
|
||||
(DUMPDATABASE NIL (MKATOM (OR DBFILE "fuller.database")))
|
||||
(DRIBBLE)
|
||||
(MAKESYS (OR SYSOUTFILE "fuller.sysout")
|
||||
"Welcome to Fuller sysout")))
|
||||
"Welcome to Fuller sysout"])
|
||||
|
||||
(MAKE-INDEX-HTMLS
|
||||
[LAMBDA (BASE TOP) (* ; "Edited 29-Apr-2024 14:18 by lmm")
|
||||
(* ; "Edited 26-Apr-2024 16:15 by lmm")
|
||||
(* ; "Edited 20-Apr-2024 12:34 by lmm")
|
||||
(* ; "Edited 13-Apr-2024 21:18 by lmm")
|
||||
[OR BASE (SETQ BASE (PSEUDOFILENAME (MEDLEYDIR]
|
||||
(OR (DIRECTORYNAMEP BASE)
|
||||
(ERROR BASE "not a directory name"))
|
||||
(LET* ((SUBDIRS NIL)
|
||||
(DEST (PACKFILENAME 'NAME "index" 'EXTENSION "html" 'VERSION NIL 'BODY BASE))
|
||||
(PSEUDOHOST (EQ (NTHCHAR BASE (CL:1- 0))
|
||||
'}))
|
||||
SLASHED SHORTNAME)
|
||||
(CL:WITH-OPEN-FILE
|
||||
(S DEST :DIRECTION :OUTPUT :IF-EXISTS :NEW-VERSION :IF-DOES-NOT-EXIST :CREATE)
|
||||
(CL:FORMAT S "<HTML><HEAD><TITLE>Index page for ~a</TITLE></HEAD>~%%" (SETQ SLASHED
|
||||
(SLASHIT BASE)))
|
||||
(CL:FORMAT S "<BODY><H1>Index page for ~a</H1>~%%" SLASHED)
|
||||
(CL:FORMAT S "<P>This is an index of the files just to link them in.~%%<UL>~%%")
|
||||
(FOR FULLNAME IN (DIRECTORY (CONCAT BASE "*.*;"))
|
||||
DO (IF (EQ (NTHCHAR FULLNAME -1)
|
||||
'>)
|
||||
THEN
|
||||
(* ;; "A directory")
|
||||
|
||||
(IF (NOT (DIRECTORYNAMEP FULLNAME))
|
||||
THEN (HELP "NOT DIRNAME"))
|
||||
(SETQ SHORTNAME (MKATOM (SUBSTRING FULLNAME
|
||||
(+ (NCHARS BASE)
|
||||
(IF PSEUDOHOST
|
||||
THEN 2
|
||||
ELSE 1))
|
||||
-2)))
|
||||
(CL:UNLESS (OR (MEMB SHORTNAME '(.git))
|
||||
(STRPOS ".git" FULLNAME)
|
||||
(INFILEP (CONCAT FULLNAME ".skip")))
|
||||
|
||||
(* ;; ".skip in the directory itself -- don't index any of it")
|
||||
|
||||
(SETQ SUBDIRS (NCONC1 SUBDIRS FULLNAME))
|
||||
(CL:FORMAT S "<LI><A HREF=%"~a/%">~a/</A></LI>~%%" SHORTNAME SHORTNAME))
|
||||
ELSEIF (MEMB [SETQ SHORTNAME (MKATOM (SUBSTRING FULLNAME (ADD1 (NCHARS BASE))
|
||||
(SUB1 (OR (STRPOS ".;" FULLNAME)
|
||||
(STRPOS ";" FULLNAME)
|
||||
(HELP
|
||||
"No ; in non-directory"
|
||||
]
|
||||
'(index.html .skip))
|
||||
THEN
|
||||
(* ;; "dont index the index")
|
||||
|
||||
ELSEIF (MEMB (FILENAMEFIELD SHORTNAME 'EXTENSION)
|
||||
'(IMPTR SKIP skip imptr))
|
||||
THEN
|
||||
(* ;; " don't enuerate ANY.SKIP ANY.IMPTR etc")
|
||||
|
||||
ELSE (CL:FORMAT S "<LI><A HREF=%"~a%">~a</A></LI>~%%" SHORTNAME SHORTNAME)))
|
||||
(CL:FORMAT S "</UL></BODY></HTML>~%%"))
|
||||
(NCONC SUBDIRS (FOR D IN SUBDIRS join (MAKE-INDEX-HTMLS D (OR TOP BASE])
|
||||
|
||||
(MEDLEY-FIX-LINKS
|
||||
(LAMBDA (UNIXPATH) (* \; "Edited 18-Jan-2021 12:01 by larry")
|
||||
[LAMBDA (UNIXPATH) (* ; "Edited 18-Jan-2021 12:01 by larry")
|
||||
(OR UNIXPATH (SETQ UNIXPATH (UNIX-GETENV "MEDLEYDIR"))
|
||||
(ERROR "No Directory")) (* \; "Edited 18-Jan-2021 11:45 by larry")
|
||||
(|ShellCommand| (CONCAT "cd " UNIXPATH " && /bin/sh scripts/fixlinks && /bin/sh /tmp/doit"))))
|
||||
(ERROR "No Directory")) (* ; "Edited 18-Jan-2021 11:45 by larry")
|
||||
(ShellCommand (CONCAT "cd " UNIXPATH " && /bin/sh scripts/fixlinks && /bin/sh /tmp/doit"])
|
||||
|
||||
(MEDLEY-FIX-DATES
|
||||
(LAMBDA (DIRS) (* \; "Edited 28-Jan-2021 12:15 by larry")
|
||||
(|for| X |in| (OR DIRS MEDLEY-FIX-DIRS) |join| (FIX-DIRECTORY-DATES (MEDLEYDIR (PRINT X T))))))
|
||||
[LAMBDA (DIRS) (* ; "Edited 28-Jan-2021 12:15 by larry")
|
||||
(for X in (OR DIRS MEDLEY-FIX-DIRS) join (FIX-DIRECTORY-DATES (MEDLEYDIR (PRINT X T])
|
||||
)
|
||||
|
||||
(RPAQQ MEDLEY-FIX-DIRS ("sources" "library" "lispusers" "internal" "greetfiles" "doctools"))
|
||||
@@ -153,8 +216,8 @@
|
||||
(DEFINEQ
|
||||
|
||||
(MAKE-EXPORTS-ALL
|
||||
(LAMBDA (OUTFILE) (* \; "Edited 3-Aug-2023 18:34 by frank")
|
||||
(* \; "Edited 9-Mar-2021 16:11 by larry")
|
||||
[LAMBDA (OUTFILE) (* ; "Edited 3-Aug-2023 18:34 by frank")
|
||||
(* ; "Edited 9-Mar-2021 16:11 by larry")
|
||||
(* "Edited May 3, 2018 by Ron Kaplan--relative to MEDLEYDIR/lispcore/. Don't know why it does the CORE/RENAME")
|
||||
(*
|
||||
"Edited Aug 17 94 by Sybalsky -- point it to /king/export/lispcore as the truth directory.")
|
||||
@@ -164,184 +227,284 @@
|
||||
"Edited September 29, 1986 by van Melle")
|
||||
(CNDIR (MEDLEYDIR "sources"))
|
||||
(LOAD 'FILESETS)
|
||||
(GATHEREXPORTS EXPORTFILES (OR OUTFILE "exports.all"))))
|
||||
(GATHEREXPORTS EXPORTFILES (OR OUTFILE "exports.all"])
|
||||
|
||||
(MAKE-WHEREIS-HASH
|
||||
(LAMBDA (DRIBBLEFILE TMPFILE WHEREISFILE) (* \; "Edited 3-Aug-2023 18:37 by frank")
|
||||
(* \; "Edited 12-Mar-2022 12:46 by rmk")
|
||||
(* \; "Edited 24-Mar-2021 13:26 by larry")
|
||||
(LET ((FILING.ENUMERATION.DEPTH 2)
|
||||
[LAMBDA (DRIBBLEFILE TMPFILE WHEREISFILE DEPTH SUBDIRS) (* ; "Edited 4-Feb-2024 21:57 by lmm")
|
||||
(* ; "Edited 3-Aug-2023 18:37 by frank")
|
||||
(* ; "Edited 12-Mar-2022 12:46 by rmk")
|
||||
(* ; "Edited 24-Mar-2021 13:26 by larry")
|
||||
(LET ((FILING.ENUMERATION.DEPTH (OR DEPTH 2))
|
||||
HASHFILE)
|
||||
(DRIBBLE (OR DRIBBLEFILE "whereis.dribble"))
|
||||
(SETQ HASHFILE (XCL::WHERE-IS-NOTICE (OR TMPFILE "whereis.hash-tmp")
|
||||
:FILES
|
||||
(|for| X |in| MEDLEY-FIX-DIRS |collect| (CONCAT (MEDLEYDIR X)
|
||||
"*.;"))
|
||||
(for X in (OR SUBDIRS MEDLEY-FIX-DIRS)
|
||||
collect (CONCAT (IF SUBDIRS
|
||||
THEN X
|
||||
ELSE (MEDLEYDIR X))
|
||||
"*.;"))
|
||||
:HASH-FILE-SIZE 60000 :NEW T))
|
||||
(RENAMEFILE HASHFILE (OR WHEREISFILE "whereis.hash"))
|
||||
(DRIBBLE))))
|
||||
(DRIBBLE])
|
||||
|
||||
(MAKE-WHEREIS-LOOPS
|
||||
[LAMBDA NIL (* ; "Edited 3-Apr-2024 12:12 by lmm")
|
||||
(* ; "Edited 4-Feb-2024 22:29 by lmm")
|
||||
(MAKE-WHEREIS-HASH "whereis-loops.dribble" NIL "whereis-loops.hash" 4 (LIST (GIT-GET-PROJECT
|
||||
'LOOPS
|
||||
'CLONEPATH])
|
||||
)
|
||||
(DEFINEQ
|
||||
|
||||
(BADFILE
|
||||
(LAMBDA NIL (* \; "Edited 20-Oct-2022 15:40 by lmm")
|
||||
(* \; "Edited 22-Jun-2022 09:40 by larry")
|
||||
(|pushnew| BADFILES *FILE*)
|
||||
(LET ((STR (OPENSTREAM "BADFILES.TXT" 'APPEND)))
|
||||
(SETFILEPTR STR -1)
|
||||
(PRINT *FILE* STR)
|
||||
(CLOSEF STR))
|
||||
(RETFROM (OR (STKPOS 'PRETTYFILES)
|
||||
'HCFILES))))
|
||||
|
||||
(HCFILES
|
||||
(LAMBDA (*FILE* DEST REDOFLG TOPDIRLEN)
|
||||
(DECLARE (SPECVARS *FILE*)
|
||||
(GLOBALVARS BADFILE)) (* \; "Edited 4-Nov-2023 11:14 by lmm")
|
||||
(* \; "Edited 20-Oct-2022 16:11 by lmm")
|
||||
(* \; "Edited 9-Aug-2022 20:44 by lmm")
|
||||
(|if| (NULL *FILE*)
|
||||
|then| (SETQ *FILE* MEDLEYDIR))
|
||||
(COND
|
||||
((LISTP *FILE*)
|
||||
(FOR X IN *FILE* DO (HCFILES X DEST REDOFLG TOPDIRLEN)))
|
||||
((DIRECTORYNAMEP *FILE*)
|
||||
[LAMBDA (BASE REDO SUBSETS) (* ; "Edited 23-Apr-2024 23:15 by lmm")
|
||||
(* ; "Edited 22-Apr-2024 13:22 by lmm")
|
||||
(* ; "Edited 5-Feb-2024 12:16 by lmm")
|
||||
(* ; "Edited 4-Nov-2023 11:14 by lmm")
|
||||
(* ; "Edited 20-Oct-2022 16:11 by lmm")
|
||||
|
||||
(* |;;| "canonicalize")
|
||||
(* ;;;; "BASE is the root directory. Doesn't replace PDF files except when REDO")
|
||||
|
||||
(SETQ *FILE* (DIRECTORYNAME *FILE*))
|
||||
(OR TOPDIRLEN (SETQ TOPDIRLEN (CL:LENGTH (FILENAMEFIELD.STRING *FILE* 'DIRECTORY))))
|
||||
(CL:UNLESS DEST
|
||||
(|ShellCommand| (CONCAT "mkdir -p " (UNIX-GETENV "MEDLEYDIR")
|
||||
"/tmp/psfiles/"))
|
||||
(SETQ DEST (MEDLEYDIR "tmp/psfiles" NIL T T)))
|
||||
(* ;;; " SUBSETS is some combinsyion og (:YRDY :HYML :PRETTY and INDEX")
|
||||
|
||||
(* |;;| "first deal with files in this directory")
|
||||
(LET
|
||||
[[DIRLIST (LIST (OR BASE (PSEUDOFILENAME (MEDLEYDIR]
|
||||
(PHASES (OR SUBSETS '(TEDIT PRETTY INDEX HRULE]
|
||||
(FILESLOAD PDFSTREAM SKETCH)
|
||||
(FONTSET 'STANDARD)
|
||||
(WHILE DIRLIST
|
||||
DO
|
||||
(SETQ BASE (POP DIRLIST))
|
||||
(FOR SRCPATH IN (DIRECTORY (CONCAT BASE "*.*;"))
|
||||
DO (PROG* [(SRC (UNPACKFILENAME SRCPATH))
|
||||
[EXT (U-CASE (LISTGET SRC 'EXTENSION]
|
||||
(DIR (LISTGET SRC 'DIRECTORY))
|
||||
FRDY LDGP DEST (NOV (PACKFILENAME `(VERSION NIL ,@SRC]
|
||||
(CL:FORMAT T "Starting on ~a :~%%" SRCPATH)
|
||||
(CL:WHEN (DIRECTORYNAMEP SRCPATH)
|
||||
|
||||
(|for| EXT |in| '("TED*" "SKETCH")
|
||||
|do| (|for| X |in| (DIRECTORY (CONCAT *FILE* "*." EXT ";*"))
|
||||
|do| (HCFILES X DEST REDOFLG TOPDIRLEN)))
|
||||
(* ;; "any directory names, push them off and do them in another phase")
|
||||
|
||||
(* |;;| " then deal with subdirs ")
|
||||
(CL:UNLESS (OR (STRPOS ">." NOV)
|
||||
(INFILEP (CONCAT NOV ".skip")))
|
||||
(SETQ DIRLIST (NCONC1 DIRLIST SRCPATH)))
|
||||
(RETURN))
|
||||
(CL:WHEN
|
||||
(MEMB EXT
|
||||
'(PDF SKIP HTML LCOM DFASL SH SYSOUT DRIBBLE IMPTR DISPLAYFONT ALL
|
||||
DATABASE))
|
||||
|
||||
(|for| X |in| (DIRECTORY (CONCAT *FILE* "*"))
|
||||
|when| (|for| SKIP |in| '(">." ">dinfo>") |always| (NOT (STRPOS SKIP (L-CASE X))))
|
||||
|when| (DIRECTORYNAMEP X) |do| (HCFILES X DEST REDOFLG TOPDIRLEN)))
|
||||
((SETQ *FILE* (INFILEP *FILE*))
|
||||
(LET* ((TF (UNPACKFILENAME.STRING *FILE*))
|
||||
(NAME (LISTGET TF 'NAME))
|
||||
(DIR (LISTGET TF 'DIRECTORY))
|
||||
(PSFILE (PACKFILENAME.STRING
|
||||
'EXTENSION
|
||||
(|if| (EQ REDOFLG 'IP)
|
||||
|then| "IP"
|
||||
|else| "PS")
|
||||
'NAME
|
||||
(|if| (EQ DEST T)
|
||||
|then| (* \; "with the tedit file")
|
||||
NAME
|
||||
|else| (CONCAT (PACK (SUBST '- '> (UNPACK (SUBSTRING DIR (IPLUS 2 TOPDIRLEN
|
||||
)
|
||||
-1))))
|
||||
"-" NAME))
|
||||
'HOST
|
||||
(LISTGET TF 'HOST)
|
||||
'DIRECTORY
|
||||
(|if| (EQ DEST T)
|
||||
|then| DIR
|
||||
|else| DEST)))
|
||||
(TEXTSTREAM))
|
||||
(|if| (AND (NOT REDOFLG)
|
||||
(INFILEP PSFILE))
|
||||
|then| (* \; " do nothing")
|
||||
(PRINTOUT T PSFILE " already there" T)
|
||||
|elseif| (EQ REDOFLG 'TEST)
|
||||
|then| (PRINTOUT T *FILE* "-> " PSFILE T)
|
||||
(CLOSEF (OPENTEXTSTREAM *FILE*))
|
||||
|elseif| (MEMBER *FILE* BADFILES)
|
||||
|then| (PRINTOUT T "Skipping " *FILE* " on BADFILES")
|
||||
|else| (PRINTOUT T "Converting " *FILE* " to " PSFILE "...")
|
||||
(TEDIT.FORMAT.HARDCOPY (SETQ TEXTSTREAM (OPENTEXTSTREAM *FILE*))
|
||||
PSFILE T NIL NIL NIL (|if| (EQ REDOFLG 'IP)
|
||||
|then| 'INTERPRESS
|
||||
|else| 'POSTSCRIPT))
|
||||
(|printout| T " DONE" T)
|
||||
(CLOSEF? TEXTSTREAM))))
|
||||
(T (PRINTOUT T "no such file " T)))))
|
||||
(* ;; "ignore any of these extensions")
|
||||
|
||||
(PRETTYFILES
|
||||
(LAMBDA (*FILE* DEST REDOFLG TOPDIRLEN)
|
||||
(DECLARE (SPECVARS *FILE*)
|
||||
(GLOBALVARS BADFILES)) (* \; "Edited 20-Oct-2022 16:12 by lmm")
|
||||
(* \; "Edited 9-Aug-2022 20:44 by lmm")
|
||||
(|if| (NULL *FILE*)
|
||||
|then| (SETQ *FILE* MEDLEYDIR))
|
||||
(COND
|
||||
((DIRECTORYNAMEP *FILE*)
|
||||
(RETURN))
|
||||
|
||||
(* |;;| "canonicalize")
|
||||
(* ;;
|
||||
" doesnt (yet) implement / to - translattion. .readme should show up as -.readme.")
|
||||
|
||||
(SETQ *FILE* (DIRECTORYNAME *FILE*))
|
||||
(OR TOPDIRLEN (SETQ TOPDIRLEN (CL:LENGTH (FILENAMEFIELD.STRING *FILE* 'DIRECTORY))))
|
||||
(CL:UNLESS DEST
|
||||
(|ShellCommand| (CONCAT "mkdir -p " (UNIX-GETENV "MEDLEYDIR")
|
||||
"/tmp/psfiles/"))
|
||||
(SETQ DEST (MEDLEYDIR "tmp/psfiles" NIL T T)))
|
||||
(SETQ DEST (PACKFILENAME 'EXTENSION 'pdf 'NAME
|
||||
(IF EXT
|
||||
THEN (LISTGET SRC 'NAME)
|
||||
ELSE (PACK* (LISTGET SRC 'NAME)
|
||||
'-src))
|
||||
'BODY NOV))
|
||||
(CL:WHEN (AND (NOT REDO)
|
||||
(INFILEP DEST))
|
||||
(CL:FORMAT T "~a already there~%%" DEST)
|
||||
(RETURN))
|
||||
(CL:WHEN (INFILEP (CONCAT DEST ".skip"))
|
||||
(PRINTOUT T "Explicit .skip " DEST T)
|
||||
(RETURN))
|
||||
(IF (MEMB 'TEDIT PHASES)
|
||||
THEN (CL:WHEN [OR (MEMB EXT '(TEDIT TED SKETCH BRAVO))
|
||||
(CAR (NLSETQ (TEDIT.FORMATTEDFILEP SRCPATH]
|
||||
(IF (EQ REDO 'TEST)
|
||||
THEN (CL:FORMAT T "Testing open ~a..." SRCPATH)
|
||||
(CLOSEF? (OPENTEXTSTREAM SRCPATH))
|
||||
ELSE (OR [NLSETQ (CL:WITH-OPEN-STREAM (S (OPENTEXTSTREAM SRCPATH)
|
||||
)
|
||||
(TEDIT.FORMAT.HARDCOPY S DEST T NIL NIL
|
||||
NIL 'PDF]
|
||||
(PRINT 'FAIL T)))
|
||||
(CL:FORMAT T "DONE")))
|
||||
(CL:WHEN (AND (MEMB 'PRETTY PHASES)
|
||||
(MEMB EXT '(NIL IL))
|
||||
[SETQ LSFP (CAR (NLSETQ (LISPSOURCEFILEP SRCPATH]
|
||||
(NEQ LSFP *COMMON-LISP-READ-ENVIRONMENT*))
|
||||
(PRINTOUT T "PDF printing " " to " DEST "...")
|
||||
(OR (NLSETQ (CL:WITH-OPEN-STREAM (STR (OPEN-PDF-STREAM DEST))
|
||||
(PRETTYFILEINDEX SRCPATH NIL STR)))
|
||||
(PRINT 'FAIL T))
|
||||
(PRINTOUT T "DONE" T))])
|
||||
|
||||
(* |;;| "first deal with files in this directory; ignore files with extensions for now\"*.LISP\" \"*.ILISP\"")
|
||||
(MAKE-INDEX-HTMLS
|
||||
[LAMBDA (BASE TOP) (* ; "Edited 29-Apr-2024 14:18 by lmm")
|
||||
(* ; "Edited 26-Apr-2024 16:15 by lmm")
|
||||
(* ; "Edited 20-Apr-2024 12:34 by lmm")
|
||||
(* ; "Edited 13-Apr-2024 21:18 by lmm")
|
||||
[OR BASE (SETQ BASE (PSEUDOFILENAME (MEDLEYDIR]
|
||||
(OR (DIRECTORYNAMEP BASE)
|
||||
(ERROR BASE "not a directory name"))
|
||||
(LET* ((SUBDIRS NIL)
|
||||
(DEST (PACKFILENAME 'NAME "index" 'EXTENSION "html" 'VERSION NIL 'BODY BASE))
|
||||
(PSEUDOHOST (EQ (NTHCHAR BASE (CL:1- 0))
|
||||
'}))
|
||||
SLASHED SHORTNAME)
|
||||
(CL:WITH-OPEN-FILE
|
||||
(S DEST :DIRECTION :OUTPUT :IF-EXISTS :NEW-VERSION :IF-DOES-NOT-EXIST :CREATE)
|
||||
(CL:FORMAT S "<HTML><HEAD><TITLE>Index page for ~a</TITLE></HEAD>~%%" (SETQ SLASHED
|
||||
(SLASHIT BASE)))
|
||||
(CL:FORMAT S "<BODY><H1>Index page for ~a</H1>~%%" SLASHED)
|
||||
(CL:FORMAT S "<P>This is an index of the files just to link them in.~%%<UL>~%%")
|
||||
(FOR FULLNAME IN (DIRECTORY (CONCAT BASE "*.*;"))
|
||||
DO (IF (EQ (NTHCHAR FULLNAME -1)
|
||||
'>)
|
||||
THEN
|
||||
(* ;; "A directory")
|
||||
|
||||
(|for| PAT |in| '("*.;") |do| (|for| X |in| (DIRECTORY (CONCAT *FILE* PAT))
|
||||
WHEN (NOT (DIRECTORYNAMEP X)) WHEN (INFILEP X)
|
||||
WHEN (CAR (OR (NLSETQ (LISPSOURCEFILEP X))
|
||||
(PROGN (PRINTOUT T "LISPSOURCEFILEP error" X)
|
||||
NIL)))
|
||||
|do| (PRETTYFILES X DEST REDOFLG TOPDIRLEN)))
|
||||
(IF (NOT (DIRECTORYNAMEP FULLNAME))
|
||||
THEN (HELP "NOT DIRNAME"))
|
||||
(SETQ SHORTNAME (MKATOM (SUBSTRING FULLNAME
|
||||
(+ (NCHARS BASE)
|
||||
(IF PSEUDOHOST
|
||||
THEN 2
|
||||
ELSE 1))
|
||||
-2)))
|
||||
(CL:UNLESS (OR (MEMB SHORTNAME '(.git))
|
||||
(STRPOS ".git" FULLNAME)
|
||||
(INFILEP (CONCAT FULLNAME ".skip")))
|
||||
|
||||
(* |;;| " then deal with subdirs ")
|
||||
(* ;; ".skip in the directory itself -- don't index any of it")
|
||||
|
||||
(|for| X |in| (DIRECTORY (CONCAT *FILE* "*"))
|
||||
|when| (|for| SKIP IN '("clos" "cltl2" "rooms>" ".>")
|
||||
|always| (NOT (STRPOS SKIP (L-CASE X)))) |when| (DIRECTORYNAMEP X)
|
||||
|do| (PRETTYFILES X DEST REDOFLG TOPDIRLEN)))
|
||||
((AND (SETQ *FILE* (INFILEP *FILE*))
|
||||
(LISPSOURCEFILEP *FILE*))
|
||||
(LET* ((TF (UNPACKFILENAME.STRING *FILE*))
|
||||
(NAME (LISTGET TF 'NAME))
|
||||
(DIR (LISTGET TF 'DIRECTORY))
|
||||
(PSFILE (PACKFILENAME.STRING
|
||||
'EXTENSION "ps" 'NAME
|
||||
(|if| (EQ DEST T)
|
||||
|then| (* \; "with the source file")
|
||||
(CONCAT NAME ".pfi")
|
||||
|else| (CONCAT (PACK (SUBST '- '> (UNPACK (SUBSTRING DIR (IPLUS 2 TOPDIRLEN
|
||||
)
|
||||
-1))))
|
||||
"-" NAME))
|
||||
'HOST
|
||||
(LISTGET TF 'HOST)
|
||||
'DIRECTORY
|
||||
(|if| (EQ DEST T)
|
||||
|then| DIR
|
||||
|else| DEST))))
|
||||
(|if| (AND (NOT REDOFLG)
|
||||
(INFILEP PSFILE))
|
||||
|then| (* \; " do nothing")
|
||||
(PRINTOUT T PSFILE " already there" T)
|
||||
|elseif| (MEMBER *FILE* BADFILES)
|
||||
|then| (PRINTOUT T "Skipping " *FILE* " on BADFILES")
|
||||
|else| (PRINTOUT T "Converting " *FILE* " to " PSFILE "...")
|
||||
(CL:WITH-OPEN-STREAM (STR (OPENPOSTSCRIPTSTREAM PSFILE))
|
||||
(PRETTYFILEINDEX *FILE* NIL STR))
|
||||
(|printout| T " DONE" T))))
|
||||
(T (PRINTOUT T "no such file " T)))))
|
||||
(SETQ SUBDIRS (NCONC1 SUBDIRS FULLNAME))
|
||||
(CL:FORMAT S "<LI><A HREF=%"~a/%">~a/</A></LI>~%%" SHORTNAME SHORTNAME))
|
||||
ELSEIF (MEMB [SETQ SHORTNAME (MKATOM (SUBSTRING FULLNAME (ADD1 (NCHARS BASE))
|
||||
(SUB1 (OR (STRPOS ".;" FULLNAME)
|
||||
(STRPOS ";" FULLNAME)
|
||||
(HELP
|
||||
"No ; in non-directory"
|
||||
]
|
||||
'(index.html .skip))
|
||||
THEN
|
||||
(* ;; "dont index the index")
|
||||
|
||||
ELSEIF (MEMB (FILENAMEFIELD SHORTNAME 'EXTENSION)
|
||||
'(IMPTR SKIP skip imptr))
|
||||
THEN
|
||||
(* ;; " don't enuerate ANY.SKIP ANY.IMPTR etc")
|
||||
|
||||
ELSE (CL:FORMAT S "<LI><A HREF=%"~a%">~a</A></LI>~%%" SHORTNAME SHORTNAME)))
|
||||
(CL:FORMAT S "</UL></BODY></HTML>~%%"))
|
||||
(NCONC SUBDIRS (FOR D IN SUBDIRS join (MAKE-INDEX-HTMLS D (OR TOP BASE])
|
||||
)
|
||||
|
||||
(RPAQ? HCFILES )
|
||||
(PUTPROPS MEDLEY-UTILS FILETYPE :COMPILE-FILE)
|
||||
|
||||
(RPAQ? BADFILES )
|
||||
(DECLARE\: DONTCOPY
|
||||
(FILEMAP (NIL (781 7744 (GATHER-INFO 791 . 6319) (MAKE-FULLER-DB 6321 . 7099) (MEDLEY-FIX-LINKS 7101
|
||||
. 7498) (MEDLEY-FIX-DATES 7500 . 7742)) (8923 10914 (MAKE-EXPORTS-ALL 8933 . 9994) (MAKE-WHEREIS-HASH
|
||||
9996 . 10912)) (10915 18894 (BADFILE 10925 . 11393) (HCFILES 11395 . 15280) (PRETTYFILES 15282 .
|
||||
18892)))))
|
||||
[XCL:REINSTALL-ADVICE 'TEDIT.PROMPTPRINT :BEFORE '((:LAST (PRIN1 MSG T)))
|
||||
:AFTER
|
||||
'((:LAST (AND (STRPOS "GETFN" MSG)
|
||||
(HELP MSG]
|
||||
|
||||
(READVISE TEDIT.PROMPTPRINT)
|
||||
(DEFINEQ
|
||||
|
||||
(RECOMPILE-ONE
|
||||
[LAMBDA (FILES) (* ; "Edited 3-Apr-2024 08:12 by lmm")
|
||||
(* ; "Edited 10-Feb-2024 13:31 by LMM")
|
||||
|
||||
(* ;; " Still working on this -- the idea is to run a sysout for compiling which has been set up to compile one file, and then logout(T) and restart.")
|
||||
|
||||
(* ;; " it will continue until there are no more files to compile")
|
||||
|
||||
(CL:WITH-OPEN-STREAM (S (OPENSTREAM (OR (INFILEP "COMPILE.DRIBBLE")
|
||||
"COMPILE.DRIBBLE")
|
||||
'BOTH))
|
||||
(DRIBBLE S)
|
||||
(BKSYSBUF " ")
|
||||
(PRINTOUT T "------------------" T "SEARCHING...")
|
||||
(for X in (OR FILES SYSFILES) when (MEMB (GET X 'FILETYPE)
|
||||
'(CL:COMPILE-FILE :COMPILE-FILE))
|
||||
when [NOT (INFILEP (CONCAT X '.DFASL] do (PRINTOUT T "Compiling " X T "")
|
||||
(DOFILESLOAD (LIST X))
|
||||
(LOAD X 'PROP)
|
||||
(COPYFILE (FINDFILE X)
|
||||
X)
|
||||
(FOR V IN (CL:VALUES-LIST (CL:COMPILE-FILE
|
||||
X))
|
||||
DO (PRINT V))
|
||||
(CL:FORCE-OUTPUT (DRIBBLEFILE)
|
||||
T)
|
||||
(DRIBBLE)
|
||||
(RETURN) FINALLY (HELP "NO MORE"])
|
||||
|
||||
(RECMPL
|
||||
[LAMBDA (FILES) (* ; "Edited 17-Feb-2024 15:39 by lmm")
|
||||
(* ; "Edited 8-Feb-2024 19:24 by lmm")
|
||||
(LET ((*PRINT-CASE* :DOWNCASE)
|
||||
SRC DESTPREV (PRETTYFLG T)
|
||||
(*PRINT-BASE* 10))
|
||||
(CNDIR)
|
||||
(for X in (OR FILES SYSFILES) do (IF (SETQ SRC (INFILEP (CONCAT SRCDIR X ".ilsp")))
|
||||
THEN (APPLY* (COMPILE-FILE? SRC)
|
||||
SRC])
|
||||
|
||||
(COMPILE-SETUP
|
||||
[LAMBDA NIL (* ; "Edited 17-Feb-2024 08:23 by lmm")
|
||||
(* ; "Edited 9-Feb-2024 16:15 by larry")
|
||||
|
||||
(* ;; "first set up compile environment")
|
||||
|
||||
(FILESLOAD SYSEDIT)
|
||||
|
||||
(* ;; " load in necessary packages")
|
||||
|
||||
(FILESLOAD MEDLEY-UTILS)
|
||||
(CLRHASH CLISPARRAY) (* ;
|
||||
"clear out cache of file package translations")
|
||||
(FILESLOAD WHERE-IS MEDLEY-UTILS GITFNS FILEBROWSER])
|
||||
|
||||
(REMAKEFILES
|
||||
[LAMBDA (FILES) (* ; "Edited 8-Feb-2024 07:47 by lmm")
|
||||
(LET ((*PRINT-CASE* :DOWNCASE)
|
||||
WIN DIFF (PRETTYFLG T)
|
||||
(*PRINT-BASE* 10))
|
||||
(for X in (OR FILES SYSFILES)
|
||||
do (LOAD X 'PROP)
|
||||
(PUTPROP X 'CONTENT (READFILE X))
|
||||
(for EXR in (GETPROP X 'CONTENT)
|
||||
do (SELECTQ (CAR EXR)
|
||||
(DEFINEQ (for DFN in (CDR EXR)
|
||||
do (if (EQUAL (CADR DFN)
|
||||
(GETPROP (CAR DFN)
|
||||
'EXPR))
|
||||
then (PRINTOUT T (CAR DFN)
|
||||
" ")
|
||||
(PUTPROP (CAR DFN)
|
||||
'EXPR
|
||||
(CADR DFN))
|
||||
else (PRINTOUT T (CAR DFN)
|
||||
"* "))))
|
||||
NIL))
|
||||
(MAKEFILE (MKATOM (SETQ DESTFILE (CONCAT (L-CASE X)
|
||||
".ilsp")))
|
||||
'(NEW))
|
||||
(SETQ DIFF (COMPARESOURCES X DESTFILE NIL))
|
||||
(TERPRI])
|
||||
)
|
||||
|
||||
(READVISE TEDIT.PROMPTPRINT)
|
||||
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
|
||||
|
||||
(ADDTOVAR NLAMA )
|
||||
|
||||
(ADDTOVAR NLAML )
|
||||
|
||||
(ADDTOVAR LAMA )
|
||||
)
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (1064 11630 (GATHER-INFO 1074 . 6456) (MAKE-FULLER-DB 6458 . 7235) (MAKE-INDEX-HTMLS
|
||||
7237 . 10999) (MEDLEY-FIX-LINKS 11001 . 11394) (MEDLEY-FIX-DATES 11396 . 11628)) (12809 15597 (
|
||||
MAKE-EXPORTS-ALL 12819 . 13878) (MAKE-WHEREIS-HASH 13880 . 15069) (MAKE-WHEREIS-LOOPS 15071 . 15595))
|
||||
(15598 23855 (HCFILES 15608 . 20089) (MAKE-INDEX-HTMLS 20091 . 23853)) (24105 28717 (RECOMPILE-ONE
|
||||
24115 . 26012) (RECMPL 26014 . 26617) (COMPILE-SETUP 26619 . 27243) (REMAKEFILES 27245 . 28715)))))
|
||||
STOP
|
||||
|
||||
BIN
internal/MEDLEY-UTILS.DFASL
Normal file
BIN
internal/MEDLEY-UTILS.DFASL
Normal file
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user