summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorquentin@aristote.fr <quentin@aristote.fr>2023-08-24 15:46:13 +0200
committerquentin@aristote.fr <quentin@aristote.fr>2023-08-24 18:24:30 +0200
commit9227f864a66a39beeda1af3b9f9c9c356da7a001 (patch)
treed23fc20211cfce8a66cccc26972ce9deb0ee28a9
parentafcad6222a1e8bd6427e0ed1100bbd268de16475 (diff)
devenv: add languages.nix module
-rw-r--r--flake.lock73
-rw-r--r--flake.nix52
-rw-r--r--modules/devenv/default.nix3
-rw-r--r--modules/devenv/languages/default.nix3
-rw-r--r--modules/devenv/languages/nix.nix29
5 files changed, 69 insertions, 91 deletions
diff --git a/flake.lock b/flake.lock
deleted file mode 100644
index 050948a..0000000
--- a/flake.lock
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "nodes": {
- "flake-utils": {
- "inputs": {
- "systems": "systems"
- },
- "locked": {
- "lastModified": 1685518550,
- "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
- "type": "github"
- },
- "original": {
- "id": "flake-utils",
- "type": "indirect"
- }
- },
- "nixpkgs": {
- "locked": {
- "lastModified": 1685677062,
- "narHash": "sha256-zoHF7+HNwNwne2XEomphbdc4Y8tdWT16EUxUTXpOKpQ=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "95be94370d09f97f6af6a1df1eb9649b5260724e",
- "type": "github"
- },
- "original": {
- "id": "nixpkgs",
- "type": "indirect"
- }
- },
- "nur": {
- "locked": {
- "lastModified": 1685792665,
- "narHash": "sha256-cAicgkTAX9EVNOmJwt+SRRfvYzb47uEt7pRV57w6/yo=",
- "owner": "nix-community",
- "repo": "NUR",
- "rev": "b489b530f22ef9fc761eb9800df702b1cc438b55",
- "type": "github"
- },
- "original": {
- "id": "nur",
- "type": "indirect"
- }
- },
- "root": {
- "inputs": {
- "flake-utils": "flake-utils",
- "nixpkgs": "nixpkgs",
- "nur": "nur"
- }
- },
- "systems": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- }
- },
- "root": "root",
- "version": 7
-}
diff --git a/flake.nix b/flake.nix
index 1f6814b..3593497 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,24 +1,40 @@
{
- outputs = { self, flake-utils, nur, nixpkgs, ... }:
- {
+ inputs.devenv = {
+ url = "github:cachix/devenv";
+ inputs.nixpkgs.url = "nixpkgs";
+ };
+
+ outputs = { self, nur, nixpkgs, flake-parts, devenv, ... }@inputs: flake-parts.lib.mkFlake { inherit inputs; } {
+ imports = [ flake-parts.flakeModules.easyOverlay devenv.flakeModule ];
+ systems = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
+
+ flake = {
+ devenvModules.personal = import ./modules/devenv;
nixosModules.personal = import ./modules/nixos;
homeModules.personal = import ./modules/home-manager;
- overlays = {
- default = self.overlays.personal;
- personal = self: super:
- let personalPackages = import ./pkgs (super.extend nur.overlay);
- in {
- personal = (super.personal or { }) // personalPackages;
- lib = (super.lib or { }) // {
- personal = (super.lib.personal or { }) // personalPackages.lib;
- };
- };
+ # overlays.personal = self.overlays.default;
+ };
+
+ perSystem = { config, system, pkgs, lib, ... }: {
+ _module.args.pkgs = import nixpkgs {
+ inherit system;
+ overlays = [ nur.overlay ];
+ config = {};
};
- } // flake-utils.lib.eachDefaultSystem (system:
- let
- pkgs = import nixpkgs {
- inherit system;
- overlays = [ nur.overlay ];
+
+ overlayAttrs = {
+ inherit (lib.recursiveUpdate pkgs { personal = config.packages; lib.personal = config.packages.lib; }) personal lib;
};
- in { packages = import ./pkgs pkgs; });
+ packages = import ./pkgs pkgs;
+
+ devenv.shells.default = {
+ name = "my-nixpkgs";
+
+ imports = [ self.devenvModules.personal ];
+
+ languages.nix.enable = true;
+ };
+ };
+ };
+>>>>>>> Stashed changes
}
diff --git a/modules/devenv/default.nix b/modules/devenv/default.nix
new file mode 100644
index 0000000..273b94f
--- /dev/null
+++ b/modules/devenv/default.nix
@@ -0,0 +1,3 @@
+{
+ imports = [ ./languages ];
+}
diff --git a/modules/devenv/languages/default.nix b/modules/devenv/languages/default.nix
new file mode 100644
index 0000000..2f4fc86
--- /dev/null
+++ b/modules/devenv/languages/default.nix
@@ -0,0 +1,3 @@
+{
+ imports = [ ./nix.nix ];
+}
diff --git a/modules/devenv/languages/nix.nix b/modules/devenv/languages/nix.nix
new file mode 100644
index 0000000..6db3af4
--- /dev/null
+++ b/modules/devenv/languages/nix.nix
@@ -0,0 +1,29 @@
+{
+ config,
+ options,
+ lib,
+ pkgs,
+ devenv,
+ ...
+}: let
+ cfg = config.languages.nix;
+in {
+ disabledModules = ["${devenv}/src/modules/languages/nix.nix"];
+
+ options.languages.nix = {
+ enable = lib.mkEnableOption "tools for nix development";
+ formatter = lib.mkPackageOption pkgs "nix formatter" {
+ default = ["alejandra"];
+ };
+ packaging.enable = lib.mkEnableOption "tools for writing nix derivations";
+ };
+
+ config = {
+ packages = lib.mkIf cfg.enable (with pkgs; [cfg.formatter deadnix] ++ lib.optionals cfg.packaging.enable [nix-prefetch-scripts nix-prefetch-github]);
+
+ pre-commit.hooks = {
+ deadnix.enable = lib.mkDefault true;
+ "${cfg.formatter.pname}".enable = lib.mkDefault true;
+ };
+ };
+}