substitute: Warn upon store prefix mismatches.
Suggested by Hynek Urban <hynek.urban@gmail.com>. * guix/scripts/substitute.scm (fetch-narinfos): Move body to... [do-fetch]: ... here. New procedure. Emit a warning when CACHE-INFO's prefix does not match.
This commit is contained in:
		
							parent
							
								
									6629099a63
								
							
						
					
					
						commit
						ae4427e3f3
					
				
					 1 changed files with 27 additions and 21 deletions
				
			
		| 
						 | 
				
			
			@ -565,13 +565,7 @@ if file doesn't exist, and the narinfo otherwise."
 | 
			
		|||
             (read-to-eof port))
 | 
			
		||||
         result))))
 | 
			
		||||
 | 
			
		||||
  (define cache-info
 | 
			
		||||
    (download-cache-info url))
 | 
			
		||||
 | 
			
		||||
  (and cache-info
 | 
			
		||||
       (string=? (cache-info-store-directory cache-info)
 | 
			
		||||
                 (%store-prefix))
 | 
			
		||||
       (let ((uri (string->uri url)))
 | 
			
		||||
  (define (do-fetch uri)
 | 
			
		||||
    (case (and=> uri uri-scheme)
 | 
			
		||||
      ((http)
 | 
			
		||||
       (let ((requests (map (cut narinfo-request url <>) paths)))
 | 
			
		||||
| 
						 | 
				
			
			@ -589,7 +583,19 @@ if file doesn't exist, and the narinfo otherwise."
 | 
			
		|||
         (filter-map (cut narinfo-from-file <> url) files)))
 | 
			
		||||
      (else
 | 
			
		||||
       (leave (_ "~s: unsupported server URI scheme~%")
 | 
			
		||||
                   (if uri (uri-scheme uri) url)))))))
 | 
			
		||||
              (if uri (uri-scheme uri) url)))))
 | 
			
		||||
 | 
			
		||||
  (define cache-info
 | 
			
		||||
    (download-cache-info url))
 | 
			
		||||
 | 
			
		||||
  (and cache-info
 | 
			
		||||
       (if (string=? (cache-info-store-directory cache-info)
 | 
			
		||||
                     (%store-prefix))
 | 
			
		||||
           (do-fetch (string->uri url))
 | 
			
		||||
           (begin
 | 
			
		||||
             (warning (_ "'~a' uses different store '~a'; ignoring it~%")
 | 
			
		||||
                      url (cache-info-store-directory cache-info))
 | 
			
		||||
             #f))))
 | 
			
		||||
 | 
			
		||||
(define (lookup-narinfos cache paths)
 | 
			
		||||
  "Return the narinfos for PATHS, invoking the server at CACHE when no
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue