move build-tarball to a flake module

This commit is contained in:
nzbr
2022-02-01 04:01:13 +01:00
parent a487bcf303
commit 4262e1f600
6 changed files with 60 additions and 20 deletions
+5 -1
View File
@@ -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
'';
};
}
+13
View File
@@ -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
Generated
+17
View File
@@ -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"
}
+15 -4
View File
@@ -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
@@ -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
+1 -6
View File
@@ -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";
}