license templates
This commit is contained in:
+19
-5
@@ -1,8 +1,8 @@
|
||||
(in-package :lspack)
|
||||
|
||||
(defparameter *default-author* "")
|
||||
(defparameter *default-license* "")
|
||||
(defparameter *default-pathname* "")
|
||||
(defparameter *default-license* nil)
|
||||
(defparameter *default-pathname* "src")
|
||||
(defparameter *default-version* "0.0.0")
|
||||
|
||||
(defclass <project> ()
|
||||
@@ -24,7 +24,7 @@
|
||||
(license :initarg :project-license
|
||||
:accessor project-license
|
||||
:initform *default-license*
|
||||
:type string)
|
||||
:type (or keyword null))
|
||||
(version :initarg :project-version
|
||||
:accessor project-version
|
||||
:initform *default-version*
|
||||
@@ -40,14 +40,14 @@
|
||||
:project-name "my-project"
|
||||
:project-author "name"
|
||||
:project-description "a project"
|
||||
:project-pathname ""))
|
||||
:project-license :mit))
|
||||
|
||||
(defmethod project-defsystem-write ((project <project>) stream)
|
||||
(with-slots (name author description license version pathname)
|
||||
project
|
||||
(fresh-line stream)
|
||||
(write-char #\( stream)
|
||||
(format stream "asdf:defsystem ~S" name)
|
||||
(format stream "defsystem ~S" name)
|
||||
(format stream "~& :author ~S" author)
|
||||
(format stream "~& :description ~S" description)
|
||||
(format stream "~& :license ~S" license)
|
||||
@@ -99,9 +99,23 @@
|
||||
(format out "(defpackage :~a~% (:use :cl))~%" name))
|
||||
(format *error-output* "~&Created ~S" path))))
|
||||
|
||||
(defmethod project-license-create ((project <project>))
|
||||
(let ((license (get-license (project-license project))))
|
||||
(unless (null license)
|
||||
(let ((writer (license-ensure-writer license))
|
||||
(license-file (uiop:merge-pathnames* (license-file-name license)
|
||||
(project-root project))))
|
||||
(unless (null writer)
|
||||
(with-open-file (out license-file :direction :output
|
||||
:if-exists :supersede
|
||||
:if-does-not-exist :create)
|
||||
(funcall writer project out))
|
||||
(format *error-output* "~&Created ~S" license-file))))))
|
||||
|
||||
(defmethod project-start ((project <project>))
|
||||
(project-ensure-root project)
|
||||
(project-defsystem-create project)
|
||||
(project-license-create project)
|
||||
(project-ensure-source-directory project)
|
||||
(project-create-package project))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user