Contains the various entry points to the Ammonite REPL.
Bundles together:
Bundles together:
- All the code relying on cliConfig - Handling for the common input/output streams and print-streams - Logic around the watch-and-rerun flag
Code related to invoking Ammonite from the outside world: default configuration, running scripts, printing error messages, etc.
Contains the various entry points to the Ammonite REPL.
Configuration of the basic REPL is done by passing in arguments when constructing the Main instance, and the various entrypoints such as run runScript and so on are methods on that instance.
It is more or less equivalent to the ammonite.repl.Repl object itself, and has a similar set of parameters, but does not have any of the ammonite.repl.Repl's implementation-related code and provides a more convenient set of entry-points that a user can call.
Note that the instantiateRepl function generates a new Repl every time it is called!
Any additional code you want to run before the REPL session starts. Can contain multiple blocks separated by
@
sDo you want to include the "standard" predef imports provided by Ammonite? These include tools like
time
,grep
, the|
or|?
pipes from ammonite-ops, and other helpers. Can be disabled to give a clean namespace for you to fill using your own predef.Where will all of Ammonite's persistent data get stored? Things like any
predef.sc
file, compilation/ivy caches, etc.. Defaults include Storage.Folder and Storage.InMemory, though you can create your own.The working directory of the REPL; when it load scripts, where the scripts will be considered relative to when assigning them packages
Where input to the Repl is coming from, typically System.in, but it could come from somewhere else e.g. across the network in the case of the SshdRepl
Primary output of code run using Ammonite
Error output when things go bad, typically System.err; also gets sent miscellaneous info messages that aren't strictly part of the REPL or script's output