| Crates.io | invil |
| lib.rs | invil |
| version | 0.2.28 |
| created_at | 2023-11-28 05:51:42.210473+00 |
| updated_at | 2025-12-17 21:15:26.484553+00 |
| description | A port of amboso to Rust |
| homepage | https://github.com/jgabaut/invil |
| repository | https://github.com/jgabaut/invil |
| max_upload_size | |
| id | 1051624 |
| size | 375,301 |
This is a Rust port of amboso, a basic build tool wrapping make and supporting git tags.
Invil can be used to:
invil build.invil init <DIR>It's (*) on par with the original implementation, as of amboso 2.0.11.
Check the next section for more support info.
Check this section for info about extensions to amboso 2.0.4.
At the moment, only C projects are supported.
- Check this section for info about the WIP python support.
- The README still mostly refers only to the ambosoC kern usage.
Different build modes are provided internally, depending on how full your autotool build support is:
gcc call. This may be expanded in a future version, to at least provide support for passing arguments to the compiler.invil will expect a ready Makefile that correctly builds the target binary when make is called.invil will expect a Makefile.am and a configure.ac, so that a Makefile with the same assumptions as Make mode can be generated.For more information on the stego.lock file, see the amboso info about it.
For more information on the anvil tool, see the amboso wiki. Work in progress.
Basic arguments parsing that complies with the bash implementation
Same default for amboso directory (./bin).
Parse stego.lock with compatible logic to bash implementation
Base mode: full support
Git mode: full support
Makefile in repo root.C header gen: complete support (*)
Test mode: complete support (*)
-b
$.Passing configure arguments: complete support
Subcommands:
Note:
0.1.6, by default make rebuild is called on build operation. This is the expected behaviour of amboso 2.x. To revert to 1.x original behaviour and call just make, run with -R or --no-rebuild.Flags support status:
-D, -K, -M, -S, -E-Y <startTime>-x
-l-L-G (detailed info is empty)-V-t-T-g-B-b-r-i-d-p-h-H-v-l-L-q-w-W-X-s-C-z-R-J
./anvil.log. Not backwards compatible with repos not ignoring the file explicitly.-P-F-e (Only relative to 2.0.0)-ZThese features are experimental and subject to change.
pyproject.toml is present alongside stego.lockstego.lock itselfstego.lock):
[ anvil ]
version = "2.1.0"
kern = "anvilPy"
--strict
stego.lock):
[ anvil ]
version = "2.1.0"
kern = "custom"
custombuilder="./my_builder"
-e, --strict-a to set compatibility level-k to set project type-O to set stego.lock dir (defaults to working directory)stego.lock parsing, up to 1.7.x$HOME/.anvil/anvil.toml-Z to pass CFLAGS to single file build modemake build mode, call make rebuild by default
--no-rebuild to disable make rebuild and run just make--logged to output full log to file
./anvil.log. Not backwards compatible with repos not ignoring the file explicitly.-G flag also includes:
env::consts::OS)--no-color to disable color output--force to overwrite ready targetsTo see how this marvelous work of art works, run:
cd try-anvil
./try_anvil_auto
Refer to amboso info about this test script: link
Our version was slightly modified to actually make cargo build the release version of the binary we want to symlink to anvil.
Check out this page for a very basic benchmark of runtime, relative to bash amboso implementation.
Command to pipeline the git operations in a ugly iper-indented mess.