;;; create-license.el --- Conveniently create license files -*- lexical-binding: t; -*- ;; Copyright (C) 2024 Tristan Riehs ;; Author: Tristan Riehs ;; Keywords: convenience ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; TODO: commentary for `describe-package' ;;; Code: (defgroup create-license nil "Conveniently create license files." :group 'emacs :prefix "create-license-") (defcustom create-license-file-name "COPYING" "The name of the license file." :group 'create-license :type 'string :safe 'stringp) (defcustom create-license-directory (file-name-as-directory (expand-file-name "licenses" user-emacs-directory)) "Directory where licenses are stored. `create-license' ignores files in this directory whose name start by a dot." :group 'create-license :type 'string) ;;;###autoload (defun create-license (dir name) "Copy the license NAME in DIR. The destination file name under DIR is given by `create-license-file-name'." (interactive (list default-directory (completing-read "License: " (directory-files create-license-directory nil "^[^\\.].*")))) (copy-file (expand-file-name name create-license-directory) (expand-file-name create-license-file-name dir))) (provide 'create-license) ;;; create-license.el ends here