summaryrefslogtreecommitdiffstats
path: root/install.nix
diff options
context:
space:
mode:
Diffstat (limited to 'install.nix')
-rw-r--r--install.nix40
1 files changed, 40 insertions, 0 deletions
diff --git a/install.nix b/install.nix
new file mode 100644
index 0000000..3217cb5
--- /dev/null
+++ b/install.nix
@@ -0,0 +1,40 @@
+{ config, lib, pkgs, ... }:
+
+{
+ imports = [
+ <nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix>
+ <nixpkgs/nixos/modules/installer/cd-dvd/channel.nix>
+ <stockholm/krebs/5pkgs>
+ ./base.nix
+ ];
+
+ environment.systemPackages = [
+ (pkgs.writeDashBin "ni-format" ''
+ set -efux
+ ${pkgs.parted}/bin/parted ${config.ni-disk} mktable msdos
+ ${pkgs.parted}/bin/parted ${config.ni-disk} mkpart primary 1MiB 100%
+ ${pkgs.parted}/bin/parted ${config.ni-disk} print
+ ${pkgs.btrfs-progs}/bin/mkfs.btrfs ${config.ni-disk}-part1
+ '')
+
+ (pkgs.writeDashBin "ni-mount" ''
+ set -efux
+ if ! ${pkgs.utillinux}/bin/mountpoint /mnt; then
+ ${pkgs.coreutils}/bin/install -m 0000 -d /mnt
+ ${pkgs.utillinux}/bin/mount ${config.ni-disk}-part1 /mnt
+ fi
+ if ! ${pkgs.utillinux}/bin/mountpoint ${config.ni-path}; then
+ ${pkgs.coreutils}/bin/install -m 0700 -d /mnt${config.ni-path}
+ ${pkgs.coreutils}/bin/install -m 0000 -d ${config.ni-path}
+ ${pkgs.utillinux}/bin/mount --bind /mnt${config.ni-path} ${config.ni-path}
+ ${pkgs.coreutils}/bin/touch /mnt/${config.ni-path}/.populate
+ fi
+ '')
+
+ # TODO ni-upload-iso
+ ];
+
+ isoImage.isoName = "ni-install.iso";
+ isoImage.volumeID = "NI_INSTALL_ISO";
+ networking.hostName = "ni-install";
+}