{ description = "web frontend for git"; inputs.nixpkgs.url = "github:nixos/nixpkgs"; outputs = { self , nixpkgs , }: let supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; forAllSystems = nixpkgs.lib.genAttrs supportedSystems; nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); in { packages = forAllSystems (system: let pkgs = nixpkgsFor.${system}; fsrv = self.packages.${system}.fsrv; files = pkgs.lib.fileset.toSource { root = ./.; fileset = pkgs.lib.fileset.unions [ ./index.html ]; }; in { fsrv = pkgs.buildGoModule { name = "fsrv"; rev = "master"; src = ./.; vendorHash = "sha256-h0ne2h7Na4aCqqyX3GtQYaG9KKMzKQAjoLccfXtl8Tc="; }; docker = pkgs.dockerTools.buildLayeredImage { name = "sini:5000/fsrv"; tag = "latest"; contents = [ files ]; config = { Cmd = "${fsrv}/bin/fsrv"; ExposedPorts = { "9393/tcp" = { }; }; }; }; }); defaultPackage = forAllSystems (system: self.packages.${system}.fsrv); devShells = forAllSystems (system: let pkgs = nixpkgsFor.${system}; in { default = pkgs.mkShell { nativeBuildInputs = with pkgs; [ go ]; }; }); }; }