nixpkgs-suyu/test/make-initrd.sh
Eelco Dolstra 707dd20538 * Make device nodes in the stage 1 init (copied from ../init.sh).
svn path=/nixu/trunk/; revision=6932
2006-11-02 23:58:06 +00:00

20 lines
638 B
Bash

source $stdenv/setup
set -o pipefail
# Get the paths in the closure of `packages'. Unfortunately, the only
# way to get the closure is to call Nix, which is strictly speaking
# forbidden. But we do it anyway. In time, we should add a feature
# to Nix to let Nix pass closures to builders.
packagesClosure=$(/nix/bin/nix-store -qR $packages $init)
# Paths in cpio archives *must* be relative, otherwise the kernel
# won't unpack 'em.
mkdir root
cd root
cp -prd --parents $packagesClosure .
# Put the closure in a gzipped cpio archive.
ensureDir $out
ln -s $init init
find * -print0 | cpio -ov -H newc --null | gzip -9 > $out/initrd