anchor.diff:  %% support functions
   %%====================================================================
   
  -
  -start_inotify() ->
  +start_inotify(State=#state{executable=Executable}) ->
       os:cmd("killall inotifywait"),
  -    Args = ["-e", "modify,create", "-m", "-r",
  +    Args = ["-q", "-e", "modify,create", "-m", "-r", 
               filename:join(os:getenv("ZOTONIC"), "src"),
               filename:join(os:getenv("ZOTONIC"), "priv/sites"),
               filename:join(os:getenv("ZOTONIC"), "modules")
               |
               string:tokens(os:cmd("find " ++ z_utils:os_escape(os:getenv("ZOTONIC")) ++ " -type l"), "\n")],
  -    erlang:open_port({spawn_executable, "/usr/bin/inotifywait"}, [{args, Args}, {line, 1024}]).
  +    Port = erlang:open_port({spawn_executable, Executable}, [{args, Args}, {line, 1024}]),
  +    State#state{port=Port}.
   
   
   verb("MODIFY") -> modify;
   verb("CREATE") -> create.
  +
  
positive.code: %% @doc Trap unknown casts
  handle_cast(Message, State) ->
      {stop, {unknown_cast, Message}, State}.
  
  
  
  
  %% @doc Reading a line from the inotifywait program. Sets a timer to
  
negative.code:     {noreply, State#state{timers=proplists:delete(Filename, Timers)}};
  
  handle_info({'EXIT', Port, _}, State=#state{port=Port}) ->
      %% restart after 5 seconds
      {noreply, State, 5000};
  
  handle_info(timeout, State=#state{context=Context}) ->
      ?zInfo("Starting inotify file monitor.", Context),
      {noreply, start_inotify(State)};
  
  handle_info(_Info, State) ->
      ?DEBUG(_Info),
  