diff options
author | Marius Bakke <marius@gnu.org> | 2020-10-13 23:39:27 +0200 |
---|---|---|
committer | Marius Bakke <marius@gnu.org> | 2020-10-13 23:39:27 +0200 |
commit | f7175626ffce578be1bc6df4916a129f86557872 (patch) | |
tree | 2eb0040522f2883764b3e09dc36595d68eeb14c1 /guix/build/hg.scm | |
parent | 2b6ecdf41a09ab9ecae06d7c537583a2f0f28efc (diff) | |
parent | e8c5533d26b4441c96e9ae92350efcb24d787c4b (diff) | |
download | guix-patches-f7175626ffce578be1bc6df4916a129f86557872.tar guix-patches-f7175626ffce578be1bc6df4916a129f86557872.tar.gz |
Merge branch 'master' into staging
Diffstat (limited to 'guix/build/hg.scm')
-rw-r--r-- | guix/build/hg.scm | 44 |
1 files changed, 27 insertions, 17 deletions
diff --git a/guix/build/hg.scm b/guix/build/hg.scm index b3e3ff7ac3..0ffad7fa2d 100644 --- a/guix/build/hg.scm +++ b/guix/build/hg.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> +;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +21,8 @@ (define-module (guix build hg) #:use-module (guix build utils) + #:use-module (srfi srfi-34) + #:use-module (ice-9 format) #:export (hg-fetch)) ;;; Commentary: @@ -35,22 +38,29 @@ "Fetch CHANGESET from URL into DIRECTORY. CHANGESET must be a valid Mercurial changeset identifier. Return #t on success, #f otherwise." - (invoke hg-command - "clone" url - "--rev" changeset - ;; Disable TLS certificate verification. The hash of - ;; the checkout is known in advance anyway. - "--insecure" - directory) - - ;; The contents of '.hg' vary as a function of the current - ;; status of the Mercurial repo. Since we want a fixed - ;; output, this directory needs to be taken out. - ;; Since the '.hg' file is also in sub-modules, we have to - ;; search for it in all sub-directories. - (for-each delete-file-recursively - (find-files directory "^\\.hg$" #:directories? #t)) - - #t) + (mkdir-p directory) + + (guard (c ((invoke-error? c) + (report-invoke-error c) + (delete-file-recursively directory) + #f)) + (with-directory-excursion directory + (invoke hg-command + "clone" url + "--rev" changeset + ;; Disable TLS certificate verification. The hash of + ;; the checkout is known in advance anyway. + "--insecure" + directory) + + ;; The contents of '.hg' vary as a function of the current + ;; status of the Mercurial repo. Since we want a fixed + ;; output, this directory needs to be taken out. + ;; Since the '.hg' file is also in sub-modules, we have to + ;; search for it in all sub-directories. + (for-each delete-file-recursively + (find-files directory "^\\.hg$" #:directories? #t)) + + #t))) ;;; hg.scm ends here |