(use-modules (guix http-client) ((guix build download) #:select (open-connection-for-uri)) (guix utils) ((guix serialization) #:select (dump-port*)) (web uri) (web request) (web response) (srfi srfi-1)) (define %base-url "https://guix.gnu.org") (define port (open-connection-for-uri (string->uri %base-url))) (let loop () (define-values (input size) (http-fetch (string->uri %base-url) #:port (pk 'port port) #:text? #f #:open-connection open-connection-for-uri ;/cached #:keep-alive? #t #:buffered? #f)) (define-values (decompressed pids) (filtered-port '("/run/current-system/profile/bin/cat") (pk 'input input))) (dump-port* decompressed (%make-void-port "w") (pk 'fetch size)) (unless (every (compose zero? cdr waitpid) pids) (error "decomp error")) (loop))