Skip to content

Headless mode #600

Open
Open
@Infernio

Description

@Infernio

<Hijacked by Utumno feel free to edit @Infernio>

A headless mode for Bash seems a laudable goal:

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
  • 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 ;)

Blocked by #190, #570
Blocks #554, #568, #250

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-bootArea: Early Boot (bash.py, bush.py and initialization.py)C-goalCategory: Long term goal. May be code-related or a meta goal.C-refactoringCategory: Refactoring. A purely internal refactoring, with no user-facing changes

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions