Merge branch 'nur' into template

This commit is contained in:
Timothy DeHerrera 2020-01-10 00:41:03 -07:00
commit 48afb873c1
No known key found for this signature in database
GPG Key ID: 8985725DB5B0C122
5 changed files with 51 additions and 6 deletions

View File

@ -1,7 +1,9 @@
# Introduction
A NixOS configuration template using the experimental [flakes][rfc] mechanism.
Its aim is to provide a generic repository which neatly separates concerns
and allows one to get up and running with NixOS faster than ever.
and allows one to get up and running with NixOS faster than ever. In addition,
conveniences like [home-manager][home-manager] and [NUR][nur] are wired in by
default to help make life easier.
Flakes are still an experimental feature, but once they finally get merged
even more will become possible, i.e. [nixops](https://nixos.org/nixops)
@ -35,7 +37,6 @@ nixos-generate-config --show-hardware-config > ./hosts/${new_host}.nix
# any ./profiles you may wish to try out.
$EDITOR ./hosts/${new_host}.nix
# backup existing config and ensure configuration lives in expected location
mv /etc/nixos /etc/nixos.old
ln -s $PWD /etc/nixos
@ -95,6 +96,26 @@ this flake exports multiple outputs for use in other flakes:
```
### NUR usage
You can use packages, modules and overlays from the
[Nix User Repository][nur].
For modules and overlays, you can pull them in via the new top-level arguements
`nurModules` and `nurOverlays`, respectively:
```nix
{ nurModules, nurOverlays, pkgs, ... }:
{
# ...
imports = [ nurModules."${nur-username}.modules.${aModule}" ];
nixpkgs.overlays = [ nurOverlays."${nur-username}".overlays."${anOverlay}" ];
}
```
Packages are installable the same way as without flakes via
`pkgs.nur."${nur-username}"."${aPackage}"`.
# Structure
The structure is here to keep things simple and clean. Anything sufficiently
@ -206,6 +227,7 @@ licenses of the respective packages.
[direnv]: https://direnv.net
[home-manager]: https://github.com/rycee/home-manager
[NixOS]: https://nixos.org
[nur]: https://github.com/nix-community/NUR
[old]: https://github.com/nrdxp/nixos
[pr]: https://github.com/NixOS/nixpkgs/pull/68897
[rfc]: https://github.com/tweag/rfcs/blob/flakes/rfcs/0049-flakes.md

View File

@ -1,7 +1,7 @@
# this file is an impure recreation of the flake profile currently deployed
# based on the systems hostname. The purpose is so tools which do not yet have
# flake support (e.g `nixos-option`), can work as expected.
{ lib, ... }:
{ lib, pkgs, ... }:
let
inherit (builtins) attrNames readDir;
@ -30,5 +30,12 @@ in {
nixpkgs.overlays = let
overlays = map (name: import (./overlays + "/${name}"))
(attrNames (readDir ./overlays));
in overlays;
in overlays ++ [
(final: prev: {
nur = import (builtins.fetchTarball
"https://github.com/nix-community/NUR/archive/master.tar.gz") {
inherit pkgs;
};
})
];
}

View File

@ -18,6 +18,19 @@
"narHash": "sha256-4p9gqMJTVmyH7eSq1euGZWusldWoBfKfi/VwZEPL2Mw=",
"originalUrl": "github:nrdxp/nixpkgs/fork",
"url": "github:nrdxp/nixpkgs/1e232452ed4c57e9968f4342d9ba044d36403928"
},
"nur": {
"inputs": {
"nixpkgs": {
"inputs": {},
"narHash": "sha256-4p9gqMJTVmyH7eSq1euGZWusldWoBfKfi/VwZEPL2Mw=",
"originalUrl": "nixpkgs",
"url": "github:nrdxp/nixpkgs/1e232452ed4c57e9968f4342d9ba044d36403928"
}
},
"narHash": "sha256-i+NZZWnhNcxl73e2FjfgKUn3sW42ZKiVeXNKv72MN14=",
"originalUrl": "github:nrdxp/NUR/flake",
"url": "github:nrdxp/NUR/c632e4112b19a1b2fa05242a8cc971091d12e154"
}
},
"version": 3

View File

@ -5,8 +5,9 @@
inputs.nixpkgs.url = "github:nrdxp/nixpkgs/fork";
inputs.home.url = "github:nrdxp/home-manager/flakes";
inputs.nur.url = "github:nrdxp/NUR/flake";
outputs = args@{ self, home, nixpkgs }:
outputs = args@{ self, home, nixpkgs, nur }:
let
inherit (builtins) listToAttrs baseNameOf attrNames readDir;
inherit (nixpkgs.lib) removeSuffix;

View File

@ -11,6 +11,8 @@ let
system = "x86_64-linux";
specialArgs.usr = utils;
specialArgs.nurModules = args.nur.nixosModules;
specialArgs.nurOverlays = args.nur.overlays;
modules = let
core = ../profiles/core.nix;
@ -24,7 +26,7 @@ let
];
system.configurationRevision = self.rev;
nixpkgs.overlays = self.overlays;
nixpkgs.overlays = self.overlays ++ [ args.nur.overlay ];
};
local = import "${toString ./.}/${this}.nix";