You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

44 lines
1.2 KiB

{
description = "User management system.";
inputs = {
flake-utils.url = "github:numtide/flake-utils";
};
outputs = inputs @ { self, nixpkgs, ... }:
inputs.flake-utils.lib.eachDefaultSystem (system:
let pkgs = nixpkgs.legacyPackages.${system};
myProtoc = "${pkgs.grpc-tools}/bin/protoc";
myUsersDir = "$MY_USERS_DIR";
myUsersBuild = pkgs.writeShellScriptBin "users-build" ''
pushd ${myUsersDir} > /dev/null &&
${myProtoc} --proto_path=${myUsersDir} \
--go_out=. --go_opt=paths=source_relative \
--go-grpc_out=. --go-grpc_opt=paths=source_relative \
proto/users.proto &&
popd > /dev/null
'';
in
rec {
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
go
gopls
protoc-gen-go
protoc-gen-go-grpc
grpc
grpcui
grpcurl
grpc-tools
myUsersBuild
];
shellHook = ''
export MY_USERS_DIR="$(pwd)"
'';
};
}
);
}