(import (guix packages)
        (guix inferior)
        (guix store)
        (guix profiles)
        (ice-9 match)
        (statprof))

(pk 'current-guix)
(define current-guix
  (let* ((default-guix (format #false "~a/.config/guix/current"
                               (getenv "HOME")))
         (current-guix-inferior #false))
    (lambda ()
      (or current-guix-inferior
          (begin
            (set! current-guix-inferior (open-inferior
                                         (canonicalize-path default-guix)))
            current-guix-inferior)))))

(pk 'inferior-store)
(define inferior-store
  (let ((connection #false))
    (lambda ()
      (or connection
          (begin
            (set! connection (open-connection))
            connection)))))

(pk 'inferior-store)
(define (lookup-package specification)
  (match (lookup-inferior-packages (current-guix) specification)
    ((first . rest) first)
    (x (error "oops" x))))

(define specs
  (list "bash-minimal"
        "r-minimal"
        "r-ggplot2"
        "r-ggrepel"
        "r-deseq2"
        "r-dt"
        "r-pheatmap"
        "r-corrplot"
        "r-reshape2"
        "r-plotly"
        "r-scales"
        "r-crosstalk"
        "r-gprofiler"
        "r-rtracklayer"
        "r-summarizedexperiment"))

(pk 'packages)
(define packages
  (map lookup-package specs))

(pk 'packages->manifest)
(statprof
 (lambda ()
   (packages->manifest packages)))
(pk 'packages->manifest-done)

Generated by Ricardo Wurmus using scpaste at Fri Jan 22 20:30:25 2021. CET. (original)