# Command Line Interface

The `bake` command is broken up into two main functions: `list` and `call`.

% bake --help
bake [-h/--help] [-b/--bakefile <path>] <command>
	Execute tasks using Ruby.

	[-h/--help]             Show help.                               
	[-b/--bakefile &lt;path&gt;]  Override the path to the bakefile to use.
	&lt;command&gt;               One of: call, list.                        (default: call)

	<b>call &lt;commands...&gt;</b>
		<font color="#638FFF">Execute one or more commands.</font>

		&lt;commands...&gt;  The commands &amp; arguments to invoke.  (default: [&quot;default&quot;])

	<b>list &lt;pattern&gt;</b>
		&lt;pattern&gt;  The pattern to filter tasks by.


## List

The `bake list` command allows you to list all available recipes. By proving a pattern you will only see recipes that have a matching command name.

$ bake list console
Bake::Loader console-1.8.2

	<b>console:info</b>
		<font color="#638FFF">Increase the verbosity of the logger to info.</font>

	<b>console:debug</b>
		<font color="#638FFF">Increase the verbosity of the logger to debug.</font>


The listing documents positional and optional arguments. The documentation is generated from the comments in the bakefiles.

## Call

The `bake call` (the default, so `call` can be omitted) allows you to execute one or more recipes. You must provide the name of the command, followed by any arguments.

$ bake async:http:head https://www.codeotaku.com/index
                HEAD: https://www.codeotaku.com/index
             version: h2
              status: 200
                body: body with length 7879B
        content-type: "text/html; charset=utf-8"
       cache-control: "public, max-age=3600"
             expires: "Mon, 04 May 2020 13:23:47 GMT"
              server: "falcon/0.36.4"
                date: "Mon, 04 May 2020 12:23:47 GMT"
                vary: "accept-encoding"

You can specify multiple commands and they will be executed sequentially.
