From 5ba6d02c720dd9e41f5fd8da16eaf04bc7b802fb Mon Sep 17 00:00:00 2001 From: patrick Date: Sat, 9 Sep 2023 00:01:46 +0000 Subject: [PATCH] Add Fantomas to flake (#5) Co-authored-by: Smaug123 Reviewed-on: https://gitea.patrickstevens.co.uk/patrick/anki-static/pulls/5 --- .woodpecker/.build.yml | 1 + flake.nix | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/.woodpecker/.build.yml b/.woodpecker/.build.yml index 4cf18a4..47ad8ac 100644 --- a/.woodpecker/.build.yml +++ b/.woodpecker/.build.yml @@ -4,6 +4,7 @@ steps: commands: - echo 'experimental-features = flakes nix-command' >> /etc/nix/nix.conf # Lint + - "nix run .#fantomas -- --check ." - "nix develop --command bash -c 'dotnet tool restore && ./hooks/pre-push'" # Test - nix develop --command dotnet -- test diff --git a/flake.nix b/flake.nix index 5dbfe81..1ba1cff 100644 --- a/flake.nix +++ b/flake.nix @@ -14,7 +14,35 @@ }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; + projectFile = "./AnkiStatic/AnkiStatic.fsproj"; + testProjectFile = "./AnkiStatic.Test/AnkiStatic.Test.fsproj"; + pname = "gitea-repo-config"; + dotnet-sdk = pkgs.dotnet-sdk_7; + dotnet-runtime = pkgs.dotnetCorePackages.runtime_7_0; + version = "0.1"; + dotnetTool = toolName: toolVersion: sha256: + pkgs.stdenvNoCC.mkDerivation rec { + name = toolName; + version = toolVersion; + nativeBuildInputs = [pkgs.makeWrapper]; + src = pkgs.fetchNuGet { + pname = name; + version = version; + sha256 = sha256; + installPhase = ''mkdir -p $out/bin && cp -r tools/net6.0/any/* $out/bin''; + }; + installPhase = '' + runHook preInstall + mkdir -p "$out/lib" + cp -r ./bin/* "$out/lib" + makeWrapper "${dotnet-runtime}/bin/dotnet" "$out/bin/${name}" --add-flags "$out/lib/${name}.dll" + runHook postInstall + ''; + }; in { + packages = { + fantomas = dotnetTool "fantomas" (builtins.fromJSON (builtins.readFile ./.config/dotnet-tools.json)).tools.fantomas.version "sha256-83RodORaC3rkYfbFMHsYLEtl0+8+akZXcKoSJdgwuUo="; + }; devShells.default = pkgs.mkShell { buildInputs = [pkgs.alejandra pkgs.dotnet-sdk_7 pkgs.python3]