Exposing Git Information in Rust Binaries Built with Nix
6 months ago
- #Rust
- #Nix
- #Git
- Rust二进制文件中的Git信息有助于追踪版本和提交记录,对调试很有帮助。
- shadow-rs crate用于在构建时将Git信息(如提交哈希、分支名)嵌入CLI工具。
- Nix构建会排除.git目录,导致shadow-rs无法获取Git信息。
- 解决方案:使用Nix flake的self.rev将提交哈希作为构建时环境变量传递。
- 修改build.rs以同时支持cargo和Nix构建,确保两种方式都能获取版本信息。
- 对于Nix构建,提交哈希取自flake的self.rev;分支名仍不可用。
- 最终输出显示:Nix构建的版本信息包含提交哈希,cargo构建则包含分支名。
- 感谢贡献者的指导和解决方案。
- 作者邀请通过社交媒体提供反馈,并通过GitHub赞助获取komorebi for Mac的早期访问权限。