59 lines
1.7 KiB
Scheme
59 lines
1.7 KiB
Scheme
;;; Gash --- Guile As SHell
|
|
;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
|
;;;
|
|
;;; This file is part of Gash.
|
|
;;;
|
|
;;; Gash 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.
|
|
;;;
|
|
;;; Gash 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 Gash. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
(define-module (gash config)
|
|
#:export (%bzip2
|
|
%xz
|
|
%compress
|
|
%gzip
|
|
%version))
|
|
|
|
;;; Commentary:
|
|
;;;
|
|
;;; Compile-time configuration of gash. When adding a substitution variable
|
|
;;; here, make sure to have configure substitute it.
|
|
;;;
|
|
;;; Code:
|
|
|
|
(define %version
|
|
"@VERSION@")
|
|
|
|
(define %bzip2
|
|
"@BZIP2@")
|
|
|
|
(define (exec-internal-compress . args)
|
|
(let* ((guile "@GUILE@")
|
|
(expr `(begin
|
|
(set! %load-path ',%load-path)
|
|
(set! %load-compiled-path ',%load-compiled-path)
|
|
((@@ (gash commands compress) main) "compress" ,@args)))
|
|
(script (with-output-to-string (lambda () (write expr)))))
|
|
(execl guile guile "--no-auto-compile" "-c" script)))
|
|
|
|
(define %compress
|
|
(let ((external-compress "@COMPRESS@"))
|
|
(if (string-null? external-compress)
|
|
exec-internal-compress
|
|
external-compress)))
|
|
|
|
(define %gzip
|
|
"@GZIP@")
|
|
|
|
(define %xz
|
|
"@XZ@")
|