{ lib , buildGoModule , fetchFromGitHub , installShellFiles }: buildGoModule rec { pname = "containerlab"; version = "0.46.0"; src = fetchFromGitHub { owner = "srl-labs"; repo = "containerlab"; rev = "v${version}"; hash = "sha256-uBT9whv1qL3yfO6VoeW2SqLIzG11mk+SU09c/xqboM8="; }; nativeBuildInputs = [ installShellFiles ]; vendorHash = "sha256-mkQR0lZXYe6Dz4PngxF7d7Bkr4R3HmL/imQDLridmlA="; ldflags = [ "-s" "-w" "-X" "github.com/srl-labs/containerlab/cmd.version=${version}" "-X" "github.com/srl-labs/containerlab/cmd.commit=${src.rev}" "-X" "github.com/srl-labs/containerlab/cmd.date=1970-01-01T00:00:00Z" ]; postInstall = '' local INSTALL="$out/bin/containerlab" installShellCompletion --cmd containerlab \ --bash <($out/bin/containerlab completion bash) \ --fish <($out/bin/containerlab completion fish) \ --zsh <($out/bin/containerlab completion zsh) ''; meta = with lib; { description = "Container-based networking lab"; homepage = "https://containerlab.dev/"; changelog = "https://github.com/srl-labs/containerlab/releases/tag/${src.rev}"; license = licenses.bsd3; platforms = platforms.linux; maintainers = with maintainers; [ janik ]; }; }