diff options
author | David Thompson <dthompson2@worcester.edu> | 2015-01-04 22:47:05 -0500 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2015-01-04 22:50:01 -0500 |
commit | 2a878fd9ee2d99cf3112768449e4a0c4c3e77d8b (patch) | |
tree | cfe23e4f50045ca34bdb358f254e24e27ec9b81e | |
parent | f299cca70928759f04d44d81d6c2f0f6f9388e1b (diff) |
ui: Display version information.
* haunt/config.scm: Delete.
* haunt/config.scm.in: New file.
* haunt/ui.scm (show-version-and-exit): New procedure.
(program-name): Change default value.
(haunt-main): Add version option.
* haunt/ui/serve.scm (haunt-serve): Likewise.
* configure.ac (AC_CONFIG_FILES): Add 'haunt/config.scm'.
* .gitignore: Ignore 'haunt/config.scm'.
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | haunt/config.scm.in (renamed from haunt/config.scm) | 5 | ||||
-rw-r--r-- | haunt/ui.scm | 19 | ||||
-rw-r--r-- | haunt/ui/serve.scm | 2 |
5 files changed, 25 insertions, 4 deletions
@@ -10,3 +10,4 @@ *.go *~ .#* +/haunt/config.scm diff --git a/configure.ac b/configure.ac index 3c35c09..4281e57 100644 --- a/configure.ac +++ b/configure.ac @@ -6,7 +6,7 @@ AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([color-tests -Wall -Wno-portability foreign]) AM_SILENT_RULES([yes]) -AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([Makefile haunt/config.scm]) AC_CONFIG_FILES([pre-inst-env], [chmod +x pre-inst-env]) GUILE_PROGS([2.0.11]) diff --git a/haunt/config.scm b/haunt/config.scm.in index 53dc404..641d894 100644 --- a/haunt/config.scm +++ b/haunt/config.scm.in @@ -23,10 +23,13 @@ ;;; Code: (define-module (haunt config) - #:export (%haunt-cwd + #:export (%haunt-version + %haunt-cwd haunt-file-name haunt-output-directory)) +(define %haunt-version "@PACKAGE_VERSION@") + (define %haunt-cwd (getcwd)) (define (haunt-file-name rel) diff --git a/haunt/ui.scm b/haunt/ui.scm index 35e8eb3..910adf9 100644 --- a/haunt/ui.scm +++ b/haunt/ui.scm @@ -9,7 +9,7 @@ ;;; (at your option) any later version. ;;; ;;; Haunt is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; WITnnnHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;;; General Public License for more details. ;;; @@ -27,15 +27,17 @@ #:use-module (ice-9 ftw) #:use-module (ice-9 match) #:use-module (srfi srfi-26) + #:use-module (haunt config) #:export (program-name haunt-error + show-version-and-exit option? haunt-main)) (define commands '(serve)) -(define program-name (make-parameter "haunt")) +(define program-name (make-parameter 'haunt)) (define (haunt-error str . args) (format (current-error-port) "~a: " (program-name)) @@ -52,6 +54,17 @@ Run COMMAND with ARGS.~%~%") (format #t "Try `haunt --help' for more information.~%") (exit 1)) +(define (show-version-and-exit) + (let ((name (if (eq? (program-name) 'haunt) + "haunt" + (format #f "haunt ~a" (program-name))))) + (format #t "~a ~a +Copyright (C) 2015 the Haunt authors +License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law.~%" + name %haunt-version))) + (define (option? str) (string-prefix? "-" str)) @@ -73,6 +86,8 @@ Run COMMAND with ARGS.~%~%") (show-haunt-usage)) ((or ("-h") ("--help")) (show-haunt-help)) + (("--version") + (show-version-and-exit)) (((? option? opt) _ ...) (format (current-error-port) "haunt: unrecognized option '~a'~%" diff --git a/haunt/ui/serve.scm b/haunt/ui/serve.scm index 3ef7ede..078b013 100644 --- a/haunt/ui/serve.scm +++ b/haunt/ui/serve.scm @@ -41,6 +41,8 @@ Start an HTTP server for the current site.~%") (() (serve (haunt-output-directory))) ((or ("-h") ("--help")) (show-serve-help)) + (("--version") + (show-version-and-exit)) (((? option? opt) _ ...) (haunt-error "invalid option: ~a" opt) (exit 1)) |