Create a new `fab` command line utility to replace the existing one. Feature list includes: - [ ] Create separate build and system loggers - [ ] Allow build and system levels to be set independently - [ ] Add `--quiet` mode to suppress almost all output - [ ] Add `--detailed` mode to show commands being executed - [ ] Log everything to a file in the project directory - [ ] Improved progress indicators with the optional [rich](https://github.com/Textualize/rich) library - [ ] Add spinners to tasks of unknown duration - [ ] Add progress bars to multiprocessing pools - [ ] Use rich log handlers - [ ] Use rich generalised exception handling - [ ] Support build targets, assuming they are defined in the build recipe - [ ] Support `--fresh` option to remove an existing workspace - [ ] Support `-DFOO=BAR` style command line options - [ ] Unrecognised options should be passed through to the build recipe - [ ] Support for getting help from from the build recipe argument parser, if any - [ ] Basic recipe classes including: - [ ] A base class which sets up infrastructure for other recipes - [ ] A zero config recipe derived from the base class - [ ] LFRic-Baf support
Create a new
fabcommand line utility to replace the existing one. Feature list includes:--quietmode to suppress almost all output--detailedmode to show commands being executed--freshoption to remove an existing workspace-DFOO=BARstyle command line options