Cargo-like workflow
From Crate to BashBox
If you know Cargo, Sh:erpa is mimicking things like Cargo new, build, doc, test...
Creating a BashBox
Running sherpa new myScript will create a new BashBox (think Crate) myScript in ${SCD}, initialize a git repo inside and copy over the starter template.
Both run and build commands are creating a symlink between the builtScript stored in target/local/myScript and a virtual file in .sherpa/bin, so for all the tests involving arguments you can use myScript arg1 arg2. The compile command can transform the executable into a binary.
Sherpa.yaml Manifest
As expected, that file contains the metadata for the package.
Eventually, at some point a second section could be added, once I'll figure out a way to integrate per-project dependencies and a sort of lock file.
Sourcing libraries
For the pleasure of it, additional libraries are sourced with:
This would first look for a lib/std/fmt.sh file in the SherpaCustomDir, the user customised libraries, and if not there default to the version in the main SherpaDotDir.
The rest of the commands
So far, the Cargo commands ported to Sh:erpa are: new, init, build, run, doc, test, install, uninstall and looking for ways to bring in the rest.
Some complementary commands, Sh:erpa specific alre completing the toolbox.