summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2022-03-15 15:07:27 +0530
committerArun Isaac2022-03-15 15:13:04 +0530
commit923d4977c6a4a29a777f3d442fa29ff7831874e6 (patch)
tree41416ee5026af734490cec1ce684ec13380d4d47
parent05a792a120227f9ce294866dfd1494e059968335 (diff)
downloadtissue-923d4977c6a4a29a777f3d442fa29ff7831874e6.tar.gz
tissue-923d4977c6a4a29a777f3d442fa29ff7831874e6.tar.lz
tissue-923d4977c6a4a29a777f3d442fa29ff7831874e6.zip
tissue: Introduce declarative configuration.
The <tissue-configuration> record will provide a declarative configuration interface. * tissue/tissue.scm: New file.
-rw-r--r--tissue/tissue.scm45
1 files changed, 45 insertions, 0 deletions
diff --git a/tissue/tissue.scm b/tissue/tissue.scm
new file mode 100644
index 0000000..a90414f
--- /dev/null
+++ b/tissue/tissue.scm
@@ -0,0 +1,45 @@
+;;; tissue --- Text based issue tracker
+;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
+;;;
+;;; This file is part of tissue.
+;;;
+;;; tissue 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.
+;;;
+;;; tissue 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 tissue. If not, see <https://www.gnu.org/licenses/>.
+
+(define-module (tissue tissue)
+ #:use-module (srfi srfi-9)
+ #:export (tissue-configuration
+ tissue-configuration?
+ tissue-configuration-project
+ tissue-configuration-web-css
+ tissue-configuration-web-tags-path))
+
+(define-record-type <tissue-configuration>
+ (make-tissue-configuration project web-css web-tags-path)
+ tissue-configuration?
+ (project tissue-configuration-project)
+ (web-css tissue-configuration-web-css)
+ (web-tags-path tissue-configuration-web-tags-path))
+
+(define* (tissue-configuration #:key project web-css (web-tags-path "/tags"))
+ "PROJECT is the name of the project. It is used in the title of the
+generated web pages, among other places.
+
+WEB-CSS is the path to a CSS stylesheet. It is relative to the
+document root and must begin with a /. If it is #f, no stylesheet is
+used in the generated web pages.
+
+WEB-TAGS-PATH is the path relative to the document root where the
+per-tag issue listings are put. It must begin with a /. If it is #f,
+per-tag issue listings are not generated."
+ (make-tissue-configuration project web-css web-tags-path))