diff options
author | Arun Isaac | 2021-04-26 13:19:59 +0530 |
---|---|---|
committer | Arun Isaac | 2021-04-26 13:19:59 +0530 |
commit | 23fd9ebccc225bbc163d2c7647ca45952afe47da (patch) | |
tree | d420261650ad9183ba9a76fc74b64ab1bb4b6224 | |
parent | d68dc8541cbcc3d04b43bdad8bed5718d18b4676 (diff) | |
download | ccwl-23fd9ebccc225bbc163d2c7647ca45952afe47da.tar.gz ccwl-23fd9ebccc225bbc163d2c7647ca45952afe47da.tar.lz ccwl-23fd9ebccc225bbc163d2c7647ca45952afe47da.zip |
Add Guix build script.
* guix.scm: New file.
-rw-r--r-- | guix.scm | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/guix.scm b/guix.scm new file mode 100644 index 0000000..cc10282 --- /dev/null +++ b/guix.scm @@ -0,0 +1,81 @@ +;;; ccwl --- Concise Common Workflow Language +;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net> +;;; +;;; This file is part of ccwl. +;;; +;;; ccwl 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. +;;; +;;; ccwl 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 ccwl. If not, see <https://www.gnu.org/licenses/>. + +;;; Commentary: + +;; This script packages ccwl for GNU Guix. +;; +;; Run the following command to enter a development environment for +;; ccwl: +;; +;; $ guix environment -l guix.scm + +;;; Code: + +(use-modules (srfi srfi-1) + (srfi srfi-26) + (ice-9 match) + (ice-9 popen) + (ice-9 rdelim) + (gnu packages autotools) + (gnu packages guile) + (gnu packages pkg-config) + (guix build utils) + (guix build-system gnu) + (guix gexp) + (guix packages) + ((guix licenses) #:prefix license:)) + +(define %source-dir (dirname (current-filename))) + +(define git-file? + (let* ((pipe (with-directory-excursion %source-dir + (open-pipe* OPEN_READ "git" "ls-files"))) + (files (let loop ((lines '())) + (match (read-line pipe) + ((? eof-object?) + (reverse lines)) + (line + (loop (cons line lines)))))) + (status (close-pipe pipe))) + (lambda (file stat) + (match (stat:type stat) + ('directory + #t) + ((or 'regular 'symlink) + (any (cut string-suffix? <> file) files)) + (_ + #f))))) + +(package + (name "ccwl") + (version "0.1.0") + (source (local-file %source-dir #:recursive? #t #:select? git-file?)) + (build-system gnu-build-system) + (arguments + '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings + (inputs + `(("guile" ,guile-3.0))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (home-page "https://git.systemreboot.net/ccwl") + (synopsis "Concise common workflow language") + (description "Concise common workflow language") + (license license:gpl3+)) |