aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/interactive/vm.nix
diff options
context:
space:
mode:
Diffstat (limited to 'test/interactive/vm.nix')
-rw-r--r--test/interactive/vm.nix55
1 files changed, 55 insertions, 0 deletions
diff --git a/test/interactive/vm.nix b/test/interactive/vm.nix
new file mode 100644
index 00000000..c1239a64
--- /dev/null
+++ b/test/interactive/vm.nix
@@ -0,0 +1,55 @@
+{
+ virtualisation.vmVariant.virtualisation = {
+ memorySize = 4096;
+ qemu.options = [
+ "-vga none -device virtio-gpu-pci"
+ "-smp 8"
+ ];
+
+ mountHostNixStore = true;
+ writableStore = true;
+ writableStoreUseTmpfs = false;
+
+ sharedDirectories = {
+ cwd = {
+ target = "/mnt/.ro-cwd";
+ source = ''"$OLDPWD"'';
+ securityModel = "none";
+ };
+ };
+
+ fileSystems = {
+ "/mnt/.ro-cwd".options = [
+ "ro"
+ "noatime"
+ ];
+ "/mnt/cwd".overlay = {
+ lowerdir = [ "/mnt/.ro-cwd" ];
+ upperdir = "/tmp/.cwd/upper";
+ workdir = "/tmp/.cwd/work";
+ };
+
+ "/mnt/src".overlay = {
+ lowerdir = [ ../.. ];
+ upperdir = "/tmp/.src/upper";
+ workdir = "/tmp/.src/work";
+ };
+ };
+ };
+
+ systemd.services = {
+ logrotate-checkconf.enable = false;
+ hakurei-src-fix-ownership = {
+ wantedBy = [ "multi-user.target" ];
+ wants = [ "mnt-src.mount" ];
+ after = [ "mnt-src.mount" ];
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ };
+ script = ''
+ chown -R alice:users /mnt/src/
+ '';
+ };
+ };
+}