Common Lisp Package: CL-PROJECT

README:

FUNCTION

Public

GENERATE-SKELETON (SOURCE-DIR TARGET-DIR &KEY ENV)

General skeleton generator.

MAKE-PROJECT (PATH &REST PARAMS &KEY NAME DESCRIPTION AUTHOR EMAIL LICENSE DEPENDS-ON &ALLOW-OTHER-KEYS)

Generate a skeleton. `path' must be a pathname or a string.

Private

COPY-DIRECTORY (SOURCE-DIR TARGET-DIR)

Copy a directory recursively.

COPY-FILE-TO-DIR (SOURCE-PATH TARGET-DIR)

Copy a file to target directory.

COPY-FILE-TO-FILE (SOURCE-PATH TARGET-PATH)

Copy a file `source-path` to the `target-path`.

DIRECTORY-EXISTS-P (PATHSPEC)

Checks whether the file named by the pathname designator PATHSPEC exists and if it is a directory. Returns its truename if this is the case, NIL otherwise. The truename is returned in directory form as if by PATHNAME-AS-DIRECTORY.

LIST-DIRECTORY (DIRNAME &KEY (FOLLOW-SYMLINKS T))

Returns a fresh list of pathnames corresponding to all files within the directory named by the non-wild pathname designator DIRNAME. The pathnames of sub-directories are returned in directory form - see PATHNAME-AS-DIRECTORY. If FOLLOW-SYMLINKS is true, then the returned list contains truenames (symlinks will be resolved) which essentially means that it might also return files from *outside* the directory. This works on all platforms. When FOLLOW-SYMLINKS is NIL, it should return the actual directory contents, which might include symlinks. Currently this works on SBCL and CCL.

PATHNAME-AS-DIRECTORY (PATHSPEC)

Converts the non-wild pathname designator PATHSPEC to directory form.

REGEX-REPLACE-ALL (REGEX TARGET-STRING REPLACEMENT &KEY (START 0) (END (LENGTH TARGET-STRING)) PRESERVE-CASE SIMPLE-CALLS (ELEMENT-TYPE 'CHARACTER))

Try to match TARGET-STRING between START and END against REGEX and replace all matches with REPLACEMENT. Two values are returned; the modified string, and T if REGEX matched or NIL otherwise. REPLACEMENT can be a string which may contain the special substrings "\&" for the whole match, "\`" for the part of TARGET-STRING before the match, "\'" for the part of TARGET-STRING after the match, "\N" or "\{N}" for the Nth register where N is a positive integer. REPLACEMENT can also be a function designator in which case the match will be replaced with the result of calling the function designated by REPLACEMENT with the arguments TARGET-STRING, START, END, MATCH-START, MATCH-END, REG-STARTS, and REG-ENDS. (REG-STARTS and REG-ENDS are arrays holding the start and end positions of matched registers or NIL - the meaning of the other arguments should be obvious.) Finally, REPLACEMENT can be a list where each element is a string, one of the symbols :MATCH, :BEFORE-MATCH, or :AFTER-MATCH - corresponding to "\&", "\`", and "\'" above -, an integer N - representing register (1+ N) -, or a function designator. If PRESERVE-CASE is true, the replacement will try to preserve the case (all upper case, all lower case, or capitalized) of the match. The result will always be a fresh string, even if REGEX doesn't match. ELEMENT-TYPE is the element type of the resulting string.

GENERIC-FUNCTION

Private

EXECUTE-EMB (NAME &KEY ENV GENERATOR-MAKER)

Execute named emb code. Returns a string. Keyword parameter ENV to pass objects to the code. ENV must be a plist.

VARIABLE

Public

Undocumented

*SKELETON-DIRECTORY*

Private

Undocumented

*SKELETON-PARAMETERS*