Bendis
A patch tool for Bender to work better in the HERIS project.
Author: Albert L. ZHANG, IHEP
Email: albert.cheung@cern.ch
Links
- Crates.io: https://crates.io/crates/bendis
- GitHub: https://github.com/albertc9/Bendis
- GitLab (IHEP internal): https://code.ihep.ac.cn/heris/bendis
- Bendis For Users: https://code.ihep.ac.cn/heris/gitlab-profile/-/wikis/Bendis-For-Users
Features
- URL Conversion: Automatically converts GitHub URLs to IHEP internal Git URLs
- Seamless Integration: Works as a drop-in replacement for Bender
- Fast: Written in Rust for optimal performance
Installation
Usage
Initialize a project
Creates a bendis_workspace/ directory with blank Bender.yml and .bender.yml.
Update dependencies
When using Bendis, only edit the configuration files inside bendis_workspace/.
The copies in the project root will be overwritten.
Update dependencies with:
With Bendis 0.5.3 or later, prepare dependencies for RTL hardening and activate the
resulting local RTL by placing the aegisrtl repository next to the project root and running:
Hard mode requires a Bender version with script template-json support. If
../aegisrtl/scripts/harden.sh is missing, Bendis reports that hardening was skipped and
activates the local unmodified RTL.
Other commands
All other commands are passed through to Bender transparently.
File Structure
(***): You may interest in and can be edited.(-): Nobody, or generated automatically. Don't edit them if you don't understand Bendis.
pulpissimo/
├── bendis_workspace/ # Bendis working directory
│ ├── .bender/ # (-)Bender cache folder (optional on Bendis config)
│ ├── Bender.yml # (***)The config you need to edit
│ ├── .bender.yml # (***)The overrides config you may need to edit
│ ├── Bender.lock # (-)Generated by bendis automatically
│ ├── hw/ # (***)Some dependencies of pulpissimo
│ └── target/ # (***)Some dependencies of pulpissimo
├── Bender.yml # (-)Converted config
├── .bender.yml # (-)Converted overrides (IHEP URLs)
├── Bender.lock # (-)Final lock file generated automatically
├── .bender/ # (-)Dependencies directory generated automatically
├── hw/ # (-)Some dependencies automaticaly updated from `bendis_workspace/`
├── target/ # (-)Some dependencies automaticaly updated from `bendis_workspace/`
└── ...