summary refs log tree commit diff
path: root/tests/home-import.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2021-10-30 23:30:50 +0200
committerLudovic Courtès <ludo@gnu.org>2021-10-31 00:51:06 +0200
commit96728c54df365cc48f14a514b63616ff7a6d052b (patch)
treeb864c2a72312a2fe77019f4744d3b95b886fdae5 /tests/home-import.scm
parentf3933ae40d4192fa3aeff95ac768bab86ade766f (diff)
downloadguix-96728c54df365cc48f14a514b63616ff7a6d052b.tar.gz
home: import: Factorize triplicated 'version-spec' procedure.
* guix/scripts/package.scm (manifest-entry-version-prefix): New
procedure, moved from...
(export-manifest)[version-spec]: ... here.  Adjust caller.
* tests/home-import.scm (version-spec): Remove.
(eval-test-with-home-environment): Use 'manifest-entry-version-prefix'
instead.
* guix/scripts/home/import.scm (import-manifest): Likewise.
Diffstat (limited to 'tests/home-import.scm')
-rw-r--r--tests/home-import.scm26
1 files changed, 4 insertions, 22 deletions
diff --git a/tests/home-import.scm b/tests/home-import.scm
index 40d9547e8b..dc413d8516 100644
--- a/tests/home-import.scm
+++ b/tests/home-import.scm
@@ -24,6 +24,8 @@
   #:use-module (ice-9 match)
   #:use-module ((guix profiles) #:hide (manifest->code))
   #:use-module ((guix build syscalls) #:select (mkdtemp!))
+  #:use-module ((guix scripts package)
+                #:select (manifest-entry-version-prefix))
   #:use-module (gnu packages)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
@@ -81,33 +83,13 @@ corresponding file."
               ((file . content) (create-file file content)))
             files-alist))
 
-;; Copied from (guix profiles)
-(define (version-spec entry)
-  (let ((name (manifest-entry-name entry)))
-    (match (map package-version (find-packages-by-name name))
-      ((_)
-       ;; A single version of NAME is available, so do not specify the
-       ;; version number, even if the available version doesn't match ENTRY.
-       "")
-      (versions
-       ;; If ENTRY uses the latest version, don't specify any version.
-       ;; Otherwise return the shortest unique version prefix.  Note that
-       ;; this is based on the currently available packages, which could
-       ;; differ from the packages available in the revision that was used
-       ;; to build MANIFEST.
-       (let ((current (manifest-entry-version entry)))
-         (if (every (cut version>? current <>)
-                    (delete current versions))
-             ""
-             (version-unique-prefix (manifest-entry-version entry)
-                                    versions)))))))
-
 (define (eval-test-with-home-environment files-alist manifest matcher)
   (create-temporary-home files-alist)
   (setenv "HOME" %temporary-home-directory)
   (mkdir-p %temporary-home-directory)
   (let* ((home-environment (manifest->code manifest %destination-directory
-                                           #:entry-package-version version-spec
+                                           #:entry-package-version
+                                           manifest-entry-version-prefix
                                            #:home-environment? #t))
          (result (matcher home-environment)))
     (delete-file-recursively %temporary-home-directory)