mirror of
https://codeberg.org/27/inception-of-things.git
synced 2025-08-11 20:12:53 +02:00
♻️ refactor: better vm handling, no more scripts, we're true nix elitists here
Signed-off-by: xtrm <oss@xtrm.me>
This commit is contained in:
@ -1,4 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
rm -v nixos.qcow2
|
|
||||||
rm -vfr result
|
|
@ -1,4 +1,10 @@
|
|||||||
{ config, pkgs, modulesPath, hostname, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
hostname,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
35
vm/flake.nix
35
vm/flake.nix
@ -47,14 +47,37 @@
|
|||||||
apps = forAllSystems (
|
apps = forAllSystems (
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
vm = {
|
pkgs = import nixpkgs { inherit system; };
|
||||||
type = "app";
|
lib = pkgs.lib;
|
||||||
program = "${self.packages.${system}.vm}/bin/run-${hostname}-vm";
|
selfPkgs = self.packages.${system};
|
||||||
programArgs = [ "-enable-kvm" ];
|
in
|
||||||
};
|
rec {
|
||||||
|
vm =
|
||||||
|
let
|
||||||
|
scriptName = "run-${hostname}-vm";
|
||||||
|
script = pkgs.writeShellScriptBin "${scriptName}" ''
|
||||||
|
${selfPkgs.vm}/bin/run-${hostname}-vm \
|
||||||
|
-enable-kvm \
|
||||||
|
-virtfs local,path=$(${pkgs.coreutils}/bin/pwd)/..,mount_tag=host0,security_model=passthrough,id=host0
|
||||||
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
inherit vm;
|
type = "app";
|
||||||
|
program = "${script}/bin/${scriptName}";
|
||||||
|
};
|
||||||
|
|
||||||
|
clean =
|
||||||
|
let
|
||||||
|
scriptName = "clean-${hostname}-vm";
|
||||||
|
script = pkgs.writeShellScriptBin "${scriptName}" ''
|
||||||
|
${pkgs.coreutils}/bin/rm -rfv result ${hostname}.qcow2
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
type = "app";
|
||||||
|
program = "${script}/bin/${scriptName}";
|
||||||
|
};
|
||||||
|
|
||||||
default = vm;
|
default = vm;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user