flake.nix (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
{ 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}; legit = self.packages.${system}.legit; files = pkgs.lib.fileset.toSource { root = ./.; fileset = pkgs.lib.fileset.unions [ ./config.yaml ./static ./templates ]; }; in { legit = pkgs.buildGoModule { name = "legit"; rev = "master"; src = ./.; vendorHash = "sha256-EBVD/RzVpxNcwyVHP1c4aKpgNm4zjCz/99LvfA0Oc/Q="; }; docker = pkgs.dockerTools.buildLayeredImage { name = "sini:5000/legit"; tag = "latest"; contents = [ files legit ]; config = { Entrypoint = [ "${legit}/bin/legit" ]; ExposedPorts = { "5555/tcp" = { }; }; }; }; }); defaultPackage = forAllSystems (system: self.packages.${system}.legit); devShells = forAllSystems (system: let pkgs = nixpkgsFor.${system}; in { default = pkgs.mkShell { nativeBuildInputs = with pkgs; [ go ]; }; }); }; } |