Open
Description
<Hijacked by Utumno feel free to edit @Infernio>
A headless mode for Bash seems a laudable goal:
- people are interested in using bash record libraries (fi https://discord.com/channels/537706885965676554/537710082755133460/895557710400094208 )
- internally it will guide/finalize the separation of the UI and business logic code
- naming idea for the issue from 9a87dda, although I should probably call this Boot :P
Codewise this is about boot (bash.py, initialization.py, bosh.initBosh, etc). There is already a lot of ground covered and as of 170ad99 we have the tools to complete this. What's involved is:
- decouple bosh from gui/balt - finally done in d5673f4
- clean up initialization
- tooldirs is absorbed in inisettings in 170ad99 - see d5673f4
- once Rethink app launchers #570 is done we will move these to bass.settings centralizing even more
- init_dirs (permission checks? env?) - see 9f0da80 for some initial cleanup, so we see the init patterns. and dependencies on previous boot stages
- initBosh and co - more boot stages - see 78f328c
- gui init centralize even more (colors, Resources)
- define fallbacks for images ?
- CI hack (9a87dda) does not belong in. gui_globals (b3e46b4) - we used to switch cwd (see around e3d62af) but I would prefer some other solution that makes sure all dirs in init dirs are resolved correctly - or all needed dirs per scenario (normal boot, test boot, headless. boot aka importing as a library)
- clean up and minimize (but keep!) bash.ini functionality (see d5673f4)
- Rethink app launchers #570: Tool Options section must be replaced by a settings page (or tab, but that's more complex)
- this will remove the need for a (mildly hacky)
get_path_from_ini
in bass - then inisettings can be absorbed in the Settings API - Settings refactoring #178
- this will remove the need for a (mildly hacky)
- Rethink app launchers #570: Tool Options section must be replaced by a settings page (or tab, but that's more complex)
- locale handling
- translations handling - for a library mode we won't need translations and indeed this step is one of the most subtle. We use the
_()
function very loosely (and have to add a manual exception to the IDE otherwise it flags it unresolved). We should be more carefull about using it in module/class scope - basher is ok for instance, as translations is about the gui but bosh is so ok - TBC
Start from bash.py - see how early up we plug wx in ;)