In my mind, the goal for the short term is still to modularize Shellista, according to briarfox's model. The codebase is growing too much to maintain everything in one module, and this is the way that shells traditionally operate (i.e. "spawning" processes from the main process -- though I am aware that this won't really "spawn" anything).
Here are my thoughts on roadmap; please contribute suggestions/comments/profanities as you see fit:
- I want to keep Shellista as a one-file copy and paste, in the spirit of the original. This makes it easy for newbies to get started. Therefore, the code for module download should be in the main file.
- Core modules (ls, mkdir, cd, etc...) should be downloaded upon first run
- For non-core modules (e.g. Git), I'd like to have a way for the user to pick and choose what modules s/he is interested in using - not as critical in the short term, because we don't have that many modules yet.
- I wonder if it's possible to use submodules in the Git repo to make core vs optional downloads easier. Core modules could be stored in one submodule, and then each optional module would have it's own submodule. Not sure if GitHub supports this, also might require specific additions to the Git module for committing from iPad
- I would prefer to keep things Python-agnostic, if possible... for individual modules, it's probably not as critical.
- Maybe modules should adhere to an interface, which has some sort of
check_dependencies() function
In my mind, the goal for the short term is still to modularize Shellista, according to briarfox's model. The codebase is growing too much to maintain everything in one module, and this is the way that shells traditionally operate (i.e. "spawning" processes from the main process -- though I am aware that this won't really "spawn" anything).
Here are my thoughts on roadmap; please contribute suggestions/comments/profanities as you see fit:
check_dependencies()function