ghettoptt/flake.nix

68 lines
1.6 KiB
Nix
Raw Normal View History

2024-03-09 19:34:21 +00:00
{
2024-03-09 21:59:04 +00:00
description = "Jank workaround for mumble PTT";
2024-03-09 19:34:21 +00:00
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
2024-10-10 20:40:29 +00:00
outputs =
{ self, nixpkgs }:
2024-03-09 19:34:21 +00:00
let
allSystems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
2024-10-10 20:40:29 +00:00
forAllSystems =
f:
nixpkgs.lib.genAttrs allSystems (
system:
f {
pkgs = import nixpkgs { inherit system; };
}
);
2024-03-09 19:34:21 +00:00
in
{
overlays.default = final: prev: {
2024-03-09 21:59:04 +00:00
ghettoptt = self.packages.${prev.system}.default;
2024-03-09 19:34:21 +00:00
};
2024-10-10 20:40:29 +00:00
packages = forAllSystems (
{ pkgs }:
{
default =
let
src = pkgs.lib.sourceFilesBySuffices ./. [
"go.mod"
"go.sum"
".go"
];
version = pkgs.lib.strings.removePrefix "v" (
builtins.elemAt (pkgs.lib.strings.split "\"" (
pkgs.lib.lists.findFirst (x: pkgs.lib.strings.hasInfix "Version" x) null (
pkgs.lib.strings.splitString "\n" (builtins.readFile ./main.go)
)
)) 2
);
in
pkgs.buildGoModule {
version = version;
2024-10-10 21:37:47 +00:00
pname = "ghettoptt";
2024-10-10 20:40:29 +00:00
src = src;
2024-10-10 22:58:26 +00:00
vendorHash = "sha256-Jnk06H/5dIGbb284c2IReZfS7U0TaBoGWYkU/mjyBek=";
2024-10-10 20:40:29 +00:00
};
}
);
devShells = forAllSystems (
{ pkgs }:
{
default = pkgs.mkShell {
packages = with pkgs; [
go
2024-10-10 23:10:59 +00:00
golangci-lint
2024-10-10 20:40:29 +00:00
];
};
}
);
2024-03-09 19:34:21 +00:00
};
}