fukamachi / cl-project

Generate modern project skeletons
MIT License
247 stars 40 forks source link

CL-Project - Generate modern project skeletons

Build Status Quicklisp dist

Usage

(cl-project:make-project #p"lib/cl-sample/"
  :name "cl-sample"
  :long-name "common-lisp-sample"
  :author "Eitaro Fukamachi"
  :maintainer "Eitaro Fukamachi"
  :email "e.arrows@gmail.com"
  :license "MIT"
  :homepage "https://github.com/fukamachi/cl-project"
  :bug-tracker "https://github.com/fukamachi/cl-project/issues"
  :source-control "https://github.com/fukamachi/cl-project.git"
  :version "0.1.1"
  :description "Sample library"
  :long-description "Common Lisp sample library"
  :depends-on '(:clack alexandria)
  :use '(:cl)
  :import-from '(:clack (serapeum concat))
  :export '(test-function test-constant)
  :code '((alexandria:define-constant test-constant "hallo" :test 'string=)
          (defun test-function (user)
            "docstring"
            (concat test-constant " " user)))
  :load-system t)
;-> writing /Users/fukamachi/Programs/lib/cl-sample/.gitignore
;   writing /Users/fukamachi/Programs/lib/cl-sample/README.markdown
;   writing /Users/fukamachi/Programs/lib/cl-sample/cl-sample-test.asd
;   writing /Users/fukamachi/Programs/lib/cl-sample/cl-sample.asd
;   writing /Users/fukamachi/Programs/lib/cl-sample/src/main.lisp
;   writing /Users/fukamachi/Programs/lib/cl-sample/t/main.lisp
;
;   compiling file "/Users/fukamachi/Programs/lib/cl-sample/src/main.lisp"
;   compilation finished in 0:00:00.004
;=> T

What's the difference from other generators?

1. Flexible templates

CL-Project supports more parameters to embed, by using CL-EMB to represent the skeleton files (See "cl-project/skeleton/").

2. One package per file style (Modern)

A modern CL project should be in accordance with some rules. For instance, one file must have one package in it.

3. Recommends unit testing

Modern projects should have some unit tests. CL-Project generates a system for unit testing, so you can begin writing unit tests as soon as the project is generated.

Parameters

All parameters are optional.

See Also

Author

Copyright

Copyright (c) 2011 Eitaro Fukamachi (e.arrows@gmail.com)

License

Licensed under the MIT License.