{ description = "Jank workaround for mumble PTT"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; outputs = { self, nixpkgs }: let allSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; forAllSystems = f: nixpkgs.lib.genAttrs allSystems ( system: f { pkgs = import nixpkgs { inherit system; }; } ); in { overlays.default = final: prev: { ghettoptt = self.packages.${prev.system}.default; }; 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; pname = "ghettoptt"; src = src; vendorHash = "sha256-7K0LFYHJ1NBEL7lRCqsKcWpCJY0btRv9eUhyRN9U7/I="; }; } ); devShells = forAllSystems ( { pkgs }: { default = pkgs.mkShell { packages = with pkgs; [ go ]; }; } ); }; }