Because of how Console.Waterworks (C.W.) is set-up, the command the end-user enters into the prompt must match the name of the command-method -- in "ConsoleCommands.fs". Before we get too far into discussing that, though, we must look at how the program creates the input-loop.
open Console.Waterworks
[<EntryPoint>]
let main argv =
let liaison = new CW_Liaison ()
liaison.Run ("Commands", true)
0 // return an integer exit code
That snippet of code is all there is in "Program.fs". Once you know what is happening in here, you should never need to look at this file much -- if at all.
What is happening is a new CW_Liaison
object is created and is told to run
. This is where C.W. creates the input-loop which runs indefinitely until the end-user closes the console (or the program crashes). The first argument passed into run
refers to the name-space of the ConsoleCommands
module. In this case it is Commands
. The second one refers to the information displayed in the console when you run it. When set to true
, the console displays information found in "AssemblyInfo.fs". If you use false
, the only thing you will see is the prompt. You can check the name-space of the ConsoleCommand
module via the following link:
How C.W. creates and manages the input-loop is out of this wiki's scope. Although, if you would like to know more about how is created, you can use the following link:
Here are examples of what is displayed at run-time when you pass true
or false
into the liaison.Run
command, mentioned above.
Up above, I said I would elaborate on why the end-user's commands must match the name of the commands in the ConsoleCommands
module. I will do that but not here because it ventures a little too far off topic for this section. So, I have created a dedicated section for it. You can access it with the following link: