forked from mirrors/nixpkgs
* A function for generating squashfs filesystem images.
svn path=/nixos/branches/modular-nixos/; revision=15926
This commit is contained in:
parent
262ddf0854
commit
27230eed8e
|
@ -52,7 +52,8 @@ for i in $storePaths; do
|
|||
done
|
||||
|
||||
|
||||
# Also put a nix-pull manifest of the closures on the CD.
|
||||
# Also include a manifest of the closures in a format suitable for
|
||||
# nix-store --load-db.
|
||||
printRegistration=1 perl $pathsFromGraph closure-* > nix-path-registration
|
||||
echo "nix-path-registration=nix-path-registration" >> pathlist
|
||||
|
||||
|
|
30
lib/make-squashfs.nix
Normal file
30
lib/make-squashfs.nix
Normal file
|
@ -0,0 +1,30 @@
|
|||
{ stdenv, squashfsTools, perl, pathsFromGraph
|
||||
|
||||
, # The root directory of the squashfs filesystem is filled with the
|
||||
# closures of the Nix store paths listed here.
|
||||
storeContents ? []
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "squashfs.img";
|
||||
|
||||
buildInputs = [perl squashfsTools];
|
||||
|
||||
# For obtaining the closure of `storeContents'.
|
||||
exportReferencesGraph =
|
||||
map (x: [("closure-" + baseNameOf x) x]) storeContents;
|
||||
|
||||
buildCommand =
|
||||
''
|
||||
# Add the closures of the top-level store objects.
|
||||
storePaths=$(perl ${pathsFromGraph} closure-*)
|
||||
|
||||
# Also include a manifest of the closures in a format suitable
|
||||
# for nix-store --load-db.
|
||||
printRegistration=1 perl ${pathsFromGraph} closure-* > nix-path-registration
|
||||
|
||||
# Generate the squashfs image.
|
||||
mksquashfs nix-path-registration $storePaths $out \
|
||||
-keep-as-directory -all-root
|
||||
'';
|
||||
}
|
Loading…
Reference in a new issue