From 9036985ddeff2879202c24c72fda879352be9e99 Mon Sep 17 00:00:00 2001 From: Sk7Str1p3 Date: Sun, 19 Apr 2026 09:03:51 +0300 Subject: [PATCH] feat(devShells): shell for `nix` language --- .envrc | 1 + devShells/default.nix | 2 +- devShells/nix/.envrc | 1 + devShells/nix/default.nix | 20 ++++++++++++++++++++ devShells/nix/flake.nix | 25 +++++++++++++++++++++++++ 5 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 .envrc create mode 100644 devShells/nix/.envrc create mode 100644 devShells/nix/default.nix create mode 100644 devShells/nix/flake.nix diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..6a9b262 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake .#nix diff --git a/devShells/default.nix b/devShells/default.nix index 0fc55c9..88586a9 100644 --- a/devShells/default.nix +++ b/devShells/default.nix @@ -3,7 +3,7 @@ /** Isolated environments for convenient software development. Provides shells for all languages I use: - - ~~❄️ [Nix]~~ (not yet) + - ❄️ [Nix](./devShells/nix.md) - ~~🦀 Rust~~ (not yet) - ~~🐍 Python~~ (not yet) diff --git a/devShells/nix/.envrc b/devShells/nix/.envrc new file mode 100644 index 0000000..8392d15 --- /dev/null +++ b/devShells/nix/.envrc @@ -0,0 +1 @@ +use flake \ No newline at end of file diff --git a/devShells/nix/default.nix b/devShells/nix/default.nix new file mode 100644 index 0000000..af5e37b --- /dev/null +++ b/devShells/nix/default.nix @@ -0,0 +1,20 @@ +# Nix +/** + Basic shell for nix-only projects. + Many nix projects have their own devshell, + but they don't install most necessary tools. +*/ +pkgs: rec { + /** + nix language server + */ + packages.nixd = pkgs.nixd; + /** + nix formatter + */ + packages.nixfmt = pkgs.nixfmt; + /** + nix linter + */ + packages.statix = pkgs.statix; +} diff --git a/devShells/nix/flake.nix b/devShells/nix/flake.nix new file mode 100644 index 0000000..d5576be --- /dev/null +++ b/devShells/nix/flake.nix @@ -0,0 +1,25 @@ +{ + description = "Development shell for nix projects"; + + inputs.nixpkgs = "github:nixos/nixpkgs"; + inputs.utils = "github:numtide/flake-utils"; + + outputs = + { + self, + nixpkgs, + utils, + }: + utils.lib.eachDefaultSystem ( + sys: + let + pkgs = nixpkgs.legacyPackages.${sys}; + in + { + devShells.default = pkgs.mkShell { + name = "nix"; + packages = map (p: p) (builtins.attrValues (import ./. pkgs).packages); + }; + } + ); +}