Compare commits
3 Commits
3edc7c57da
...
62337dec07
Author | SHA1 | Date | |
---|---|---|---|
|
62337dec07 | ||
|
834bc25705 | ||
|
230a6a9432 |
89
Makefile.am
89
Makefile.am
@ -1,89 +0,0 @@
|
|||||||
bin_SCRIPTS = scripts/bible-app \
|
|
||||||
scripts/word-counter \
|
|
||||||
scripts/bible2latex
|
|
||||||
|
|
||||||
# Handle substitution of fully-expanded Autoconf variables.
|
|
||||||
do_subst = $(SED) \
|
|
||||||
-e 's,[@]GUILE[@],$(GUILE),g' \
|
|
||||||
-e 's,[@]guilemoduledir[@],$(guilemoduledir),g' \
|
|
||||||
-e 's,[@]guileobjectdir[@],$(guileobjectdir),g' \
|
|
||||||
-e 's,[@]localedir[@],$(localedir),g'
|
|
||||||
|
|
||||||
nodist_noinst_SCRIPTS = pre-inst-env
|
|
||||||
|
|
||||||
GOBJECTS = $(SOURCES:%.scm=%.go)
|
|
||||||
|
|
||||||
moddir=$(prefix)/share/guile/site/$(GUILE_EFFECTIVE_VERSION)
|
|
||||||
godir=$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache
|
|
||||||
ccachedir=$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache
|
|
||||||
|
|
||||||
nobase_mod_DATA = $(SOURCES) $(NOCOMP_SOURCES)
|
|
||||||
nobase_go_DATA = $(GOBJECTS)
|
|
||||||
|
|
||||||
# Make sure source files are installed first, so that the mtime of
|
|
||||||
# installed compiled files is greater than that of installed source
|
|
||||||
# files. See
|
|
||||||
# <http://lists.gnu.org/archive/html/guile-devel/2010-07/msg00125.html>
|
|
||||||
# for details.
|
|
||||||
guile_install_go_files = install-nobase_goDATA
|
|
||||||
$(guile_install_go_files): install-nobase_modDATA
|
|
||||||
|
|
||||||
EXTRA_DIST = $(SOURCES) $(NOCOMP_SOURCES)
|
|
||||||
GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
|
|
||||||
SUFFIXES = .scm .go
|
|
||||||
.scm.go:
|
|
||||||
$(AM_V_GEN)$(top_builddir)/pre-inst-env $(GUILE_TOOLS) compile $(GUILE_WARNINGS) -o "$@" "$<"
|
|
||||||
|
|
||||||
SOURCES = bible-tools/latex-export.scm \
|
|
||||||
bible-tools/count-words.scm \
|
|
||||||
bible-tools/bible-tools.scm
|
|
||||||
|
|
||||||
TESTS =
|
|
||||||
|
|
||||||
TEST_EXTENSIONS = .scm
|
|
||||||
SCM_LOG_DRIVER = \
|
|
||||||
$(top_builddir)/pre-inst-env \
|
|
||||||
$(GUILE) --no-auto-compile -e main \
|
|
||||||
$(top_srcdir)/build-aux/test-driver.scm
|
|
||||||
|
|
||||||
# Tell 'build-aux/test-driver.scm' to display only source file names,
|
|
||||||
# not indivdual test names.
|
|
||||||
AM_SCM_LOG_DRIVER_FLAGS = --brief=yes
|
|
||||||
|
|
||||||
AM_SCM_LOG_FLAGS = --no-auto-compile -L "$(top_srcdir)"
|
|
||||||
|
|
||||||
AM_TESTS_ENVIRONMENT = abs_top_srcdir="$(abs_top_srcdir)"
|
|
||||||
|
|
||||||
info_TEXINFOS = doc/bible-tools.texi
|
|
||||||
dvi: # Don't build dvi docs
|
|
||||||
|
|
||||||
EXTRA_DIST += COPYING \
|
|
||||||
HACKING \
|
|
||||||
README \
|
|
||||||
README.org \
|
|
||||||
NEWS \
|
|
||||||
AUTHORS \
|
|
||||||
ChangeLog \
|
|
||||||
hall.scm \
|
|
||||||
.gitignore \
|
|
||||||
guix.scm \
|
|
||||||
build-aux/test-driver.scm \
|
|
||||||
build-aux/texinfo.tex \
|
|
||||||
build-aux/mdate-sh \
|
|
||||||
build-aux/missing \
|
|
||||||
build-aux/install-sh \
|
|
||||||
configure.ac \
|
|
||||||
Makefile.am \
|
|
||||||
pre-inst-env.in \
|
|
||||||
build-aux/test-driver.scm \
|
|
||||||
$(TESTS)
|
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
|
||||||
|
|
||||||
clean-go:
|
|
||||||
-$(RM) $(GOBJECTS)
|
|
||||||
.PHONY: clean-go
|
|
||||||
|
|
||||||
CLEANFILES = \
|
|
||||||
$(GOBJECTS) \
|
|
||||||
$(TESTS:tests/%.scm=%.log)
|
|
4
NEWS
4
NEWS
@ -1,9 +1,9 @@
|
|||||||
# -*- mode: org; coding: utf-8; -*-
|
# -*- mode: org; coding: utf-8; -*-
|
||||||
|
|
||||||
#+TITLE: Bible-Tools NEWS ? history of user-visible changes
|
#+TITLE: Bible-Tools NEWS – history of user-visible changes
|
||||||
#+STARTUP: content hidestars
|
#+STARTUP: content hidestars
|
||||||
|
|
||||||
Copyright ? (2022) <INSERT EMAIL HERE>
|
Copyright © (2022) <INSERT EMAIL HERE>
|
||||||
|
|
||||||
Copying and distribution of this file, with or without modification,
|
Copying and distribution of this file, with or without modification,
|
||||||
are permitted in any medium without royalty provided the copyright
|
are permitted in any medium without royalty provided the copyright
|
||||||
|
@ -59,3 +59,4 @@
|
|||||||
(define (call-with-chapter book chapter thunk)
|
(define (call-with-chapter book chapter thunk)
|
||||||
(lambda (bible) (thunk (get-chapter (string->number chapter)
|
(lambda (bible) (thunk (get-chapter (string->number chapter)
|
||||||
(get-book book bible)))))
|
(get-book book bible)))))
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
(define-module (count-words)
|
(define-module (bible-tools count-words)
|
||||||
#:use-module (bible-tools)
|
#:use-module (bible-tools)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
(define-module (latex-export)
|
(define-module (bible-tools latex-export)
|
||||||
#:use-module (bible-tools)
|
#:use-module (bible-tools)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
|
@ -1,179 +0,0 @@
|
|||||||
;;;; test-driver.scm - Guile test driver for Automake testsuite harness
|
|
||||||
|
|
||||||
(define script-version "2019-01-15.13") ;UTC
|
|
||||||
|
|
||||||
;;; Copyright ? 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
|
|
||||||
;;; Copyright ? 2019 Alex Sassmannshausen <alex@pompo.co>
|
|
||||||
;;;
|
|
||||||
;;; 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 <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
;;;; Commentary:
|
|
||||||
;;;
|
|
||||||
;;; This script provides a Guile test driver using the SRFI-64 Scheme API for
|
|
||||||
;;; test suites. SRFI-64 is distributed with Guile since version 2.0.9.
|
|
||||||
;;;
|
|
||||||
;;; This script is a lightly modified version of the orignal written by
|
|
||||||
;;; Matthieu Lirzin. The changes make it suitable for use as part of the
|
|
||||||
;;; guile-hall infrastructure.
|
|
||||||
;;;
|
|
||||||
;;;; Code:
|
|
||||||
|
|
||||||
(use-modules (ice-9 getopt-long)
|
|
||||||
(ice-9 pretty-print)
|
|
||||||
(srfi srfi-26)
|
|
||||||
(srfi srfi-64))
|
|
||||||
|
|
||||||
(define (show-help)
|
|
||||||
(display "Usage:
|
|
||||||
test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
|
|
||||||
[--expect-failure={yes|no}] [--color-tests={yes|no}]
|
|
||||||
[--enable-hard-errors={yes|no}] [--brief={yes|no}}] [--]
|
|
||||||
TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
|
|
||||||
The '--test-name', '--log-file' and '--trs-file' options are mandatory.
|
|
||||||
"))
|
|
||||||
|
|
||||||
(define %options
|
|
||||||
'((test-name (value #t))
|
|
||||||
(log-file (value #t))
|
|
||||||
(trs-file (value #t))
|
|
||||||
(color-tests (value #t))
|
|
||||||
(expect-failure (value #t)) ;XXX: not implemented yet
|
|
||||||
(enable-hard-errors (value #t)) ;not implemented in SRFI-64
|
|
||||||
(brief (value #t))
|
|
||||||
(help (single-char #\h) (value #f))
|
|
||||||
(version (single-char #\V) (value #f))))
|
|
||||||
|
|
||||||
(define (option->boolean options key)
|
|
||||||
"Return #t if the value associated with KEY in OPTIONS is 'yes'."
|
|
||||||
(and=> (option-ref options key #f) (cut string=? <> "yes")))
|
|
||||||
|
|
||||||
(define* (test-display field value #:optional (port (current-output-port))
|
|
||||||
#:key pretty?)
|
|
||||||
"Display 'FIELD: VALUE\n' on PORT."
|
|
||||||
(if pretty?
|
|
||||||
(begin
|
|
||||||
(format port "~A:~%" field)
|
|
||||||
(pretty-print value port #:per-line-prefix "+ "))
|
|
||||||
(format port "~A: ~S~%" field value)))
|
|
||||||
|
|
||||||
(define* (result->string symbol #:key colorize?)
|
|
||||||
"Return SYMBOL as an upper case string. Use colors when COLORIZE is #t."
|
|
||||||
(let ((result (string-upcase (symbol->string symbol))))
|
|
||||||
(if colorize?
|
|
||||||
(string-append (case symbol
|
|
||||||
((pass) "[0;32m") ;green
|
|
||||||
((xfail) "[1;32m") ;light green
|
|
||||||
((skip) "[1;34m") ;blue
|
|
||||||
((fail xpass) "[0;31m") ;red
|
|
||||||
((error) "[0;35m")) ;magenta
|
|
||||||
result
|
|
||||||
"[m") ;no color
|
|
||||||
result)))
|
|
||||||
|
|
||||||
(define* (test-runner-gnu test-name #:key color? brief? out-port trs-port)
|
|
||||||
"Return an custom SRFI-64 test runner. TEST-NAME is a string specifying the
|
|
||||||
file name of the current the test. COLOR? specifies whether to use colors,
|
|
||||||
and BRIEF?, well, you know. OUT-PORT and TRS-PORT must be output ports. The
|
|
||||||
current output port is supposed to be redirected to a '.log' file."
|
|
||||||
|
|
||||||
(define (test-on-test-begin-gnu runner)
|
|
||||||
;; Procedure called at the start of an individual test case, before the
|
|
||||||
;; test expression (and expected value) are evaluated.
|
|
||||||
(let ((result (cute assq-ref (test-result-alist runner) <>)))
|
|
||||||
(format #t "test-name: ~A~%" (result 'test-name))
|
|
||||||
(format #t "location: ~A~%"
|
|
||||||
(string-append (result 'source-file) ":"
|
|
||||||
(number->string (result 'source-line))))
|
|
||||||
(test-display "source" (result 'source-form) #:pretty? #t)))
|
|
||||||
|
|
||||||
(define (test-on-test-end-gnu runner)
|
|
||||||
;; Procedure called at the end of an individual test case, when the result
|
|
||||||
;; of the test is available.
|
|
||||||
(let* ((results (test-result-alist runner))
|
|
||||||
(result? (cut assq <> results))
|
|
||||||
(result (cut assq-ref results <>)))
|
|
||||||
(unless brief?
|
|
||||||
;; Display the result of each test case on the console.
|
|
||||||
(format out-port "~A: ~A - ~A~%"
|
|
||||||
(result->string (test-result-kind runner) #:colorize? color?)
|
|
||||||
test-name (test-runner-test-name runner)))
|
|
||||||
(when (result? 'expected-value)
|
|
||||||
(test-display "expected-value" (result 'expected-value)))
|
|
||||||
(when (result? 'expected-error)
|
|
||||||
(test-display "expected-error" (result 'expected-error) #:pretty? #t))
|
|
||||||
(when (result? 'actual-value)
|
|
||||||
(test-display "actual-value" (result 'actual-value)))
|
|
||||||
(when (result? 'actual-error)
|
|
||||||
(test-display "actual-error" (result 'actual-error) #:pretty? #t))
|
|
||||||
(format #t "result: ~a~%" (result->string (result 'result-kind)))
|
|
||||||
(newline)
|
|
||||||
(format trs-port ":test-result: ~A ~A~%"
|
|
||||||
(result->string (test-result-kind runner))
|
|
||||||
(test-runner-test-name runner))))
|
|
||||||
|
|
||||||
(define (test-on-group-end-gnu runner)
|
|
||||||
;; Procedure called by a 'test-end', including at the end of a test-group.
|
|
||||||
(let ((fail (or (positive? (test-runner-fail-count runner))
|
|
||||||
(positive? (test-runner-xpass-count runner))))
|
|
||||||
(skip (or (positive? (test-runner-skip-count runner))
|
|
||||||
(positive? (test-runner-xfail-count runner)))))
|
|
||||||
;; XXX: The global results need some refinements for XPASS.
|
|
||||||
(format trs-port ":global-test-result: ~A~%"
|
|
||||||
(if fail "FAIL" (if skip "SKIP" "PASS")))
|
|
||||||
(format trs-port ":recheck: ~A~%"
|
|
||||||
(if fail "yes" "no"))
|
|
||||||
(format trs-port ":copy-in-global-log: ~A~%"
|
|
||||||
(if (or fail skip) "yes" "no"))
|
|
||||||
(when brief?
|
|
||||||
;; Display the global test group result on the console.
|
|
||||||
(format out-port "~A: ~A~%"
|
|
||||||
(result->string (if fail 'fail (if skip 'skip 'pass))
|
|
||||||
#:colorize? color?)
|
|
||||||
test-name))
|
|
||||||
#f))
|
|
||||||
|
|
||||||
(let ((runner (test-runner-null)))
|
|
||||||
(test-runner-on-test-begin! runner test-on-test-begin-gnu)
|
|
||||||
(test-runner-on-test-end! runner test-on-test-end-gnu)
|
|
||||||
(test-runner-on-group-end! runner test-on-group-end-gnu)
|
|
||||||
(test-runner-on-bad-end-name! runner test-on-bad-end-name-simple)
|
|
||||||
runner))
|
|
||||||
|
|
||||||
;;;
|
|
||||||
;;; Entry point.
|
|
||||||
;;;
|
|
||||||
|
|
||||||
(define (main . args)
|
|
||||||
(let* ((opts (getopt-long (command-line) %options))
|
|
||||||
(option (cut option-ref opts <> <>)))
|
|
||||||
(cond
|
|
||||||
((option 'help #f) (show-help))
|
|
||||||
((option 'version #f) (format #t "test-driver.scm ~A" script-version))
|
|
||||||
(else
|
|
||||||
(let ((log (open-file (option 'log-file "") "w0"))
|
|
||||||
(trs (open-file (option 'trs-file "") "wl"))
|
|
||||||
(out (duplicate-port (current-output-port) "wl")))
|
|
||||||
(redirect-port log (current-output-port))
|
|
||||||
(redirect-port log (current-warning-port))
|
|
||||||
(redirect-port log (current-error-port))
|
|
||||||
(test-with-runner
|
|
||||||
(test-runner-gnu (option 'test-name #f)
|
|
||||||
#:color? (option->boolean opts 'color-tests)
|
|
||||||
#:brief? (option->boolean opts 'brief)
|
|
||||||
#:out-port out #:trs-port trs)
|
|
||||||
(load-from-path (option 'test-name #f)))
|
|
||||||
(close-port log)
|
|
||||||
(close-port trs)
|
|
||||||
(close-port out))))
|
|
||||||
(exit 0)))
|
|
36
configure.ac
36
configure.ac
@ -1,36 +0,0 @@
|
|||||||
dnl -*- Autoconf -*-
|
|
||||||
|
|
||||||
AC_INIT(bible-tools, 1.0)
|
|
||||||
AC_SUBST(HVERSION, "\"1.0\"")
|
|
||||||
AC_SUBST(AUTHOR, "\"\"")
|
|
||||||
AC_SUBST(COPYRIGHT, "'(2022)")
|
|
||||||
AC_SUBST(LICENSE, gpl3+)
|
|
||||||
AC_CONFIG_SRCDIR(bible-tools)
|
|
||||||
AC_CONFIG_AUX_DIR([build-aux])
|
|
||||||
AM_INIT_AUTOMAKE([1.12 gnu silent-rules subdir-objects color-tests parallel-tests -Woverride -Wno-portability])
|
|
||||||
AM_SILENT_RULES([yes])
|
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile])
|
|
||||||
AC_CONFIG_FILES([pre-inst-env], [chmod +x pre-inst-env])
|
|
||||||
AC_CONFIG_FILES([scripts/bible-app],[chmod +x scripts/bible-app])
|
|
||||||
AC_CONFIG_FILES([scripts/word-counter],[chmod +x scripts/word-counter])
|
|
||||||
AC_CONFIG_FILES([scripts/bible2latex],[chmod +x scripts/bible2latex])
|
|
||||||
dnl Search for 'guile' and 'guild'. This macro defines
|
|
||||||
dnl 'GUILE_EFFECTIVE_VERSION'.
|
|
||||||
GUILE_PKG([3.0 2.2 2.0])
|
|
||||||
GUILE_PROGS
|
|
||||||
GUILE_SITE_DIR
|
|
||||||
if test "x$GUILD" = "x"; then
|
|
||||||
AC_MSG_ERROR(['guild' binary not found; please check your guile-2.x installation.])
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl Hall auto-generated guile-module dependencies
|
|
||||||
|
|
||||||
|
|
||||||
dnl Installation directories for .scm and .go files.
|
|
||||||
guilemoduledir="${datarootdir}/guile/site/$GUILE_EFFECTIVE_VERSION"
|
|
||||||
guileobjectdir="${libdir}/guile/$GUILE_EFFECTIVE_VERSION/site-ccache"
|
|
||||||
AC_SUBST([guilemoduledir])
|
|
||||||
AC_SUBST([guileobjectdir])
|
|
||||||
|
|
||||||
AC_OUTPUT
|
|
@ -45,8 +45,13 @@ Edition @value{EDITION} @*
|
|||||||
|
|
||||||
This document describes Bible-Tools version @value{VERSION}.
|
This document describes Bible-Tools version @value{VERSION}.
|
||||||
|
|
||||||
|
Bible-Tools is a Guile scheme library for working with bibles in tsv
|
||||||
|
format. It includes two scripts (word-counter & bible2latex).
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* Introduction:: Why Bible-Tools?
|
* Introduction:: Why Bible-Tools?
|
||||||
|
* word-counter:: word-counter
|
||||||
|
* bible2latex:: bible2latex
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@c *********************************************************************
|
@c *********************************************************************
|
||||||
@ -57,4 +62,29 @@ INTRODUCTION HERE
|
|||||||
|
|
||||||
This documentation is a stub.
|
This documentation is a stub.
|
||||||
|
|
||||||
|
@c*********************************************************************
|
||||||
|
@node word-counter
|
||||||
|
@chapter word-counter
|
||||||
|
|
||||||
|
word-counter counts the occurrences of words in a book or chapter of
|
||||||
|
the bible.
|
||||||
|
|
||||||
|
It takes the name of a bible book as the first argument and
|
||||||
|
additionally 3 flags: [-h, -v, -c].
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item
|
||||||
|
-h shows a help message
|
||||||
|
@item
|
||||||
|
-v shows the version
|
||||||
|
@item
|
||||||
|
-c specifies a chapter
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
@c*********************************************************************
|
||||||
|
@node bible2latex
|
||||||
|
@chapter bible2latex
|
||||||
|
|
||||||
|
bible2latex exports (a part of) the bible to latex.
|
||||||
|
|
||||||
@bye
|
@bye
|
||||||
|
24
guix.scm
24
guix.scm
@ -1,9 +1,9 @@
|
|||||||
(use-modules (guix packages)
|
(use-modules
|
||||||
((guix licenses)
|
(guix packages)
|
||||||
#:prefix license:)
|
((guix licenses) #:prefix license:)
|
||||||
(guix download)
|
(guix download)
|
||||||
(guix git-download)
|
|
||||||
(guix build-system gnu)
|
(guix build-system gnu)
|
||||||
|
(guix gexp)
|
||||||
(gnu packages)
|
(gnu packages)
|
||||||
(gnu packages autotools)
|
(gnu packages autotools)
|
||||||
(gnu packages guile)
|
(gnu packages guile)
|
||||||
@ -11,18 +11,10 @@
|
|||||||
(gnu packages pkg-config)
|
(gnu packages pkg-config)
|
||||||
(gnu packages texinfo))
|
(gnu packages texinfo))
|
||||||
|
|
||||||
(define-public bible-tools
|
(package
|
||||||
(package
|
|
||||||
(name "bible-tools")
|
(name "bible-tools")
|
||||||
(version "1.0")
|
(version "1.0")
|
||||||
(source
|
(source (local-file "./bible-tools-1.0.tar.gz"))
|
||||||
(origin
|
|
||||||
(method git-fetch)
|
|
||||||
(uri (git-reference
|
|
||||||
(url "https://git.silasvedder.xyz/silasfox/bible-tools.git")
|
|
||||||
(commit "bc925d8")))
|
|
||||||
(file-name "bible-tools-1.0-checkout")
|
|
||||||
(sha256 (base32 "07221jw4gl48cg45znwjkc7871in3pfq488ig4vnbjygqbg4wawh"))))
|
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:modules
|
`(#:modules
|
||||||
@ -90,6 +82,4 @@
|
|||||||
(synopsis "")
|
(synopsis "")
|
||||||
(description "")
|
(description "")
|
||||||
(home-page "")
|
(home-page "")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+))
|
||||||
|
|
||||||
bible-tools
|
|
||||||
|
23
hall.scm
23
hall.scm
@ -14,19 +14,18 @@
|
|||||||
((directory
|
((directory
|
||||||
"bible-tools"
|
"bible-tools"
|
||||||
((scheme-file "latex-export")
|
((scheme-file "latex-export")
|
||||||
(scheme-file "count-words")
|
(scheme-file "count-words")))
|
||||||
(scheme-file "bible-tools")))))
|
(scheme-file "bible-tools")))
|
||||||
(tests ((directory "tests" ())))
|
(tests ((directory "tests" ())))
|
||||||
(programs
|
(programs
|
||||||
((directory
|
((directory
|
||||||
"scripts"
|
"scripts"
|
||||||
((in-file "bible-app")
|
((in-file "bible-app")
|
||||||
(in-file "word-counter")
|
(in-file "word-counter")
|
||||||
(in-file "bible2latex")))))
|
(in-file "bible2latex")
|
||||||
|
(in-file "read-bible")))))
|
||||||
(documentation
|
(documentation
|
||||||
((directory
|
((directory "doc" ((texi-file "bible-tools")))
|
||||||
"doc"
|
|
||||||
((texi-file "bible-tools")))
|
|
||||||
(text-file "COPYING")
|
(text-file "COPYING")
|
||||||
(text-file "HACKING")
|
(text-file "HACKING")
|
||||||
(symlink "README" "README.org")
|
(symlink "README" "README.org")
|
||||||
@ -37,14 +36,4 @@
|
|||||||
(infrastructure
|
(infrastructure
|
||||||
((scheme-file "hall")
|
((scheme-file "hall")
|
||||||
(text-file ".gitignore")
|
(text-file ".gitignore")
|
||||||
(scheme-file "guix")
|
(scheme-file "guix")))))
|
||||||
(directory
|
|
||||||
"build-aux"
|
|
||||||
((scheme-file "test-driver")
|
|
||||||
(tex-file "texinfo")
|
|
||||||
(text-file "mdate-sh")
|
|
||||||
(text-file "missing")
|
|
||||||
(text-file "install-sh")))
|
|
||||||
(autoconf-file "configure")
|
|
||||||
(automake-file "Makefile")
|
|
||||||
(in-file "pre-inst-env")))))
|
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
abs_top_srcdir="`cd "@abs_top_srcdir@" > /dev/null; pwd`"
|
|
||||||
abs_top_builddir="`cd "@abs_top_builddir@" > /dev/null; pwd`"
|
|
||||||
|
|
||||||
GUILE_LOAD_COMPILED_PATH="$abs_top_builddir${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
|
|
||||||
GUILE_LOAD_PATH="$abs_top_builddir:$abs_top_srcdir${GUILE_LOAD_PATH:+:}:$GUILE_LOAD_PATH"
|
|
||||||
export GUILE_LOAD_COMPILED_PATH GUILE_LOAD_PATH
|
|
||||||
|
|
||||||
PATH="$abs_top_builddir/scripts:$PATH"
|
|
||||||
export PATH
|
|
||||||
|
|
||||||
exec "$@"
|
|
@ -4,8 +4,8 @@ exec guile -e '(@ (bible-app) main)' -s "$0" "$@"
|
|||||||
|
|
||||||
(define-module (bible-app)
|
(define-module (bible-app)
|
||||||
#:use-module (bible-tools)
|
#:use-module (bible-tools)
|
||||||
#:use-module (latex-export)
|
#:use-module (bible-tools latex-export)
|
||||||
#:use-module (count-words)
|
#:use-module (bible-tools count-words)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:export (main))
|
#:export (main))
|
||||||
|
@ -4,7 +4,7 @@ exec guile -e '(@ (bible2latex) main)' -s "$0" "$@"
|
|||||||
|
|
||||||
(define-module (bible2latex)
|
(define-module (bible2latex)
|
||||||
#:use-module (bible-tools)
|
#:use-module (bible-tools)
|
||||||
#:use-module (latex-export)
|
#:use-module (bible-tools latex-export)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:export (main))
|
#:export (main))
|
||||||
|
41
scripts/read-bible.in
Normal file
41
scripts/read-bible.in
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#! /usr/bin/env sh
|
||||||
|
exec guile -e '(@ (read-bible) main)' -s "$0" "$@"
|
||||||
|
!#
|
||||||
|
|
||||||
|
(define-module (read-bible)
|
||||||
|
#:use-module (bible-tools)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
|
#:use-module (srfi srfi-26)
|
||||||
|
#:export (main))
|
||||||
|
|
||||||
|
(define (verse->string v)
|
||||||
|
(string-append (book v) " " (chapter v) ":" (verse v) "\t" (text v)))
|
||||||
|
|
||||||
|
(define (print-text txt)
|
||||||
|
(for-each (lambda (str) (display str) (newline))
|
||||||
|
(map verse->string txt)))
|
||||||
|
|
||||||
|
(define (help)
|
||||||
|
(display "Usage: read-bible bible [-b book] [-c chapter] [-h] [-v]\n")
|
||||||
|
(display "\t-b book\t\tthe book to read\n")
|
||||||
|
(display "\t-c chapter\tthe chapter to read\n")
|
||||||
|
(display "\t-h\t\tdisplay this help message\n")
|
||||||
|
(display "\t-v\t\tdisplay the current version\n"))
|
||||||
|
|
||||||
|
(define (version)
|
||||||
|
(display "read-bible v1.0.0\n"))
|
||||||
|
|
||||||
|
(define (main args)
|
||||||
|
(define flag? (cut member <> args))
|
||||||
|
(define get (compose cadr flag?))
|
||||||
|
(define-syntax conf
|
||||||
|
(syntax-rules (else)
|
||||||
|
((_ (f e)... (else g)) (cond ((flag? f) e)... (else g)))))
|
||||||
|
(with-bible (cadr args)
|
||||||
|
(conf ("-h" (help))
|
||||||
|
("-v" (version))
|
||||||
|
("-b" (if (flag? "-c")
|
||||||
|
(call-with-chapter (get "-b") (get "-c")
|
||||||
|
print-text)
|
||||||
|
(call-with-book (get "-b") print-text)))
|
||||||
|
(else (help)))))
|
@ -4,7 +4,7 @@ exec guile -e '(@ (word-counter) main)' -s "$0" "$@"
|
|||||||
|
|
||||||
(define-module (word-counter)
|
(define-module (word-counter)
|
||||||
#:use-module (bible-tools)
|
#:use-module (bible-tools)
|
||||||
#:use-module (count-words)
|
#:use-module (bible-tools count-words)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:export (main))
|
#:export (main))
|
||||||
@ -35,4 +35,5 @@ exec guile -e '(@ (word-counter) main)' -s "$0" "$@"
|
|||||||
("-v" (version))
|
("-v" (version))
|
||||||
("-c"
|
("-c"
|
||||||
(call-with-chapter (cadr args) (get "-c") show-meta))
|
(call-with-chapter (cadr args) (get "-c") show-meta))
|
||||||
(else (call-with-book (cadr args) show-meta)))))
|
(else (if (< (length args) 2) (help)
|
||||||
|
(call-with-book (cadr args) show-meta))))))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user