goshare/flake.nix
2024-01-23 20:13:51 +01:00

49 lines
1.6 KiB
Nix

{
description = "A basic gomod2nix flake";
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};
# 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 ./. {
inherit (gomod2nix.legacyPackages.${system}) buildGoApplication;
};
packages.docker = let
bin = self.packages.${system}.default;
in pkgs.dockerTools.buildImage {
name = "git.mzsl.nl/mans/goshare";
tag = "latest";
fromImageName = "alpine";
created = "now";
# contents = [ bin ];
copyToRoot = pkgs.buildEnv {
name = "image-root";
paths = [ bin ];
pathsToLink = [ "/bin" ];
};
config.Cmd = [ "/bin/server" ];
};
devShells.default = callPackage ./shell.nix {
inherit (gomod2nix.legacyPackages.${system}) mkGoEnv gomod2nix;
};
})
);
}