forked from DGNum/liminix
move all remaining pseudofiles to base module
This commit is contained in:
parent
797aa30c47
commit
e40a91fca0
3 changed files with 24 additions and 26 deletions
|
@ -8,28 +8,6 @@
|
|||
, writeText
|
||||
} : config :
|
||||
let
|
||||
pseudofiles = writeText "pseudofiles" ''
|
||||
/ d 0755 0 0
|
||||
/bin d 0755 0 0
|
||||
/etc d 0755 0 0
|
||||
/run d 0755 0 0
|
||||
/dev d 0755 0 0
|
||||
/dev/null c 0666 root root 1 3
|
||||
/dev/zero c 0666 root root 1 5
|
||||
/dev/tty1 c 0777 root root 4 1
|
||||
/dev/tty2 c 0777 root root 4 2
|
||||
/dev/tty3 c 0777 root root 4 3
|
||||
/dev/tty4 c 0777 root root 4 4
|
||||
/dev/tty c 0777 root root 5 0
|
||||
/dev/console c 0600 root root 5 1
|
||||
/proc d 0555 root root
|
||||
/sys d 0555 root root
|
||||
/dev/pts d 0755 0 0
|
||||
/etc/init.d d 0755 0 0
|
||||
/bin/sh s 0755 0 0 ${busybox}/bin/sh
|
||||
/bin/busybox s 0755 0 0 ${busybox}/bin/busybox
|
||||
'';
|
||||
|
||||
config-pseudofiles = pseudofile.write "config.etc"
|
||||
(config.environment.contents);
|
||||
|
||||
|
@ -37,16 +15,15 @@ let
|
|||
# add pseudofiles as packages to store so that the packages they
|
||||
# depend on are also added
|
||||
storeContents = [
|
||||
pseudofiles
|
||||
config-pseudofiles
|
||||
] ++ config.packages ;
|
||||
};
|
||||
in runCommand "frob-squashfs" {
|
||||
nativeBuildInputs = with buildPackages; [ squashfsTools qprint ];
|
||||
} ''
|
||||
} ''
|
||||
cp ${storefs} ./store.img
|
||||
chmod +w store.img
|
||||
mksquashfs - store.img -no-recovery -quiet -no-progress -root-becomes store -p "/ d 0755 0 0"
|
||||
mksquashfs - store.img -no-recovery -quiet -no-progress -root-becomes nix -pf ${pseudofiles} -pf ${config-pseudofiles}
|
||||
mksquashfs - store.img -no-recovery -quiet -no-progress -root-becomes nix -p "/ d 0755 0 0" -pf ${config-pseudofiles}
|
||||
cp store.img $out
|
||||
''
|
||||
''
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
let
|
||||
inherit (lib) mkEnableOption mkOption types isDerivation hasAttr ;
|
||||
inherit (pkgs.pseudofile) dir symlink;
|
||||
inherit (pkgs) busybox;
|
||||
|
||||
type_service = types.package // {
|
||||
name = "service";
|
||||
|
@ -31,6 +32,19 @@ in {
|
|||
};
|
||||
config = {
|
||||
environment = dir {
|
||||
bin = dir {
|
||||
sh = symlink "${busybox}/bin/sh";
|
||||
busybox = symlink "${busybox}/bin/busybox";
|
||||
};
|
||||
dev =
|
||||
let node = type: major: minor: mode : { inherit type major minor mode; };
|
||||
in dir {
|
||||
null = node "c" "1" "3" "0666";
|
||||
zero = node "c" "1" "5" "0666";
|
||||
tty = node "c" "5" "0" "0666";
|
||||
console = node "c" "5" "1" "0600";
|
||||
pts = dir {};
|
||||
};
|
||||
etc = dir {
|
||||
profile = symlink
|
||||
(pkgs.writeScript ".profile" ''
|
||||
|
@ -40,6 +54,9 @@ in {
|
|||
passwd = { file = "root::0:0:root:/:/bin/sh\n"; };
|
||||
group = { file = "root::0:\n"; };
|
||||
};
|
||||
proc = dir {};
|
||||
run = dir {};
|
||||
sys = dir {};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -21,6 +21,10 @@ let
|
|||
else if attrs'.type == "d" then
|
||||
(visit "${prefix}/${filename}" attrs.contents) +
|
||||
"\n" + line
|
||||
else if attrs'.type == "c" then
|
||||
with attrs'; "${line} ${major} ${minor}"
|
||||
else if attrs'.type == "b" then
|
||||
with attrs'; "${line} ${major} ${minor}"
|
||||
else if attrs'.type == "s" then
|
||||
"${line} ${attrs'.target}"
|
||||
else if attrs'.type == "l" then
|
||||
|
|
Loading…
Reference in a new issue