diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 7e0f2374c27e..57214a7c1232 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -3033,10 +3033,11 @@ name = "Roman Gerasimenko"; }; builditluc = { - email = "builditluc@icloud.com"; + email = "git@builditluc.eu"; github = "Builditluc"; githubId = 37375448; - name = "Buildit"; + name = "Builditluc"; + keys = [ { fingerprint = "FF16E475723B8C1E57A6B2569374074AE2D6F20E"; } ]; }; buurro = { email = "marcoburro98@gmail.com"; diff --git a/pkgs/by-name/co/codecrafters-cli/package.nix b/pkgs/by-name/co/codecrafters-cli/package.nix new file mode 100644 index 000000000000..ecbcf5440882 --- /dev/null +++ b/pkgs/by-name/co/codecrafters-cli/package.nix @@ -0,0 +1,52 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, + git, +}: + +buildGoModule rec { + pname = "codecrafters-cli"; + version = "34"; + + src = fetchFromGitHub { + owner = "codecrafters-io"; + repo = "cli"; + rev = "v${version}"; + hash = "sha256-+daBduhjUt7lrjTdXgm1qpZN1oEHC3Nx+ZiOLoO5+s4="; + # A shortened git commit hash is part of the version output, and is + # needed at build time. Use the `.git` directory to retrieve the + # commit SHA, and remove the directory afterwards since it is not needed + # after that. + leaveDotGit = true; + postFetch = '' + git -C $"$out" rev-parse --short=7 HEAD > $out/COMMIT + rm -rf $out/.git + ''; + }; + + vendorHash = "sha256-TQcxzfiqKeCQZUKLHnPjBa/0WsYJhER3fmr4cRGFknw="; + + ldflags = [ + "-s" + "-w" + "-X github.com/codecrafters-io/cli/internal/utils.Version=${version}" + ]; + + # ldflags based on metadata from git + preBuild = '' + ldflags+=" -X github.com/codecrafters-io/cli/internal/utils.Commit=$(cat COMMIT)" + ''; + + doCheck = true; + + nativeBuildInputs = [ git ]; + + meta = with lib; { + description = "CodeCrafters CLI to run tests"; + mainProgram = "codecrafters"; + homepage = "https://github.com/codecrafters-io/cli"; + maintainers = with maintainers; [ builditluc ]; + license = licenses.mit; + }; +}