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
|
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
|
printRegistration=1 perl $pathsFromGraph closure-* > nix-path-registration
|
||||||
echo "nix-path-registration=nix-path-registration" >> pathlist
|
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