anchor.diff:  %%% @author Eric Merritt <cyberlync@gmail.com>
   %%% @doc
   %%%  The module provides a simple api for the sinan system.
  +%%%  Two possible arguments may be passed in. The start dir that should
  +%%%  be somewhere inside a project and a list of args for the system.
  +%%%
  +%%%  @type startdir() = string(). A dir that is somewhere in a project
  +%%%  @type args() = {[{TaskName, args}]}
  +%%%    TaskName = string(). The name of the task the args apply too.
   %%% @end
   %%% @copyright (C) 2007, Erlware
   %%% Created :  8 Dec 2007 by Eric Merritt <cyberlync@gmail.com>
  
positive.code: %% @spec do_task(Task, Args) -> ok
  %% @end
  %%--------------------------------------------------------------------
  do_task(Task, Args) when is_atom(Task) ->
      do_task(sinan, Task, Args).
  
  %%--------------------------------------------------------------------
  %% @doc
  
negative.code: %% @spec do_task(Chain, Task, Args) -> ok
  %% @end
  %%--------------------------------------------------------------------
  do_task(Chain, StartDir, Task, Args) when is_atom(Task) ->
      BuildRef = eta_engine:make_run_id(),
      fconf:start_config(BuildRef,
                         fun sin_parse_handle:parse_config_file/1),
      fconf:store(BuildRef, "build.args", Args),
      fconf:store(BuildRef, "build.start_dir", StartDir),
      eta_engine:run(Chain, Task, Args),
      fconf:stop_config(BuildRef).
  
  