Common Lisp Package: QUICKPROJECT

The Quickproject package.

README:

FUNCTION

Public

DEFAULT-TEMPLATE-PARAMETERS

Return a plist of :NAME, :LICENSE, and :AUTHOR parameters.

MAKE-PROJECT (PATHNAME &KEY DEPENDS-ON TEMPLATE-PARAMETERS ((TEMPLATE-DIRECTORY *TEMPLATE-DIRECTORY*) *TEMPLATE-DIRECTORY*) ((AUTHOR *AUTHOR*) *AUTHOR*) ((LICENSE *LICENSE*) *LICENSE*) (NAME (PATHNAME-PROJECT-NAME PATHNAME) NAME-PROVIDED-P))

Create a project skeleton for NAME in PATHNAME. If DEPENDS-ON is provided, it is used as the asdf defsystem depends-on list.

Private

PATHNAME-AS-DIRECTORY (PATHSPEC)

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

PATHNAME-PROJECT-NAME (PATHNAME)

Return a project name based on PATHNAME by taking the last element in the pathname-directory list. E.g. returns "awesome-project" for #p"src/awesome-project/".

REWRITE-TEMPLATES (TEMPLATE-DIRECTORY TARGET-DIRECTORY PARAMETERS)

Treat every file in TEMPLATE-DIRECTORY as a template file; fill it out using PARAMETERS into a corresponding file in TARGET-DIRECTORY. The rewriting uses HTML-TEMPLATE. The template start marker is the string "(#|" and the template end marker is the string "|#)". Template vars are not modified or escaped when written.

TEMPLATE-PARAMETERS (INITIAL-PARAMETERS)

Return all template parameters returned by calling each element in *TEMPLATE-PARAMETER-FUNCTIONS*, appended together as a single plist.

UNINTERNED-SYMBOLIZE (NAME)

Return an uninterned symbol named after NAME, which is treated as a string designator and upcased.

WALK-DIRECTORY (DIRNAME FN &KEY DIRECTORIES (IF-DOES-NOT-EXIST ERROR) (TEST (CONSTANTLY T)) (FOLLOW-SYMLINKS T))

Recursively applies the function FN to all files within the directory named by the non-wild pathname designator DIRNAME and all of its sub-directories. FN will only be applied to files for which the function TEST returns a true value. If DIRECTORIES is not NIL, FN and TEST are applied to directories as well. If DIRECTORIES is :DEPTH-FIRST, FN will be applied to the directory's contents first. If DIRECTORIES is :BREADTH-FIRST and TEST returns NIL, the directory's content will be skipped. IF-DOES-NOT-EXIST must be one of :ERROR or :IGNORE where :ERROR means that an error will be signaled if the directory DIRNAME does not exist. If FOLLOW-SYMLINKS is T, then your callback will receive truenames. Otherwise you should get the actual directory contents, which might include symlinks. This might not be supported on all platforms. See LIST-DIRECTORY.

WRITE-SYSTEM-FORM (NAME &KEY DEPENDS-ON (STREAM *STANDARD-OUTPUT*))

Write an asdf defsystem form for NAME to STREAM.

Undocumented

FILE-COMMENT-HEADER (STREAM)

WRITE-APPLICATION-FILE (NAME FILE)

WRITE-PACKAGE-FILE (NAME FILE)

WRITE-README-FILE (NAME FILE)

WRITE-SYSTEM-FILE (NAME FILE &KEY DEPENDS-ON)

MACRO

Private

WITH-NEW-FILE ((STREAM FILE) &BODY BODY)

Like WITH-OPEN-FILE, but specialized for output to a file that must not already exist.

GENERIC-FUNCTION

Private

FILL-AND-PRINT-TEMPLATE (TEMPLATE/PRINTER VALUES &KEY STREAM (STREAM *DEFAULT-TEMPLATE-OUTPUT*) &ALLOW-OTHER-KEYS)

Fills the template denoted by TEMPLATE/PRINTER with VALUES and print it to STREAM. If TEMPLATE/PRINTER is a function uses it as if it were a template printer, otherwise creates a printer (or pull one out of the cache) with CREATE-TEMPLATE-PRINTER. Optional keyword arguments are given to CREATE-TEMPLATE printer and can only be used if TEMPLATE/PRINTER is a pathname.

VARIABLE

Public

*AFTER-MAKE-PROJECT-HOOKS*

A list of functions to call after MAKE-PROJECT is finished making a project. Each function is called with the same arguments passed to MAKE-PROJECT, except that NAME is canonicalized if necessary. *DEFAULT-PATHNAME-DEFAULTS* bound to the newly created project directory.

*AUTHOR*

Set this variable to your contact information.

*TEMPLATE-DIRECTORY*

A directory to use as a source of template files.

*TEMPLATE-PARAMETER-FUNCTIONS*

A list of functions that return plists for use when rewriting template files. The results of calling each function are appended together to pass to FILL-AND-PRINT-TEMPLATE.

Undocumented

*LICENSE*

Private

*TEMPLATE-END-MARKER*

The string template tags must end with

*TEMPLATE-START-MARKER*

The string template tags must start with