;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;;
svn-reference?
svn-reference-url
svn-reference-revision
+ svn-reference-recursive?
svn-fetch
download-svn-to-store
svn-multi-reference-url
svn-multi-reference-revision
svn-multi-reference-locations
+ svn-multi-reference-recursive?
svn-multi-fetch))
;;; Commentary:
(define-record-type* <svn-reference>
svn-reference make-svn-reference
svn-reference?
- (url svn-reference-url) ; string
- (revision svn-reference-revision) ; number
- (user-name svn-reference-user-name (default #f))
- (password svn-reference-password (default #f)))
+ (url svn-reference-url) ; string
+ (revision svn-reference-revision) ; number
+ (recursive? svn-reference-recursive? (default #t))
+ (user-name svn-reference-user-name (default #f))
+ (password svn-reference-password (default #f)))
(define (subversion-package)
"Return the default Subversion package."
'#$(svn-reference-revision ref)
#$output
#:svn-command (string-append #+svn "/bin/svn")
+ #:recursive? #$(svn-reference-recursive? ref)
#:user-name #$(svn-reference-user-name ref)
#:password #$(svn-reference-password ref)))))
(url svn-multi-reference-url) ; string
(revision svn-multi-reference-revision) ; number
(locations svn-multi-reference-locations) ; list of strings
+ (recursive? svn-multi-reference-recursive? (default #t))
(user-name svn-multi-reference-user-name (default #f))
(password svn-multi-reference-password (default #f)))
(string-append #$output "/" location)
(string-append #$output "/" (dirname location)))
#:svn-command (string-append #+svn "/bin/svn")
+ #:recursive?
+ #$(svn-multi-reference-recursive? ref)
#:user-name #$(svn-multi-reference-user-name ref)
#:password #$(svn-multi-reference-password ref)))
'#$(svn-multi-reference-locations ref)))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "svn-checkout") build
+ #:leaked-env-vars '("http_proxy" "https_proxy"
+ "LC_ALL" "LC_MESSAGES" "LANG"
+ "COLUMNS")
#:system system
#:hash-algo hash-algo
#:hash hash
(parameterize ((current-output-port log))
(build:svn-fetch (svn-reference-url ref)
(svn-reference-revision ref)
- temp
+ (string-append temp "/svn")
#:user-name (svn-reference-user-name ref)
#:password (svn-reference-password ref)))))
(and result
- (add-to-store store name #t "sha256" temp))))))
+ (add-to-store store name #t "sha256"
+ (string-append temp "/svn")))))))
;;; svn-download.scm ends here