summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTerje Larsen <terlar@gmail.com>2023-06-19 01:27:08 +0000
committerTerje Larsen <terlar@gmail.com>2023-06-21 00:25:29 +0000
commit3fa010339bbf38f92ff468b8718dc22abead4fdd (patch)
tree214ebda24c3b657272ec26042ebd6e6a2b4a7192
parenta8486b5d191f11d571f15d80b6e265d1712d01cf (diff)
Allow customizing the system config to include in the tarball
-rw-r--r--modules/build-tarball.nix30
1 files changed, 20 insertions, 10 deletions
diff --git a/modules/build-tarball.nix b/modules/build-tarball.nix
index 5eba52d..9aff779 100644
--- a/modules/build-tarball.nix
+++ b/modules/build-tarball.nix
@@ -1,6 +1,8 @@
{ config, pkgs, lib, ... }:
with builtins; with lib;
let
+ cfg = config.wsl.tarball;
+
pkgs2storeContents = l: map (x: { object = x; symlink = "none"; }) l;
nixpkgs = lib.cleanSource pkgs.path;
@@ -19,7 +21,7 @@ let
echo ${toString config.system.nixos.versionSuffix} | sed -e s/pre// > $out/nixos/svn-revision
'';
- preparer = pkgs.writeShellScriptBin "wsl-prepare" ''
+ preparer = pkgs.writeShellScriptBin "wsl-prepare" (''
set -e
mkdir -m 0755 ./bin ./etc
@@ -49,15 +51,17 @@ let
# Write wsl.conf so that it is present when NixOS is started for the first time
cp ${config.environment.etc."wsl.conf".source} ./etc/wsl.conf
- ${lib.optionalString config.wsl.tarball.includeConfig ''
- # Copy the system configuration
- mkdir -p ./etc/nixos/nixos-wsl
- cp -R ${lib.cleanSource ../.}/. ./etc/nixos/nixos-wsl
- mv ./etc/nixos/nixos-wsl/configuration.nix ./etc/nixos/configuration.nix
- # Patch the import path to avoid having a flake.nix in /etc/nixos
- sed -i 's|import \./default\.nix|import \./nixos-wsl|' ./etc/nixos/configuration.nix
- ''}
- '';
+ '' + lib.optionalString cfg.includeConfig (if cfg.configPath == null then ''
+ # Copy the system configuration
+ mkdir -p ./etc/nixos/nixos-wsl
+ cp -R ${lib.cleanSource ../.}/. ./etc/nixos/nixos-wsl
+ mv ./etc/nixos/nixos-wsl/configuration.nix ./etc/nixos/configuration.nix
+ # Patch the import path to avoid having a flake.nix in /etc/nixos
+ sed -i 's|import \./default\.nix|import \./nixos-wsl|' ./etc/nixos/configuration.nix
+ '' else ''
+ mkdir -p ./etc/nixos
+ cp -R ${lib.cleanSource cfg.configPath}/. ./etc/nixos
+ ''));
in
{
@@ -68,6 +72,12 @@ in
default = true;
description = "Whether or not to copy the system configuration into the tarball";
};
+
+ configPath = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = "Path to system configuration which is copied into the tarball";
+ };
};