From 895a3b061bb4717955ffbceab3bf3c6ecebacd70 Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Sun, 12 May 2024 22:34:23 +0200 Subject: build: switch to flakes --- flake.nix | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 flake.nix (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..389c646 --- /dev/null +++ b/flake.nix @@ -0,0 +1,62 @@ +{ + description = "A basic gomod2nix flake"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + pre-commit-hooks = { + url = "github:cachix/pre-commit-hooks.nix"; + inputs.flake-utils.follows = "flake-utils"; + }; + gomod2nix = { + url = "github:nix-community/gomod2nix"; + inputs = { + nixpkgs.follows = "nixpkgs"; + flake-utils.follows = "flake-utils"; + }; + }; + simple-css = { + url = "https://raw.githubusercontent.com/kevquirk/simple.css/v2.3.0/simple.css"; + flake = false; + }; + }; + + outputs = { self, nixpkgs, flake-utils, gomod2nix, pre-commit-hooks, simple-css }: + (flake-utils.lib.eachDefaultSystem + (system: + let + pkgs = import nixpkgs { + inherit system; + overlays = [ + (import ./nix/overlays) + gomod2nix.overlays.default + ]; + }; + + # The current default sdk for macOS fails to compile go projects, so we use a newer one for now. + # This has no effect on other platforms. + callPackage = pkgs.darwin.apple_sdk_11_0.callPackage or pkgs.callPackage; + in + { + packages.default = callPackage ./nix/package.nix { + inherit (gomod2nix.legacyPackages.${system}) buildGoApplication; + css = simple-css; + }; + devShells.default = callPackage ./nix/dev-shell.nix { + pre-commit-check = { + inherit (self.checks.${system}.pre-commit-check) + shellHook + enabledPackages; + }; + inherit (gomod2nix.legacyPackages.${system}) mkGoEnv gomod2nix; + }; + checks = { + pre-commit-check = pre-commit-hooks.lib.${system}.run ( + import ./nix/pre-commit-checks.nix { + inherit pkgs; + } + ); + }; + }) + ); +} -- cgit 1.4.1