diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2017-06-04 11:54:23 +0200 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2017-06-15 17:03:14 +0200 |
commit | bef0db37690201573419f19946494a5e5188c1bd (patch) | |
tree | d88c3109f160fb2f76a24d57b44711032fa27a10 /guix/svn-download.scm | |
parent | 32fdad78c171bdb493aac4bd19164ce657ebd28f (diff) | |
download | gnu-guix-bef0db37690201573419f19946494a5e5188c1bd.tar gnu-guix-bef0db37690201573419f19946494a5e5188c1bd.tar.gz |
guix: Add download-svn-to-store.
* guix/svn-download.scm (download-svn-to-store): New procedure.
Diffstat (limited to 'guix/svn-download.scm')
-rw-r--r-- | guix/svn-download.scm | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/guix/svn-download.scm b/guix/svn-download.scm index c1200fa0c5..c118869af1 100644 --- a/guix/svn-download.scm +++ b/guix/svn-download.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in> +;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,12 +24,15 @@ #:use-module (guix store) #:use-module (guix monads) #:use-module (guix packages) + #:use-module (guix utils) + #:use-module ((guix build svn) #:prefix build:) #:use-module (ice-9 match) #:export (svn-reference svn-reference? svn-reference-url svn-reference-revision - svn-fetch)) + svn-fetch + download-svn-to-store)) ;;; Commentary: ;;; @@ -79,4 +83,21 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f." #:guile-for-build guile #:local-build? #t))) +(define* (download-svn-to-store store ref + #:optional (name (basename (svn-reference-url ref))) + #:key (log (current-error-port))) + "Download from REF, a <svn-reference> object to STORE. Write progress +reports to LOG." + (call-with-temporary-directory + (lambda (temp) + (let ((result + (parameterize ((current-output-port log)) + (build:svn-fetch (svn-reference-url ref) + (svn-reference-revision ref) + temp + #:user-name (svn-reference-user-name ref) + #:password (svn-reference-password ref))))) + (and result + (add-to-store store name #t "sha256" temp)))))) + ;;; svn-download.scm ends here |