From 9a3971143854bf877c0739fc8fdf7b945a2e3935 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Sat, 22 Feb 2020 17:54:25 +0300 Subject: [PATCH] etc: Add copyright. * etc/copyright.el: New file. * doc/contributing.texi (The Perfect Setup): Document this. --- doc/contributing.texi | 27 +++++++++++++++++++++++++++ etc/copyright.el | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 etc/copyright.el diff --git a/doc/contributing.texi b/doc/contributing.texi index a0d0925941..9d45becf86 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -274,6 +274,33 @@ trigger string @code{origin...}, which can be expanded further. The @code{origin} snippet in turn may insert other trigger strings ending on @code{...}, which also can be expanded further. +@cindex insert or update copyright +@cindex @code{M-x guix-copyright} +@cindex @code{M-x copyright-update} +Additionaly we provide insertion and automatic update of a copyright in +@file{etc/copyright.el}. You may want to set your full name, mail, and +load a file. + +@lisp +(setq user-full-name "Alice Doe") +(setq user-mail-address "alice@@mail.org") +;; @r{Assuming the Guix checkout is in ~/src/guix.} +(load-file "~/src/guix/etc/copyright.el") +@end lisp + +To insert a copyright at the current line invoke @code{M-x guix-copyright}. + +To update a copyright you need to specify a @code{copyright-names-regexp}. + +@lisp +(setq copyright-names-regexp + (format "%s <%s>" user-full-name user-mail-address)) +@end lisp + +You can check if your copyright is up to date by evaluating @code{M-x +copyright-update}. If you want to do it automatically after each buffer +save then add @code{(add-hook 'after-save-hook 'copyright-update)} in +Emacs. @node Packaging Guidelines @section Packaging Guidelines diff --git a/etc/copyright.el b/etc/copyright.el new file mode 100644 index 0000000000..f5ed723cea --- /dev/null +++ b/etc/copyright.el @@ -0,0 +1,34 @@ +;;; copyright.el --- Insert a Guix copyright. + +;; Copyright © 2020 Oleg Pykhalov + +;; This file is part of GNU Guix. + +;; GNU Guix 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. + +;; GNU Guix 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: + +;; This package provides skeleton to insert a copyright with `guix-copyright'. + +;;; Code: + +(define-skeleton guix-copyright + "Insert a copyright by $USER notice at cursor." + "FULL_NAME : " + comment-start + ";; Copyright © " `(format-time-string "%Y") " " + (or (format "%s <%s>" user-full-name user-mail-address) str) + comment-end) + +;;; copyright.el ends here