{ inputs = { nixpkgs.url = "nixpkgs/nixpkgs-unstable"; }; outputs = inputs@{ nixpkgs, ... }: let system = "x86_64-linux"; pkgs = inputs.nixpkgs.legacyPackages.${system}; goverter = pkgs.buildGoModule rec { name = "goverter"; version = "1.5.0"; src = pkgs.fetchFromGitHub { owner = "jmattheis"; repo = "goverter"; rev = "v${version}"; sha256 = "sha256-J0PS4ZxGtOa+0QOOSjfg0WeVYGyf757WuTnpQTWIV1w="; }; subPackages = [ "cmd/goverter" ]; vendorHash = "sha256-uQ1qKZLRwsgXKqSAERSqf+1cYKp6MTeVbfGs+qcdakE="; }; bobgen-sqlite = pkgs.buildGoModule rec { name = "bobgen-sqlite"; version = "0.28.1"; subPackages = [ "gen/bobgen-sqlite" ]; src = pkgs.fetchFromGitHub { owner = "stephenafamo"; repo = "bob"; rev = "v${version}"; sha256 = "sha256-iLcSY5BBmjuICsIC9u6wyrp7elDt4yY8Ji7UWmsJ688="; }; vendorHash = "sha256-9vLcyCAhW/Dq0zV8FhM0T3Ofn/8XsUhV5KlphNidGDw="; }; ogen = pkgs.buildGoModule rec { name = "ogen"; version = "1.2.2"; subPackages = [ "cmd/ogen" ]; src = pkgs.fetchFromGitHub { owner = "ogen-go"; repo = "ogen"; rev = "v${version}"; sha256 = "sha256-8HIbMw3G5vuOJMpwfrSiecm9+kmsHDkVqAG6xucoZfs="; }; vendorHash = "sha256-sZiOo+ZhczWS7xMt2cxdqZM1C2omIYheZPLAJMLSw28="; }; in { devShell.${system} = pkgs.mkShell { name = "bluemage-shell"; buildInputs = with pkgs; [ go nodePackages_latest.nodejs goose air upx buf buf-language-server protoc-gen-go protoc-gen-connect-go protoc-gen-validate goverter bobgen-sqlite air gopls ogen go-jet ]; }; }; }