anchor.diff:          [Jobs]),
       [
        %% {Name, ShortOpt, LongOpt, ArgSpec, HelpMsg}
  -     {help,    $h, "help",    undefined, "Show the program options"},
  -     {verbose, $v, "verbose", undefined, "Be verbose about what gets done"},
  -     {force,   $f, "force",   undefined, "Force"},
  -     {jobs,    $j, "jobs",    integer, JobsHelp}
  +     {help,     $h, "help",     undefined, "Show the program options"},
  +     {commands, $c, "commands", undefined, "Show available commands"},
  +     {verbose,  $v, "verbose",  undefined, "Be verbose about what gets done"},
  +     {force,    $f, "force",    undefined, "Force"},
  +     {jobs,     $j, "jobs",     integer,   JobsHelp}
       ].
   
   %%
  
positive.code:                  "[var=value,...] <command,...>",
                   [{"var=value", "rebar global variables (e.g. force=1)"},
                    {"command", "Command to run (e.g. compile)"}]).
  
  %%
  %% options accepted via getopt
  
negative.code:     %% Parse getopt options
      OptSpecList = option_spec_list(),
      case getopt:parse(OptSpecList, Args) of
          {ok, {Options, NonOptArgs}} ->
              %% Check options and maybe halt execution
              {ok, continue} = print_help_maybe_halt(Options, NonOptArgs),
  
              %% Set global variables based on getopt options
              set_global_flag(Options, verbose),
              set_global_flag(Options, force),
              DefJobs = rebar_config:get_jobs(),
              case proplists:get_value(jobs, Options, DefJobs) of
                  DefJobs ->
                      ok;
                  Jobs ->
                      rebar_config:set_global(jobs, Jobs)
              end,
  
              %% Filter all the flags (i.e. strings of form key=value) from the
              %% command line arguments. What's left will be the commands to run.
              filter_flags(NonOptArgs, []);
  
          {error, {Reason, Data}} ->
              ?ERROR("Error: ~s ~p~n~n", [Reason, Data]),
              help(),
  