flake: formatting (#342)

This commit is contained in:
Gaétan Lepage 2023-04-21 10:16:01 +02:00 committed by GitHub
parent 3ad504ed49
commit 52120a891d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

314
flake.nix
View file

@ -10,168 +10,162 @@
inputs.pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; inputs.pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
inputs.pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs"; inputs.pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs";
outputs = outputs = {
{ self self,
, nixpkgs nixpkgs,
, flake-utils flake-utils,
, pre-commit-hooks pre-commit-hooks,
, ... ...
} @ inputs: } @ inputs:
with nixpkgs.lib; with nixpkgs.lib;
with builtins; let with builtins; let
# TODO: Support nesting # TODO: Support nesting
nixvimModules = map (f: ./modules + "/${f}") (attrNames (builtins.readDir ./modules)); nixvimModules = map (f: ./modules + "/${f}") (attrNames (builtins.readDir ./modules));
modules = pkgs: modules = pkgs:
nixvimModules nixvimModules
++ [ ++ [
rec { rec {
_file = ./flake.nix; _file = ./flake.nix;
key = _file; key = _file;
config = { config = {
_module.args = { _module.args = {
pkgs = mkForce pkgs; pkgs = mkForce pkgs;
inherit (pkgs) lib; inherit (pkgs) lib;
helpers = import ./plugins/helpers.nix { inherit (pkgs) lib; }; helpers = import ./plugins/helpers.nix {inherit (pkgs) lib;};
inputs = inputs; inputs = inputs;
};
};
}
# ./plugins/default.nix
];
flakeOutput =
flake-utils.lib.eachDefaultSystem
(system: let
pkgs = import nixpkgs {inherit system;};
extractRustAnalyzer = {
stdenv,
pkgs,
}:
stdenv.mkDerivation {
pname = "extract_rust_analyzer";
version = "master";
dontUnpack = true;
dontBuild = true;
buildInputs = [pkgs.python3];
installPhase = ''
ls -la
mkdir -p $out/bin
cp ${./helpers/extract_rust_analyzer.py} $out/bin/extract_rust_analyzer.py
'';
};
extractRustAnalyzerPkg = pkgs.callPackage extractRustAnalyzer {};
in {
checks =
(import ./tests {
inherit pkgs;
inherit (pkgs) lib;
makeNixvim = self.legacyPackages."${system}".makeNixvim;
})
// {
lib-tests = import ./tests/lib-tests.nix {
inherit (pkgs) pkgs lib;
};
pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
alejandra = {
enable = true;
excludes = ["plugins/_sources"];
};
}; };
}; };
} };
devShells = {
default = pkgs.mkShell {
inherit (self.checks.${system}.pre-commit-check) shellHook;
};
};
packages = {
docs = pkgs.callPackage (import ./docs.nix) {
modules = nixvimModules;
};
runUpdates =
pkgs.callPackage
({
pkgs,
stdenv,
}:
stdenv.mkDerivation {
pname = "run-updates";
version = pkgs.rust-analyzer.version;
# ./plugins/default.nix src = pkgs.rust-analyzer.src;
];
flakeOutput = nativeBuildInputs = with pkgs; [extractRustAnalyzerPkg alejandra];
flake-utils.lib.eachDefaultSystem
(system:
let
pkgs = import nixpkgs { inherit system; };
extractRustAnalyzer =
{ stdenv
, pkgs
,
}:
stdenv.mkDerivation {
pname = "extract_rust_analyzer";
version = "master";
dontUnpack = true; buildPhase = ''
dontBuild = true; extract_rust_analyzer.py editors/code/package.json |
alejandra --quiet > rust-analyzer-config.nix
'';
buildInputs = [ pkgs.python3 ]; installPhase = ''
mkdir -p $out/share
installPhase = '' cp rust-analyzer-config.nix $out/share
ls -la '';
mkdir -p $out/bin })
cp ${./helpers/extract_rust_analyzer.py} $out/bin/extract_rust_analyzer.py {};
''; # Used to updates plugins, launch 'nix run .#nvfetcher' in the 'plugins' directory
}; nvfetcher = pkgs.nvfetcher;
extractRustAnalyzerPkg = pkgs.callPackage extractRustAnalyzer { }; };
in legacyPackages = rec {
{ makeNixvimWithModule = import ./wrappers/standalone.nix pkgs modules;
checks = makeNixvim = configuration:
(import ./tests { makeNixvimWithModule {
inherit pkgs; module = {
inherit (pkgs) lib; config = configuration;
makeNixvim = self.legacyPackages."${system}".makeNixvim;
})
// {
lib-tests = import ./tests/lib-tests.nix {
inherit (pkgs) pkgs lib;
};
pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
alejandra = {
enable = true;
excludes = [ "plugins/_sources" ];
};
};
};
};
devShells = {
default = pkgs.mkShell {
inherit (self.checks.${system}.pre-commit-check) shellHook;
};
}; };
packages = { };
docs = pkgs.callPackage (import ./docs.nix) { };
modules = nixvimModules; formatter = let
}; # We need to exclude the plugins/_sources/* files as they are autogenerated
runUpdates = # nix formatter only takes a derivation so we need to make a proxy that passes
pkgs.callPackage # the correct flags
({ pkgs excludeWrapper = {
, stdenv stdenv,
, alejandra,
}: writeShellScript,
stdenv.mkDerivation { ...
pname = "run-updates"; }:
version = pkgs.rust-analyzer.version; stdenv.mkDerivation {
pname = "alejandra-excludes";
version = alejandra.version;
src = pkgs.rust-analyzer.src; dontUnpack = true;
dontBuild = true;
installPhase = let
script = writeShellScript "alejandra-excludes.sh" ''
${alejandra}/bin/alejandra --exclude ./plugins/_sources "$@"
'';
in ''
mkdir -p $out/bin
cp ${script} $out/bin/alejandra-excludes
'';
};
in
pkgs.callPackage excludeWrapper {};
nativeBuildInputs = with pkgs; [ extractRustAnalyzerPkg alejandra ]; lib = import ./lib {
inherit pkgs;
buildPhase = '' inherit (pkgs) lib;
extract_rust_analyzer.py editors/code/package.json | };
alejandra --quiet > rust-analyzer-config.nix });
''; in
installPhase = ''
mkdir -p $out/share
cp rust-analyzer-config.nix $out/share
'';
})
{ };
# Used to updates plugins, launch 'nix run .#nvfetcher' in the 'plugins' directory
nvfetcher = pkgs.nvfetcher;
};
legacyPackages = rec {
makeNixvimWithModule = import ./wrappers/standalone.nix pkgs modules;
makeNixvim = configuration:
makeNixvimWithModule {
module = {
config = configuration;
};
};
};
formatter =
let
# We need to exclude the plugins/_sources/* files as they are autogenerated
# nix formatter only takes a derivation so we need to make a proxy that passes
# the correct flags
excludeWrapper =
{ stdenv
, alejandra
, writeShellScript
, ...
}:
stdenv.mkDerivation {
pname = "alejandra-excludes";
version = alejandra.version;
dontUnpack = true;
dontBuild = true;
installPhase =
let
script = writeShellScript "alejandra-excludes.sh" ''
${alejandra}/bin/alejandra --exclude ./plugins/_sources "$@"
'';
in
''
mkdir -p $out/bin
cp ${script} $out/bin/alejandra-excludes
'';
};
in
pkgs.callPackage excludeWrapper { };
lib = import ./lib {
inherit pkgs;
inherit (pkgs) lib;
};
});
in
flakeOutput flakeOutput
// { // {
nixosModules.nixvim = import ./wrappers/nixos.nix modules; nixosModules.nixvim = import ./wrappers/nixos.nix modules;
@ -179,15 +173,13 @@
nixDarwinModules.nixvim = import ./wrappers/darwin.nix modules; nixDarwinModules.nixvim = import ./wrappers/darwin.nix modules;
rawModules.nixvim = nixvimModules; rawModules.nixvim = nixvimModules;
templates = templates = let
let simple = {
simple = { path = ./templates/simple;
path = ./templates/simple; description = "A simple nix flake template for getting started with nixvim";
description = "A simple nix flake template for getting started with nixvim";
};
in
{
default = simple;
}; };
in {
default = simple;
};
}; };
} }