You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.2 KiB

2 years ago
#! /usr/bin/env sh
exec guile -e '(@ (bible2latex) main)' -s "$0" "$@"
2 years ago
!#
(define-module (bible2latex)
#:use-module (bible-tools)
#:use-module (bible-tools latex-export)
2 years ago
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
2 years ago
#:export (main))
(define (help)
2 years ago
(display "Usage: bible2latex [-b book] [-c chapter]")
(display "[-h] [-v] [--bible b]\n")
2 years ago
(display "\t-b book\t\texport the book to latex\n")
(display "\t-c chapter\texport this chapter to latex\n")
(display "\t-h\t\tdisplay this help message\n")
2 years ago
(display "\t-v\t\tdisplay the current version\n")
(display "\t--bible b use this bible\n"))
2 years ago
(define (main args)
2 years ago
(define version (cut display "bible2latex v1.0.0\n"))
(define print (compose display as-latex))
(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)))))
2 years ago
(let ((bible (if (flag? "--bible") (get "--bible") "elb1871")))
(with-bible bible
(conf ("-h" (help))
("-v" (version))
("-b" (if (flag? "-c")
(call-with-chapter (get "-b")
(get "-c") print)
(call-with-book (get "-b") print)))
(else print)))))