From 23fd9ebccc225bbc163d2c7647ca45952afe47da Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Mon, 26 Apr 2021 13:19:59 +0530 Subject: Add Guix build script. * guix.scm: New file. --- guix.scm | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 guix.scm (limited to 'guix.scm') 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 +;;; +;;; 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 . + +;;; 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+)) -- cgit v1.2.3