| 
									
										
										
										
											2018-02-07 16:50:47 +01:00
										 |  |  | { stdenv, squashfsTools, closureInfo | 
					
						
							| 
									
										
										
										
											2009-06-10 13:40:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | , # The root directory of the squashfs filesystem is filled with the | 
					
						
							|  |  |  |   # closures of the Nix store paths listed here. | 
					
						
							|  |  |  |   storeContents ? [] | 
					
						
							| 
									
										
										
										
											2019-01-17 15:24:44 +02:00
										 |  |  | , # Compression parameters. | 
					
						
							|  |  |  |   # For zstd compression you can use "zstd -Xcompression-level 6". | 
					
						
							|  |  |  |   comp ? "xz -Xdict-size 100%" | 
					
						
							| 
									
										
										
										
											2009-06-10 13:40:35 +00:00
										 |  |  | }: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | stdenv.mkDerivation { | 
					
						
							|  |  |  |   name = "squashfs.img"; | 
					
						
							| 
									
										
										
										
											2011-09-14 18:20:50 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:50:47 +01:00
										 |  |  |   nativeBuildInputs = [ squashfsTools ]; | 
					
						
							| 
									
										
										
										
											2009-06-10 13:40:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   buildCommand = | 
					
						
							|  |  |  |     ''
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:50:47 +01:00
										 |  |  |       closureInfo=${closureInfo { rootPaths = storeContents; }} | 
					
						
							| 
									
										
										
										
											2017-12-03 03:37:45 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-10 13:40:35 +00:00
										 |  |  |       # Also include a manifest of the closures in a format suitable | 
					
						
							|  |  |  |       # for nix-store --load-db. | 
					
						
							| 
									
										
										
										
											2018-02-07 16:50:47 +01:00
										 |  |  |       cp $closureInfo/registration nix-path-registration | 
					
						
							| 
									
										
										
										
											2009-06-10 13:40:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |       # Generate the squashfs image. | 
					
						
							| 
									
										
										
										
											2018-02-07 16:50:47 +01:00
										 |  |  |       mksquashfs nix-path-registration $(cat $closureInfo/store-paths) $out \ | 
					
						
							| 
									
										
										
										
											2019-01-17 15:24:44 +02:00
										 |  |  |         -keep-as-directory -all-root -b 1048576 -comp ${comp} | 
					
						
							| 
									
										
										
										
											2009-06-10 13:40:35 +00:00
										 |  |  |     '';
 | 
					
						
							|  |  |  | } |