diff options
| author | nzbr <mail@nzbr.de> | 2022-02-01 04:01:13 +0100 |
|---|---|---|
| committer | nzbr <mail@nzbr.de> | 2022-02-01 04:01:13 +0100 |
| commit | 4262e1f600ca3d8317f095bb8e511e5243fe0238 (patch) | |
| tree | 501bc65aaefa7bd60553ae7eec76b4b0e8950925 | |
| parent | a487bcf303bffb418edda23c9e5ec1d5dbf739c3 (diff) | |
move build-tarball to a flake module
| -rw-r--r-- | configuration.nix | 6 | ||||
| -rw-r--r-- | default.nix | 13 | ||||
| -rw-r--r-- | flake.lock | 17 | ||||
| -rw-r--r-- | flake.nix | 19 | ||||
| -rw-r--r-- | modules/build-tarball.nix (renamed from build-tarball.nix) | 18 | ||||
| -rw-r--r-- | nixos.nix | 7 |
6 files changed, 60 insertions, 20 deletions
diff --git a/configuration.nix b/configuration.nix index c64aa06..05df82f 100644 --- a/configuration.nix +++ b/configuration.nix @@ -5,10 +5,13 @@ let defaultUser = "nixos"; automountPath = "/mnt"; syschdemd = import ./syschdemd.nix { inherit lib pkgs config defaultUser; }; + nixos-wsl = import ./default.nix; in { - imports = [ + imports = with nixos-wsl.nixosModules; [ "${modulesPath}/profiles/minimal.nix" + + build-tarball ]; # WSL is closer to a container than anything else @@ -68,4 +71,5 @@ in ${pkgs.rsync}/bin/rsync -ar --delete $systemConfig/sw/share/$x/. /usr/share/$x done ''; + }; } diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..873ece4 --- /dev/null +++ b/default.nix @@ -0,0 +1,13 @@ +(import + ( + let + lock = builtins.fromJSON (builtins.readFile ./flake.lock); + in + fetchTarball { + url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; + sha256 = lock.nodes.flake-compat.locked.narHash; + } + ) + { + src = ./.; + }).defaultNix @@ -1,5 +1,21 @@ { "nodes": { + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1641205782, + "narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-utils": { "locked": { "lastModified": 1623875721, @@ -32,6 +48,7 @@ }, "root": { "inputs": { + "flake-compat": "flake-compat", "flake-utils": "flake-utils", "nixpkgs": "nixpkgs" } @@ -1,19 +1,30 @@ { description = "NixOS WSL"; - inputs.nixpkgs.url = "nixpkgs/nixos-20.09"; - inputs.flake-utils.url = "github:numtide/flake-utils"; + inputs = { + nixpkgs.url = "nixpkgs/nixos-20.09"; + flake-utils.url = "github:numtide/flake-utils"; + + flake-compat = { + url = "github:edolstra/flake-compat"; + flake = false; + }; + }; outputs = { self, nixpkgs, flake-utils, ... }: { + nixosModules = { + build-tarball = import ./modules/build-tarball.nix; + }; + nixosConfigurations.mysystem = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ - (import ./configuration.nix) - (import ./build-tarball.nix) + ./configuration.nix ]; specialArgs = { inherit nixpkgs; }; }; + } // flake-utils.lib.eachDefaultSystem (system: let diff --git a/build-tarball.nix b/modules/build-tarball.nix index cbeb1dd..c91e9c5 100644 --- a/build-tarball.nix +++ b/modules/build-tarball.nix @@ -1,6 +1,5 @@ -{ config, pkgs, lib, nixpkgs ? <nixpkgs>, ... }: - -with lib; +{ config, pkgs, lib, ... }: +with builtins; with lib; let pkgs2storeContents = l: map (x: { object = x; symlink = "none"; }) l; @@ -15,9 +14,9 @@ let if [ ! -e $out/nixos/nixpkgs ]; then ln -s . $out/nixos/nixpkgs fi - echo -n ${config.system.nixos.revision} > $out/nixos/.git-revision - echo -n ${config.system.nixos.versionSuffix} > $out/nixos/.version-suffix - echo ${config.system.nixos.versionSuffix} | sed -e s/pre// > $out/nixos/svn-revision + echo -n ${toString config.system.nixos.revision} > $out/nixos/.git-revision + echo -n ${toString config.system.nixos.versionSuffix} > $out/nixos/.version-suffix + echo ${toString config.system.nixos.versionSuffix} | sed -e s/pre// > $out/nixos/svn-revision ''; preparer = pkgs.writeShellScriptBin "wsl-prepare" '' @@ -49,16 +48,17 @@ let # Copy the system configuration mkdir -p ./etc/nixos - cp ${./configuration.nix} ./etc/nixos/configuration.nix - cp ${./syschdemd.nix} ./etc/nixos/syschdemd.nix - cp ${./syschdemd.sh} ./etc/nixos/syschdemd.sh + cp -R ${../.}/. ./etc/nixos/ ''; + in { system.build.tarball = pkgs.callPackage "${nixpkgs}/nixos/lib/make-system-tarball.nix" { # No contents, structure will be added by prepare script contents = [ ]; + fileName = "nixos-wsl-${config.system.nixos.release}-${pkgs.hostPlatform.system}"; + storeContents = pkgs2storeContents [ config.system.build.toplevel channelSources @@ -2,12 +2,7 @@ # nix-build -A system -A config.system.build.tarball ./nixos.nix import <nixpkgs/nixos> { - configuration = { - imports = [ - ./configuration.nix - ./build-tarball.nix - ]; - }; + configuration = import ./configuration.nix; system = "x86_64-linux"; } |
