{ description = "Simple note manager written in go"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; inputs.flake-utils.url = "github:numtide/flake-utils"; inputs.gomod2nix.url = "github:nix-community/gomod2nix"; inputs.gomod2nix.inputs.nixpkgs.follows = "nixpkgs"; inputs.gomod2nix.inputs.flake-utils.follows = "flake-utils"; outputs = { self, nixpkgs, flake-utils, gomod2nix, }: (flake-utils.lib.eachDefaultSystem ( system: let pkgs = nixpkgs.legacyPackages.${system}; callPackage = pkgs.callPackage; # Simple test check added to nix flake check go-test = pkgs.stdenvNoCC.mkDerivation { name = "go-test"; dontBuild = true; src = ./.; doCheck = true; nativeBuildInputs = with pkgs; [ go writableTmpDirAsHomeHook ]; checkPhase = '' go test -v ./... ''; installPhase = '' mkdir "$out" ''; }; # Simple lint check added to nix flake check go-lint = pkgs.stdenvNoCC.mkDerivation { name = "go-lint"; dontBuild = true; src = ./.; doCheck = true; nativeBuildInputs = with pkgs; [ golangci-lint go writableTmpDirAsHomeHook ]; checkPhase = '' golangci-lint run ''; installPhase = '' mkdir "$out" ''; }; in { checks = { inherit go-test go-lint; }; packages.default = callPackage ./. { inherit (gomod2nix.legacyPackages.${system}) buildGoApplication; }; devShells.default = callPackage ./shell.nix { inherit (gomod2nix.legacyPackages.${system}) mkGoEnv gomod2nix; }; } )); }