mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 06:53:01 +00:00
vm/windows: Generate mounts from an attribute set.
This is mainly to make it easier to quickly change mappings, without making room for errors such as typos. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
This commit is contained in:
parent
5258bbe4c9
commit
707b7ad1bd
@ -16,18 +16,28 @@ let
|
||||
];
|
||||
});
|
||||
|
||||
runAndSuspend = runInVM "winvm.img" {
|
||||
command = lib.concatStringsSep " && " [
|
||||
"net config server /autodisconnect:-1"
|
||||
"net use S: '\\\\192.168.0.2\\nixstore' /persistent:yes"
|
||||
"net use X: '\\\\192.168.0.2\\xchg' /persistent:yes"
|
||||
"mkdir -p /nix/store"
|
||||
"mount -o bind /cygdrive/s /nix/store"
|
||||
"echo /cygdrive/s /nix/store none bind 0 0 >> /etc/fstab"
|
||||
"mkdir -p /tmp/xchg"
|
||||
"mount -o bind /cygdrive/x /tmp/xchg"
|
||||
"echo /cygdrive/x /tmp/xchg none bind 0 0 >> /etc/fstab"
|
||||
runAndSuspend = let
|
||||
drives = {
|
||||
s = {
|
||||
source = "nixstore";
|
||||
target = "/nix/store";
|
||||
};
|
||||
x = {
|
||||
source = "xchg";
|
||||
target = "/tmp/xchg";
|
||||
};
|
||||
};
|
||||
|
||||
genDriveCmds = letter: { source, target }: [
|
||||
"net use ${letter}: '\\\\192.168.0.2\\${source}' /persistent:yes"
|
||||
"mkdir -p '${target}'"
|
||||
"mount -o bind '/cygdrive/${letter}' '${target}'"
|
||||
"echo '/cygdrive/${letter} ${target} none bind 0 0' >> /etc/fstab"
|
||||
];
|
||||
in runInVM "winvm.img" {
|
||||
command = lib.concatStringsSep " && " ([
|
||||
"net config server /autodisconnect:-1"
|
||||
] ++ lib.concatLists (lib.mapAttrsToList genDriveCmds drives));
|
||||
suspendTo = "state.gz";
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user