;;; Guile Feed --- Feed command-line interface. ;;; Copyright © 2018 Oleg Pykhalov ;;; ;;; This file is part of Guile Feed. ;;; ;;; Guile Feed 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. ;;; ;;; Guile Feed 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 Guile Feed. If not, see ;;; . ;;; Commentary: ;; This file contains Guix package for development version of Guile ;; Feed. To build or install, run: ;; ;; guix build --file=guix.scm ;; guix package --install-from-file=guix.scm ;;; Code: (use-modules (gnu packages autotools) (gnu packages gnupg) (gnu packages guile) (gnu packages package-management) (gnu packages pkg-config) (gnu packages tls) (guix build utils) (guix build-system gnu) (guix gexp) (guix git-download) (guix packages) (ice-9 popen) (ice-9 rdelim) ((guix licenses) #:prefix license:)) (define %source-dir (dirname (current-filename))) (define (git-output . args) "Execute 'git ARGS ...' command and return its output without trailing newspace." (with-directory-excursion %source-dir (let* ((port (apply open-pipe* OPEN_READ "git" args)) (output (read-string port))) (close-port port) (string-trim-right output #\newline)))) (define (current-commit) (git-output "log" "-n" "1" "--pretty=format:%H")) (define guile-feed (let ((commit (current-commit))) (package (name "guile-feed") (version (string-append "0.0.1" "-" (string-take commit 7))) (source (local-file %source-dir #:recursive? #t #:select? (git-predicate %source-dir))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) (guix build utils) (srfi srfi-26) (ice-9 popen) (ice-9 rdelim)) #:phases (modify-phases %standard-phases (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) ;; Make sure the 'guix' command finds GnuTLS, ;; Guile-JSON, and Guile-Git automatically. (let* ((out (assoc-ref outputs "out")) (guile (assoc-ref inputs "guile")) (gcrypt (assoc-ref inputs "guile-gcrypt")) (gnutls (assoc-ref inputs "gnutls")) (guix (assoc-ref inputs "guix")) (json (assoc-ref inputs "guile-json")) (deps (list gcrypt gnutls guix json out)) (effective (read-line (open-pipe* OPEN_READ (string-append guile "/bin/guile") "-c" "(display (effective-version))"))) (path (string-join (map (cut string-append <> "/share/guile/site/" effective) deps) ":")) (gopath (string-join (map (cut string-append <> "/lib/guile/" effective "/site-ccache") deps) ":"))) (wrap-program (string-append out "/bin/feed") `("GUILE_LOAD_PATH" ":" prefix (,path)) `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath))) #t)))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("pkg-config" ,pkg-config))) (inputs `(("gnutls" ,gnutls) ("guile" ,guile-2.2) ("guile-gcrypt" ,guile-gcrypt) ("guile-json" ,guile-json) ("guix" ,guix))) (home-page "https://gitlab.com/wigust/guile-feed") (synopsis "Command-line RSS feeds manager") (description "This package provides a command-line program to manage RSS feeds written in Guile.") (license license:gpl3+)))) guile-feed ;;; guix.scm ends here