Skip to content

Commit 8e98f01

Browse files
committed
feat(cache): add cache os
1 parent 9bb76c2 commit 8e98f01

File tree

5 files changed

+59
-8
lines changed

5 files changed

+59
-8
lines changed

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22

33
[![Test](https://github.com/klarkc/os/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/klarkc/os/actions/workflows/test.yml?query=branch%3Amain)
44

5-
This is my brand new attempt to use NixOS as my personal OS.
5+
Personal collection of NixOS machines.
6+

flake.nix

+8-4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
else
2424
nixosSystem options;
2525
# TODO: find a faster way to run vm in devShell
26-
mkRecoverVm = efi: name: args: pkgs.writeShellApplication {
26+
mkVirtualMachine = efi: name: args: pkgs.writeShellApplication {
2727
name = "${name}-vm";
2828
text = ''
2929
IMG="${name}-efi.img"
@@ -47,19 +47,23 @@
4747
{
4848
nixosConfigurations = {
4949
inherit (machines.recover) recover-os;
50+
inherit (machines.cache) cache-os;
5051
};
5152

5253
packages.${system} = {
5354
inherit (machines.recover) recover-efi recover-vm recover-kvm;
55+
inherit (machines.cache) cache-efi cache-vm cache-kvm;
5456
};
5557

5658
devShells.${system}.default =
5759
pkgs.mkShell
5860
{
5961
packages =
60-
with machines.recover; [
61-
recover-vm
62-
recover-kvm
62+
with machines; [
63+
recover.recover-vm
64+
recover.recover-kvm
65+
cache.cache-vm
66+
cache.cache-kvm
6367
];
6468

6569
};

machines/cache/default.nix

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{ system, lib, pkgs, ... }:
2+
let
3+
inherit (lib) mkSystem mkVirtualMachine;
4+
inherit (pkgs.lib) mkDefault;
5+
cache-module = {
6+
networking = {
7+
hostName = "cache-os";
8+
networkmanager.enable = true;
9+
};
10+
boot = {
11+
kernelParams = [
12+
"copytoram"
13+
"console=ttyS0,115200"
14+
"console=tty1"
15+
"boot.shell_on_fail"
16+
];
17+
loader = {
18+
timeout = 15;
19+
grub = {
20+
enable = true;
21+
device = "nodev";
22+
efiSupport = true;
23+
useOSProber = true;
24+
};
25+
};
26+
};
27+
fileSystems."/".device = mkDefault "none";
28+
};
29+
in
30+
rec {
31+
cache-os = mkSystem {
32+
inherit system;
33+
modules = [ cache-module ];
34+
};
35+
36+
cache-efi = mkSystem {
37+
inherit system;
38+
modules = [ cache-module ];
39+
format = "raw-efi";
40+
};
41+
42+
cache-vm = mkVirtualMachine cache-efi "cache" "";
43+
44+
cache-kvm = mkVirtualMachine cache-efi "cache" "--enable-kvm";
45+
}

machines/default.nix

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
ctx:
22
{
33
recover = import ./recover ctx;
4+
cache = import ./cache ctx;
45
}

machines/recover/default.nix

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{ system, lib, pkgs, ... }:
22
let
3-
inherit (lib) mkSystem mkRecoverVm;
3+
inherit (lib) mkSystem mkVirtualMachine;
44
inherit (pkgs.lib) mkDefault;
55
recover-module = {
66
nix = {
@@ -132,7 +132,7 @@ rec {
132132
format = "raw-efi";
133133
};
134134

135-
recover-vm = mkRecoverVm recover-efi "recover" "";
135+
recover-vm = mkVirtualMachine recover-efi "recover" "";
136136

137-
recover-kvm = mkRecoverVm recover-efi "recover" "--enable-kvm";
137+
recover-kvm = mkVirtualMachine recover-efi "recover" "--enable-kvm";
138138
}

0 commit comments

Comments
 (0)