33 lines
776 B
Nix
33 lines
776 B
Nix
|
# Inspired by https://www.srid.ca/2012301.html
|
||
|
|
||
|
{ options, config, lib, pkgs, ... }:
|
||
|
|
||
|
with lib;
|
||
|
with lib.my;
|
||
|
let cfg = config.modules.desktop.vm.lxd;
|
||
|
in {
|
||
|
options.modules.desktop.vm.lxd = {
|
||
|
enable = mkBoolOpt false;
|
||
|
};
|
||
|
|
||
|
config = mkIf cfg.enable {
|
||
|
virtualisation.lxd.enable = true;
|
||
|
|
||
|
user.packages = [
|
||
|
(pkgs.writeScriptBin "lxc-build-nixos-image" ''
|
||
|
#!/usr/bin/env nix-shell
|
||
|
#!nix-shell -i bash -p nixos-generators
|
||
|
set -xe
|
||
|
config=$1
|
||
|
metaimg=`nixos-generate -f lxc-metadata \
|
||
|
| xargs -r cat \
|
||
|
| awk '{print $3}'`
|
||
|
img=`nixos-generate -c $config -f lxc \
|
||
|
| xargs -r cat \
|
||
|
| awk '{print $3}'`
|
||
|
lxc image import --alias nixos $metaimg $img
|
||
|
'')
|
||
|
];
|
||
|
};
|
||
|
}
|