nix-channel: Add option to force fetching of manifests
This commit is contained in:
		
							parent
							
								
									b14717ab90
								
							
						
					
					
						commit
						c845c0ccad
					
				
					 2 changed files with 19 additions and 0 deletions
				
			
		|  | @ -364,6 +364,18 @@ build-use-chroot = /dev /proc /bin</programlisting> | |||
|   </varlistentry> | ||||
| 
 | ||||
| 
 | ||||
|   <varlistentry><term><literal>force-manifest</literal></term> | ||||
| 
 | ||||
|     <listitem><para>If this option is set to <literal>false</literal> | ||||
|     (default) and a Nix channel provides both a manifest and a binary | ||||
|     cache, only the binary cache will be used.  If set to | ||||
|     <literal>true</literal>, the manifest will be fetched as well. | ||||
|     This is useful if you want to use binary patches (which are | ||||
|     currently not supported by binary caches).</para></listitem> | ||||
| 
 | ||||
|   </varlistentry> | ||||
| 
 | ||||
| 
 | ||||
|   <varlistentry><term><literal>system</literal></term> | ||||
| 
 | ||||
|     <listitem><para>This option specifies the canonical Nix system | ||||
|  |  | |||
|  | @ -6,6 +6,8 @@ use File::Path qw(mkpath); | |||
| use Nix::Config; | ||||
| use Nix::Manifest; | ||||
| 
 | ||||
| Nix::Config::readConfig; | ||||
| 
 | ||||
| my $manifestDir = $Nix::Config::manifestDir; | ||||
| 
 | ||||
| 
 | ||||
|  | @ -102,10 +104,15 @@ sub update { | |||
|         # Check if the channel advertises a binary cache. | ||||
|         my $binaryCacheURL = `$Nix::Config::curl --silent '$url'/binary-cache-url`; | ||||
|         my $extraAttrs = ""; | ||||
|         my $getManifest = ($Nix::Config::config{"force-manifest"} // "false") eq "true"; | ||||
|         if ($? == 0 && $binaryCacheURL ne "") { | ||||
|             $extraAttrs .= "binaryCacheURL = \"$binaryCacheURL\"; "; | ||||
|             deleteOldManifests($origUrl, undef); | ||||
|         } else { | ||||
|             $getManifest = 1; | ||||
|         } | ||||
| 
 | ||||
|         if ($getManifest) { | ||||
|             # No binary cache, so pull the channel manifest. | ||||
|             mkdir $manifestDir, 0755 unless -e $manifestDir; | ||||
|             die "$0: you do not have write permission to `$manifestDir'!\n" unless -W $manifestDir; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue