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
|
, writeText
|
||||||
} : config :
|
} : config :
|
||||||
let
|
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-pseudofiles = pseudofile.write "config.etc"
|
||||||
(config.environment.contents);
|
(config.environment.contents);
|
||||||
|
|
||||||
|
@ -37,16 +15,15 @@ let
|
||||||
# add pseudofiles as packages to store so that the packages they
|
# add pseudofiles as packages to store so that the packages they
|
||||||
# depend on are also added
|
# depend on are also added
|
||||||
storeContents = [
|
storeContents = [
|
||||||
pseudofiles
|
|
||||||
config-pseudofiles
|
config-pseudofiles
|
||||||
] ++ config.packages ;
|
] ++ config.packages ;
|
||||||
};
|
};
|
||||||
in runCommand "frob-squashfs" {
|
in runCommand "frob-squashfs" {
|
||||||
nativeBuildInputs = with buildPackages; [ squashfsTools qprint ];
|
nativeBuildInputs = with buildPackages; [ squashfsTools qprint ];
|
||||||
} ''
|
} ''
|
||||||
cp ${storefs} ./store.img
|
cp ${storefs} ./store.img
|
||||||
chmod +w 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 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
|
cp store.img $out
|
||||||
''
|
''
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
let
|
let
|
||||||
inherit (lib) mkEnableOption mkOption types isDerivation hasAttr ;
|
inherit (lib) mkEnableOption mkOption types isDerivation hasAttr ;
|
||||||
inherit (pkgs.pseudofile) dir symlink;
|
inherit (pkgs.pseudofile) dir symlink;
|
||||||
|
inherit (pkgs) busybox;
|
||||||
|
|
||||||
type_service = types.package // {
|
type_service = types.package // {
|
||||||
name = "service";
|
name = "service";
|
||||||
|
@ -31,6 +32,19 @@ in {
|
||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
environment = dir {
|
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 {
|
etc = dir {
|
||||||
profile = symlink
|
profile = symlink
|
||||||
(pkgs.writeScript ".profile" ''
|
(pkgs.writeScript ".profile" ''
|
||||||
|
@ -40,6 +54,9 @@ in {
|
||||||
passwd = { file = "root::0:0:root:/:/bin/sh\n"; };
|
passwd = { file = "root::0:0:root:/:/bin/sh\n"; };
|
||||||
group = { file = "root::0:\n"; };
|
group = { file = "root::0:\n"; };
|
||||||
};
|
};
|
||||||
|
proc = dir {};
|
||||||
|
run = dir {};
|
||||||
|
sys = dir {};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,10 @@ let
|
||||||
else if attrs'.type == "d" then
|
else if attrs'.type == "d" then
|
||||||
(visit "${prefix}/${filename}" attrs.contents) +
|
(visit "${prefix}/${filename}" attrs.contents) +
|
||||||
"\n" + line
|
"\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
|
else if attrs'.type == "s" then
|
||||||
"${line} ${attrs'.target}"
|
"${line} ${attrs'.target}"
|
||||||
else if attrs'.type == "l" then
|
else if attrs'.type == "l" then
|
||||||
|
|
Loading…
Reference in a new issue