{ description = "My website, alanpearce.eu"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; inputs.utils.url = "github:numtide/flake-utils"; inputs.flake-compat = { url = "github:edolstra/flake-compat"; flake = false; }; inputs.gomod2nix = { url = "github:tweag/gomod2nix"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-utils.follows = "utils"; }; outputs = { self, nixpkgs, utils, gomod2nix, ... }: utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; overlays = [ gomod2nix.overlays.default ]; }; packages = import ./nix/default.nix { inherit pkgs self; }; commonShellPackages = with pkgs; [ just skopeo flyctl ]; in { inherit packages; devShells = { ci = pkgs.mkShell { packages = commonShellPackages; }; default = pkgs.mkShell { inputsFrom = [ packages.builder ]; packages = with pkgs; [ gopls gotools go-tools gomod2nix.packages.${system}.default gci netlify-cli sentry-cli ] ++ commonShellPackages; }; }; checks = rec { default = hyperlink; hyperlink = pkgs.runCommandLocal "hyperlink" { } '' ${pkgs.hyperlink}/bin/hyperlink ${packages.website}/website/public touch $out ''; }; }); }